<?php
function spellSmallNumber( $int , $isMan ) {
if ( $int >= 0 && $int < 1000 ) {
$spelling = [
0 => 'ноль' ,
1 => 'один' ,
2 => 'два' ,
3 => 'три' ,
4 => 'четыре' ,
5 => 'пять' ,
6 => 'шесть' ,
7 => 'семь' ,
8 => 'восемь' ,
9 => 'девять' ,
10 => 'десять' ,
11 => 'одиннадцать' ,
12 => 'двенадцать' ,
13 => 'тринадцать' ,
14 => 'четырнадцать' ,
15 => 'пятнадцать' ,
16 => 'шестнадцать' ,
17 => 'семнадцать' ,
18 => 'восемьнадцать' ,
19 => 'девятнадцать' ,
20 => 'двадцать' ,
30 => 'тридцать' ,
40 => 'сорок' ,
50 => 'пятьдесят' ,
60 => 'шестьдесят' ,
70 => 'семьдесят' ,
80 => 'восемьдесят' ,
90 => 'девяносто' ,
100 => 'сто' ,
200 => 'двести' ,
300 => 'триста' ,
400 => 'четыреста' ,
500 => 'пятьсот' ,
600 => 'шестьсот' ,
700 => 'семьсот' ,
800 => 'восемьсот' ,
900 => 'девятьсот' ,
] ;
$spellingWomen = [
1 => 'одна' ,
2 => 'две'
] ;
if ( $int / 100 >= 1 ) {
$word = 100 * floor ( $int / 100 ) ; $word = $spelling [ $word ] ;
$result = $word ;
if ( $int % 100 >= 1 ) {
if ( $isMan == 0 && ( $int % 100 == 1 || $int % 100 == 2 ) ) {
$word1 = $spellingWomen [ $int % 100 ] ;
$result = $result . ' ' . $word1 ;
} elseif ( $int % 100 <= 19 || $int % 100 % 10 == 0 ) {
$word1 = $spelling [ $int % 100 ] ;
$result = $result . ' ' . $word1 ;
} else {
$word1 = 10 * floor ( $int % 100 / 10 ) ; $word1 = $spelling [ $word1 ] ;
if ( $isMan == 0 && ( $int % 100 % 10 == 1 || $int % 100 % 10 == 2 ) ) {
$word2 = $int % 100 % 10 ;
$word2 = $spellingWomen [ $word2 ] ;
} else {
$word2 = $int % 100 % 10 ;
$word2 = $spelling [ $word2 ] ;
}
$result = $word . ' ' . $word1 . ' ' . $word2 ;
}
}
} else {
if ( ( $int >= 0 && $int <= 19 ) || $int % 10 == 0 ) {
if ( $isMan == 0 && ( $int == 1 || $int == 2 ) ) {
$word = $spellingWomen [ $int ] ;
$result = $word ;
} else {
$word = $spelling [ $int ] ;
$result = $word ;
}
} else {
$word = 10 * floor ( $int / 10 ) ; $word = $spelling [ $word ] ;
$word1 = $int % 10 ;
$word1 = $spelling [ $word1 ] ;
$result = $word . ' ' . $word1 ;
}
}
return $result ;
}
}
function getWordForm( $int , $str , $str2 , $str5 ) {
if ( $int == 0 || ( $int >= 5 && $int <= 20 ) || $int % 10 >= 5 || $int % 10 == 0 || ( $int % 100 <= 19 && $int % 100 >= 5 ) ) {
return ( $str5 ) ;
}
if ( ( $int >= 2 && $int <= 4 ) || ( $int % 10 >= 2 && $int % 10 <= 4 ) ) {
return ( $str2 ) ;
}
if ( $int == 1 || $int % 10 == 1 ) {
return ( $str ) ;
}
}
function spellNumber( $int ) {
if ( $int >= 1000000 && $int <= 999999999 ) {
$millions = floor ( $int / 1000000 ) ; $smallNumberWord = spellSmallNumber( $millions , 1 ) ;
$thousands = floor ( $int / 1000 ) % 1000 ; $smallNumberWord1 = spellSmallNumber( $thousands , 0 ) ;
$smallNumberWord2 = $int % 1000 ;
$smallNumberWord2 = spellSmallNumber( $smallNumberWord2 , 1 ) ;
$numberForm = getWordForm( $int , 'рубль' , 'рубля' , 'рублей' ) ;
$numberForm1 = getWordForm( $thousands , 'тысяча' , 'тысячи' , 'тысяч' ) ;
$numberForm2 = getWordForm( $millions , 'миллион' , 'миллиона' , 'миллионов' ) ;
$result = $smallNumberWord . ' ' . $numberForm2 . ' ' . $smallNumberWord1 . ' ' . $numberForm1 . ' ' . $smallNumberWord2 . ' ' . $numberForm ;
$result = preg_replace ( '/((?<=миллион )|(?<=миллиона )|(?<=миллионов ))тысяч /u' , '' , $result ) ; } elseif ( $int >= 1000 && $int <= 999999 ) {
$thousands = floor ( $int / 1000 ) ; $smallNumberWord = spellSmallNumber( $thousands , 0 ) ;
$smallNumberWord1 = $int % 1000 ;
$smallNumberWord1 = spellSmallNumber( $smallNumberWord1 , 1 ) ;
$numberForm = getWordForm( $int , 'рубль' , 'рубля' , 'рублей' ) ;
$numberForm1 = getWordForm( $thousands , 'тысяча' , 'тысячи' , 'тысяч' ) ;
$result = $smallNumberWord . ' ' . $numberForm1 . ' ' . $smallNumberWord1 . ' ' . $numberForm ;
} else {
$smallNumberWord = spellSmallNumber( $int , 1 ) ;
$numberForm = getWordForm( $int , 'рубль' , 'рубля' , 'рублей' ) ;
$result = $smallNumberWord . ' ' . $numberForm ;
}
return $result ;
}
echo "[$amount ] " ;
$text = spellNumber( $amount ) ;
echo "На банковском счету клиента №1 - $text \n " ;
echo "[$amount1 ] " ;
$text1 = spellNumber( $amount1 ) ;
echo "На банковском счету клиента №2 - $text1 \n " ;
echo "[$amount2 ] " ;
$text2 = spellNumber( $amount2 ) ;
echo "На банковском счету клиента №3 - $text2 \n " ;
echo "[$amount3 ] " ;
$text3 = spellNumber( $amount3 ) ;
echo "На банковском счету клиента №4 - $text3 \n " ;
$amount4 = 999999999 ;
echo "[$amount4 ] " ;
$text4 = spellNumber( $amount4 ) ;
echo "На банковском счету клиента №5 - $text4 \n " ;
$amount5 = 0 ;
echo "[$amount5 ] " ;
$text5 = spellNumber( $amount5 ) ;
echo "На банковском счету клиента №6 - $text5 \n " ;
$amount6 = 1 ;
echo "[$amount6 ] " ;
$text6 = spellNumber( $amount6 ) ;
echo "На банковском счету клиента №7 - $text6 \n " ;
$amount7 = 11012013 ;
echo "[$amount7 ] " ;
$text7 = spellNumber( $amount7 ) ;
echo "На банковском счету клиента №8 - $text7 \n " ;
$amount8 = 7000008 ;
echo "[$amount8 ] " ;
$text8 = spellNumber( $amount8 ) ;
echo "На банковском счету клиента №9 - $text8 \n " ;
$amount9 = 1002 ;
echo "[$amount9 ] " ;
$text9 = spellNumber( $amount9 ) ;
echo "На банковском счету клиента №10 - $text9 \n " ;
$amount10 = 550 ;
echo "[$amount10 ] " ;
$text10 = spellNumber( $amount10 ) ;
echo "На банковском счету клиента №11 - $text10 \n " ;
$amount11 = 1000001 ;
echo "[$amount11 ] " ;
$text11 = spellNumber( $amount11 ) ;
echo "На банковском счету клиента №12 - $text11 \n " ;
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKZnVuY3Rpb24gc3BlbGxTbWFsbE51bWJlcigkaW50LCAkaXNNYW4pIHsKCWlmICgkaW50ID49IDAgJiYgJGludCA8IDEwMDApIHsKCQkkc3BlbGxpbmcgPSBbCgkJCTAgPT4gJ9C90L7Qu9GMJywKCQkJMSA9PiAn0L7QtNC40L0nLAoJCQkyID0+ICfQtNCy0LAnLAoJCQkzID0+ICfRgtGA0LgnLAoJCQk0ID0+ICfRh9C10YLRi9GA0LUnLAoJCQk1ID0+ICfQv9GP0YLRjCcsCgkJCTYgPT4gJ9GI0LXRgdGC0YwnLAoJCQk3ID0+ICfRgdC10LzRjCcsCgkJCTggPT4gJ9Cy0L7RgdC10LzRjCcsCgkJCTkgPT4gJ9C00LXQstGP0YLRjCcsCgkJCTEwID0+ICfQtNC10YHRj9GC0YwnLAoJCQkxMSA9PiAn0L7QtNC40L3QvdCw0LTRhtCw0YLRjCcsCgkJCTEyID0+ICfQtNCy0LXQvdCw0LTRhtCw0YLRjCcsCgkJCTEzID0+ICfRgtGA0LjQvdCw0LTRhtCw0YLRjCcsCgkJCTE0ID0+ICfRh9C10YLRi9GA0L3QsNC00YbQsNGC0YwnLAoJCQkxNSA9PiAn0L/Rj9GC0L3QsNC00YbQsNGC0YwnLAoJCQkxNiA9PiAn0YjQtdGB0YLQvdCw0LTRhtCw0YLRjCcsCgkJCTE3ID0+ICfRgdC10LzQvdCw0LTRhtCw0YLRjCcsCgkJCTE4ID0+ICfQstC+0YHQtdC80YzQvdCw0LTRhtCw0YLRjCcsCgkJCTE5ID0+ICfQtNC10LLRj9GC0L3QsNC00YbQsNGC0YwnLAoJCQkyMCA9PiAn0LTQstCw0LTRhtCw0YLRjCcsCgkJCTMwID0+ICfRgtGA0LjQtNGG0LDRgtGMJywKCQkJNDAgPT4gJ9GB0L7RgNC+0LonLAoJCQk1MCA9PiAn0L/Rj9GC0YzQtNC10YHRj9GCJywKCQkJNjAgPT4gJ9GI0LXRgdGC0YzQtNC10YHRj9GCJywKCQkJNzAgPT4gJ9GB0LXQvNGM0LTQtdGB0Y/RgicsCgkJCTgwID0+ICfQstC+0YHQtdC80YzQtNC10YHRj9GCJywKCQkJOTAgPT4gJ9C00LXQstGP0L3QvtGB0YLQvicsCgkJCTEwMCA9PiAn0YHRgtC+JywKCQkJMjAwID0+ICfQtNCy0LXRgdGC0LgnLAoJCQkzMDAgPT4gJ9GC0YDQuNGB0YLQsCcsCgkJCTQwMCA9PiAn0YfQtdGC0YvRgNC10YHRgtCwJywKCQkJNTAwID0+ICfQv9GP0YLRjNGB0L7RgicsCgkJCTYwMCA9PiAn0YjQtdGB0YLRjNGB0L7RgicsCgkJCTcwMCA9PiAn0YHQtdC80YzRgdC+0YInLAoJCQk4MDAgPT4gJ9Cy0L7RgdC10LzRjNGB0L7RgicsCgkJCTkwMCA9PiAn0LTQtdCy0Y/RgtGM0YHQvtGCJywKCQkJXTsKCQkJCgkJJHNwZWxsaW5nV29tZW4gPSBbCgkJCQkxID0+ICfQvtC00L3QsCcsCgkJCQkyID0+ICfQtNCy0LUnCgkJCV07CgoJCWlmKCRpbnQvMTAwID49IDEpIHsKCQkJJHdvcmQgPSAxMDAgKiBmbG9vcigkaW50LzEwMCk7CgkJCSR3b3JkID0gJHNwZWxsaW5nWyR3b3JkXTsKCQkJJHJlc3VsdCA9ICR3b3JkOwoJCQlpZigkaW50ICUgMTAwID49IDEpIHsKCQkJCWlmKCRpc01hbiA9PSAwICYmICgkaW50ICUgMTAwID09IDEgfHwgJGludCAlIDEwMCA9PSAyKSkgewoJCQkJCSR3b3JkMSA9ICRzcGVsbGluZ1dvbWVuWyRpbnQgJSAxMDBdOwoJCQkJCSRyZXN1bHQgPSAkcmVzdWx0LicgJy4kd29yZDE7CgkJCQl9IGVsc2VpZigkaW50ICUgMTAwIDw9IDE5IHx8ICRpbnQgJSAxMDAgJSAxMCA9PSAwKSB7CgkJCQkJJHdvcmQxID0gJHNwZWxsaW5nWyRpbnQgJSAxMDBdOwoJCQkJCSRyZXN1bHQgPSAkcmVzdWx0LicgJy4kd29yZDE7CgkJCQl9IGVsc2UgewoJCQkJCSR3b3JkMSA9IDEwICogZmxvb3IoJGludCAlIDEwMCAvIDEwKTsKCQkJCQkkd29yZDEgPSAkc3BlbGxpbmdbJHdvcmQxXTsKCQkJCQlpZigkaXNNYW4gPT0gMCAmJiAoJGludCAlIDEwMCAlIDEwID09IDEgfHwkaW50ICUgMTAwICUgMTAgPT0gMikpIHsKCQkJCQkJJHdvcmQyID0gJGludCAlIDEwMCAlIDEwOwoJCQkJCQkkd29yZDIgPSAkc3BlbGxpbmdXb21lblskd29yZDJdOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSR3b3JkMiA9ICRpbnQgJSAxMDAgJSAxMDsKCQkJCQkJJHdvcmQyID0gJHNwZWxsaW5nWyR3b3JkMl07CgkJCQkJfQoJCQkJCSRyZXN1bHQgPSAkd29yZC4nICcuJHdvcmQxLicgJy4kd29yZDI7CgkJCQl9CgkJCX0KCQl9IGVsc2UgewoJCQkJaWYoKCRpbnQgPj0gMCAmJiAkaW50IDw9IDE5KSB8fCAkaW50ICUgMTAgPT0gMCkgewoJCQkJCWlmKCRpc01hbiA9PSAwICYmICgkaW50ID09IDEgfHwgJGludCA9PSAyKSkgewoJCQkJCQkkd29yZCA9ICRzcGVsbGluZ1dvbWVuWyRpbnRdOwoJCQkJCQkkcmVzdWx0ID0gJHdvcmQ7CgkJCQkJfSBlbHNlIHsKCQkJCQkJJHdvcmQgPSAkc3BlbGxpbmdbJGludF07CgkJCQkJCSRyZXN1bHQgPSAkd29yZDsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCSR3b3JkID0gMTAgKiBmbG9vcigkaW50IC8gMTApOwoJCQkJCSR3b3JkID0gJHNwZWxsaW5nWyR3b3JkXTsKCQkJCQkkd29yZDEgPSAkaW50ICUgMTA7CgkJCQkJJHdvcmQxID0gJHNwZWxsaW5nWyR3b3JkMV07CgkJCQkJJHJlc3VsdCA9ICR3b3JkLicgJy4kd29yZDE7CgkJCQl9CgkJCX0KCXJldHVybiAkcmVzdWx0OwoJfQp9CgpmdW5jdGlvbiBnZXRXb3JkRm9ybSgkaW50LCAkc3RyLCAkc3RyMiwgJHN0cjUpIHsKCWlmKCRpbnQgPT0gMCB8fCAoJGludCA+PSA1ICYmICRpbnQgPD0gMjApIHx8ICRpbnQgJSAxMCA+PSA1IHx8ICRpbnQgJSAxMCA9PSAwIHx8ICgkaW50ICUgMTAwIDw9IDE5ICYmICRpbnQgJSAxMDAgPj0gNSkpIHsKCQlyZXR1cm4oJHN0cjUpOwoJfQoJCglpZigoJGludCA+PSAyICYmICRpbnQgPD0gNCkgfHwgKCRpbnQgJSAxMCA+PSAyICYmICRpbnQgJSAxMCA8PSA0KSkgewoJCXJldHVybigkc3RyMik7Cgl9CgkKCWlmKCRpbnQgPT0gMSB8fCAkaW50ICUgMTAgPT0gMSkgewoJCXJldHVybigkc3RyKTsKCX0KfQoKZnVuY3Rpb24gc3BlbGxOdW1iZXIoJGludCkgewoJaWYoJGludCA+PTEwMDAwMDAgJiYgJGludCA8PSA5OTk5OTk5OTkpIHsKCQkkbWlsbGlvbnMgPSBmbG9vcigkaW50IC8gMTAwMDAwMCk7CgkJJHNtYWxsTnVtYmVyV29yZCA9IHNwZWxsU21hbGxOdW1iZXIoJG1pbGxpb25zLCAxKTsKCQkkdGhvdXNhbmRzID0gZmxvb3IoJGludCAvIDEwMDApICUgMTAwMDsKCQkkc21hbGxOdW1iZXJXb3JkMSA9IHNwZWxsU21hbGxOdW1iZXIoJHRob3VzYW5kcywgMCk7CgkJJHNtYWxsTnVtYmVyV29yZDIgPSAkaW50ICUgMTAwMDsKCQkkc21hbGxOdW1iZXJXb3JkMiA9IHNwZWxsU21hbGxOdW1iZXIoJHNtYWxsTnVtYmVyV29yZDIsIDEpOwoJCSRudW1iZXJGb3JtID0gZ2V0V29yZEZvcm0oJGludCwgJ9GA0YPQsdC70YwnLCAn0YDRg9Cx0LvRjycsICfRgNGD0LHQu9C10LknKTsKCQkkbnVtYmVyRm9ybTEgPSBnZXRXb3JkRm9ybSgkdGhvdXNhbmRzICwn0YLRi9GB0Y/Rh9CwJywgJ9GC0YvRgdGP0YfQuCcsICfRgtGL0YHRj9GHJyk7CgkJJG51bWJlckZvcm0yID0gZ2V0V29yZEZvcm0oJG1pbGxpb25zLCAn0LzQuNC70LvQuNC+0L0nLCAn0LzQuNC70LvQuNC+0L3QsCcsICfQvNC40LvQu9C40L7QvdC+0LInKTsKCQkkcmVzdWx0ID0gJHNtYWxsTnVtYmVyV29yZC4nICcuJG51bWJlckZvcm0yLicgJy4kc21hbGxOdW1iZXJXb3JkMS4nICcuJG51bWJlckZvcm0xLicgJy4kc21hbGxOdW1iZXJXb3JkMi4nICcuJG51bWJlckZvcm07CgkJJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnL9C90L7Qu9GMIC91JywgJycsICRyZXN1bHQpOwoJCSRyZXN1bHQgPSBwcmVnX3JlcGxhY2UoJy8oKD88PdC80LjQu9C70LjQvtC9ICl8KD88PdC80LjQu9C70LjQvtC90LAgKXwoPzw90LzQuNC70LvQuNC+0L3QvtCyICkp0YLRi9GB0Y/RhyAvdScsICcnLCAkcmVzdWx0KTsKCX0gZWxzZWlmKCRpbnQgPj0gMTAwMCAmJiAkaW50IDw9IDk5OTk5OSkgewoJCSR0aG91c2FuZHMgPSBmbG9vcigkaW50IC8gMTAwMCk7CgkJJHNtYWxsTnVtYmVyV29yZCA9IHNwZWxsU21hbGxOdW1iZXIoJHRob3VzYW5kcywgMCk7CgkJJHNtYWxsTnVtYmVyV29yZDEgPSAkaW50ICUgMTAwMDsKCQkkc21hbGxOdW1iZXJXb3JkMSA9IHNwZWxsU21hbGxOdW1iZXIoJHNtYWxsTnVtYmVyV29yZDEsIDEpOwoJCSRudW1iZXJGb3JtID0gZ2V0V29yZEZvcm0oJGludCwgJ9GA0YPQsdC70YwnLCAn0YDRg9Cx0LvRjycsICfRgNGD0LHQu9C10LknKTsKCQkkbnVtYmVyRm9ybTEgPSBnZXRXb3JkRm9ybSgkdGhvdXNhbmRzICwn0YLRi9GB0Y/Rh9CwJywgJ9GC0YvRgdGP0YfQuCcsICfRgtGL0YHRj9GHJyk7CgkJJHJlc3VsdCA9ICRzbWFsbE51bWJlcldvcmQuJyAnLiRudW1iZXJGb3JtMS4nICcuJHNtYWxsTnVtYmVyV29yZDEuJyAnLiRudW1iZXJGb3JtOwoJCSRyZXN1bHQgPSBwcmVnX3JlcGxhY2UoJy/QvdC+0LvRjCAvdScsICcnLCAkcmVzdWx0KTsKCX0gZWxzZSB7CgkJJHNtYWxsTnVtYmVyV29yZCA9IHNwZWxsU21hbGxOdW1iZXIoJGludCwgMSk7CgkJJG51bWJlckZvcm0gPSBnZXRXb3JkRm9ybSgkaW50LCAn0YDRg9Cx0LvRjCcsICfRgNGD0LHQu9GPJywgJ9GA0YPQsdC70LXQuScpOwoJCSRyZXN1bHQgPSAkc21hbGxOdW1iZXJXb3JkLicgJy4kbnVtYmVyRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgokYW1vdW50ID0gIG10X3JhbmQoMCwgOTk5OTk5OTk5KTsKZWNobyAiWyRhbW91bnRdICI7CiR0ZXh0ID0gc3BlbGxOdW1iZXIoJGFtb3VudCk7CmVjaG8gItCd0LAg0LHQsNC90LrQvtCy0YHQutC+0Lwg0YHRh9C10YLRgyDQutC70LjQtdC90YLQsCDihJYxIC0gJHRleHRcbiI7CgokYW1vdW50MSA9IG10X3JhbmQoMCwgOTk5OTk5OTk5KTsKZWNobyAiWyRhbW91bnQxXSAiOwokdGV4dDEgPSBzcGVsbE51bWJlcigkYW1vdW50MSk7CmVjaG8gItCd0LAg0LHQsNC90LrQvtCy0YHQutC+0Lwg0YHRh9C10YLRgyDQutC70LjQtdC90YLQsCDihJYyIC0gJHRleHQxXG4iOwoKJGFtb3VudDIgPSBtdF9yYW5kKDAsIDk5OTk5OTk5OSk7CmVjaG8gIlskYW1vdW50Ml0gIjsKJHRleHQyID0gc3BlbGxOdW1iZXIoJGFtb3VudDIpOwplY2hvICLQndCwINCx0LDQvdC60L7QstGB0LrQvtC8INGB0YfQtdGC0YMg0LrQu9C40LXQvdGC0LAg4oSWMyAtICR0ZXh0MlxuIjsKCiRhbW91bnQzID0gbXRfcmFuZCgwLCA5OTk5OTk5OTkpOwplY2hvICJbJGFtb3VudDNdICI7CiR0ZXh0MyA9IHNwZWxsTnVtYmVyKCRhbW91bnQzKTsKZWNobyAi0J3QsCDQsdCw0L3QutC+0LLRgdC60L7QvCDRgdGH0LXRgtGDINC60LvQuNC10L3RgtCwIOKEljQgLSAkdGV4dDNcbiI7CgokYW1vdW50NCA9IDk5OTk5OTk5OTsKZWNobyAiWyRhbW91bnQ0XSAiOwokdGV4dDQgPSBzcGVsbE51bWJlcigkYW1vdW50NCk7CmVjaG8gItCd0LAg0LHQsNC90LrQvtCy0YHQutC+0Lwg0YHRh9C10YLRgyDQutC70LjQtdC90YLQsCDihJY1IC0gJHRleHQ0XG4iOwoKJGFtb3VudDUgPSAwOwplY2hvICJbJGFtb3VudDVdICI7CiR0ZXh0NSA9IHNwZWxsTnVtYmVyKCRhbW91bnQ1KTsKZWNobyAi0J3QsCDQsdCw0L3QutC+0LLRgdC60L7QvCDRgdGH0LXRgtGDINC60LvQuNC10L3RgtCwIOKEljYgLSAkdGV4dDVcbiI7CgokYW1vdW50NiA9IDE7CmVjaG8gIlskYW1vdW50Nl0gIjsKJHRleHQ2ID0gc3BlbGxOdW1iZXIoJGFtb3VudDYpOwplY2hvICLQndCwINCx0LDQvdC60L7QstGB0LrQvtC8INGB0YfQtdGC0YMg0LrQu9C40LXQvdGC0LAg4oSWNyAtICR0ZXh0NlxuIjsKCiRhbW91bnQ3ID0gMTEwMTIwMTM7CmVjaG8gIlskYW1vdW50N10gIjsKJHRleHQ3ID0gc3BlbGxOdW1iZXIoJGFtb3VudDcpOwplY2hvICLQndCwINCx0LDQvdC60L7QstGB0LrQvtC8INGB0YfQtdGC0YMg0LrQu9C40LXQvdGC0LAg4oSWOCAtICR0ZXh0N1xuIjsKCiRhbW91bnQ4ID0gNzAwMDAwODsKZWNobyAiWyRhbW91bnQ4XSAiOwokdGV4dDggPSBzcGVsbE51bWJlcigkYW1vdW50OCk7CmVjaG8gItCd0LAg0LHQsNC90LrQvtCy0YHQutC+0Lwg0YHRh9C10YLRgyDQutC70LjQtdC90YLQsCDihJY5IC0gJHRleHQ4XG4iOwoKJGFtb3VudDkgPSAxMDAyOwplY2hvICJbJGFtb3VudDldICI7CiR0ZXh0OSA9IHNwZWxsTnVtYmVyKCRhbW91bnQ5KTsKZWNobyAi0J3QsCDQsdCw0L3QutC+0LLRgdC60L7QvCDRgdGH0LXRgtGDINC60LvQuNC10L3RgtCwIOKEljEwIC0gJHRleHQ5XG4iOwoKJGFtb3VudDEwID0gNTUwOwplY2hvICJbJGFtb3VudDEwXSAiOwokdGV4dDEwID0gc3BlbGxOdW1iZXIoJGFtb3VudDEwKTsKZWNobyAi0J3QsCDQsdCw0L3QutC+0LLRgdC60L7QvCDRgdGH0LXRgtGDINC60LvQuNC10L3RgtCwIOKEljExIC0gJHRleHQxMFxuIjsKCiRhbW91bnQxMSA9IDEwMDAwMDE7CmVjaG8gIlskYW1vdW50MTFdICI7CiR0ZXh0MTEgPSBzcGVsbE51bWJlcigkYW1vdW50MTEpOwplY2hvICLQndCwINCx0LDQvdC60L7QstGB0LrQvtC8INGB0YfQtdGC0YMg0LrQu9C40LXQvdGC0LAg4oSWMTIgLSAkdGV4dDExXG4iOwo=