<?php
0 => 'миллионов' ,
11 => 'миллионов' ,
1 => 'миллион' ,
12 => 'миллионов' ,
2 => 'миллиона' ,
13 => 'миллионов' ,
3 => 'миллиона' ,
14 => 'миллионов' ,
4 => 'миллиона' ,
15 => 'миллионов' ,
5 => 'миллионов' ,
16 => 'миллионов' ,
6 => 'миллионов' ,
17 => 'миллионов' ,
7 => 'миллионов' ,
18 => 'миллионов' ,
8 => 'миллионов' ,
19 => 'миллионов' ,
9 => 'миллионов'
) ;
0 => 'тысяч' ,
1 => 'тысяча' ,
11 => 'тысяч' ,
2 => 'тысячи' ,
12 => 'тысяч' ,
3 => 'тысячи' ,
13 => 'тысяч' ,
4 => 'тысячи' ,
14 => 'тысяч' ,
5 => 'тысяч' ,
15 => 'тысяч' ,
6 => 'тысяч' ,
16 => 'тысяч' ,
7 => 'тысяч' ,
17 => 'тысяч' ,
8 => 'тысяч' ,
18 => 'тысяч' ,
9 => 'тысяч' ,
19 => 'тысяч'
) ;
0 => 'рублей' ,
1 => 'рубль' ,
11 => 'рублей' ,
2 => 'рубля' ,
12 => 'рублей' ,
3 => 'рубля' ,
13 => 'рублей' ,
4 => 'рубля' ,
14 => 'рублей' ,
5 => 'рублей' ,
15 => 'рублей' ,
6 => 'рублей' ,
16 => 'рублей' ,
7 => 'рублей' ,
17 => 'рублей' ,
8 => 'рублей' ,
18 => 'рублей' ,
9 => 'рублей' ,
19 => 'рублей'
) ;
1 => 'одна' ,
2 => 'две'
) ;
0 => 'ноль' ,
10 => 'десять' ,
100 => 'сто' ,
1 => 'один' ,
11 => 'одиннадцать' ,
20 => 'двадцать' ,
200 => 'двести' ,
2 => 'два' ,
12 => 'двенадцать' ,
30 => 'тридцать' ,
300 => 'триста' ,
3 => 'три' ,
13 => 'тринадцать' ,
40 => 'сорок' ,
400 => 'четыреста' ,
4 => 'четыре' ,
14 => 'четырнадцать' ,
50 => 'пятьдесят' ,
500 => 'пятьсот' ,
5 => 'пять' ,
15 => 'пятнадцать' ,
60 => 'шестьдесят' ,
600 => 'шестьсот' ,
6 => 'шесть' ,
16 => 'шестнадцать' ,
70 => 'семьдесят' ,
700 => 'семьсот' ,
7 => 'семь' ,
17 => 'семнадцать' ,
80 => 'восемьдесят' ,
800 => 'восемьсот' ,
8 => 'восемь' ,
18 => 'восемнадцать' ,
90 => 'девяносто' ,
900 => 'девятьсот' ,
9 => 'девять' ,
19 => 'девятнадцать'
) ;
// начало миллионы
$number = 910000000 ;
if ( $number == 0 ) {
return ;
}
$numberX = floor ( $number / 100000000 ) ; //Сотни миллионов if ( $numberX > 1 ) {
$numberX .= "00" ;
$text .= $spelling [ $numberX ] ;
} elseif ( $numberX == 0 ) {
$mill = true ;
}
$numberX = floor ( $number % 100000000 ) ; //Десятки миллионов $numberX = floor ( $numberX / 1000000 ) ; if ( $numberX > 10 && $numberX < 20 ) {
$numberOn = true ;
$numberOn1 = $numberX ;
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX > 0 ) {
$numberX = floor ( $numberX / 10 ) ; $numberX .= "0" ;
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX == 0 ) {
$mill2 = true ;
}
$numberX = floor ( $number % 10000000 ) ; //Единицы миллионов $numberX = floor ( $numberX / 1000000 ) ; if ( $numberX > 0 && $numberOn == false ) {
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberOn == true ) {
$numberX = $numberOn1 ;
} elseif ( $numberX == 0 ) {
$mill3 = true ;
}
if ( $numberX > 10 && $numberX < 20 ) { // миллионы слово
$text .= " " . $millions [ $numberX ] ;
} elseif ( $numberX == 0 && $mill == true && $mill2 == true && $mill3 == true ) {
} elseif ( floor ( $numberX % 10 ) > 0 ) { $numberX %= 10 ;
$text .= " " . $millions [ $numberX ] ;
} elseif ( floor ( $numberX % 10 ) == 0 ) { $numberX %= 10 ;
$text .= " " . $millions [ $numberX ] ;
}
// начало тысячи
$numberX = floor ( $number % 1000000 ) ; //СОТНИ тыысяч $numberX = floor ( $numberX / 100000 ) ; if ( $numberX > 0 ) {
$numberX .= "00" ;
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX == 0 ) {
$thous1 = true ;
}
$numberX = floor ( $number % 100000 ) ; //ДЕСЯТКИ тыысяч $numberX = floor ( $numberX / 1000 ) ; if ( $numberX > 10 && $numberX < 20 ) {
$numberOn = true ;
$numberOn1 = $numberX ;
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX > 0 ) {
$numberX = floor ( $numberX / 10 ) ; $numberX .= "0" ;
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX == 0 ) {
$thous2 = true ;
}
$numberX = floor ( $number % 10000 ) ; //ЕДИНИЦЫ тыысяч $numberX = floor ( $numberX / 1000 ) ; if ( $numberX == 1 or $numberX == 2 && $numberOn == false ) {
$text .= " " . $odnaDve [ $numberX ] ;
} elseif ( $numberX > 0 && $numberOn == false ) {
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX == 0 ) {
$thous3 = true ;
} elseif ( $numberOn == true ) {
$numberX = $numberOn1 ;
}
if ( $numberX > 10 && $numberX < 20 ) { // ТЫСЯЧ
$text .= " " . $thousand [ $numberX ] ;
} elseif ( $numberX == 0 && $thous1 == true && $thous2 == true && $thous3 == true ) {
} elseif ( floor ( $numberX % 10 ) > 0 ) { $numberX %= 10 ;
$text .= " " . $thousand [ $numberX ] ;
} elseif ( floor ( $numberX % 10 ) == 0 ) { $numberX %= 10 ;
$text .= " " . $thousand [ $numberX ] ;
}
//начало сотни
$numberOn = false ;
$numberX = floor ( $number % 1000 ) ; //СОТНИ $numberX = floor ( $numberX / 100 ) ;
if ( $numberX > 0 ) {
$numberX .= "00" ;
$text .= " " . $spelling [ $numberX ] ;
}
$numberX = floor ( $number % 100 ) ; //ДЕСЯТКИ
if ( $numberX > 10 && $numberX < 20 ) {
$numberOn = true ;
$numberOn1 = $numberX ;
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberX > 0 ) {
$numberX = floor ( $numberX / 10 ) ; $numberX .= "0" ;
$text .= " " . $spelling [ $numberX ] ;
}
$numberX = floor ( $number % 10 ) ; //ЕДИНИЦЫ if ( $numberX > 0 && $numberOn == false ) {
$text .= " " . $spelling [ $numberX ] ;
} elseif ( $numberOn == true ) {
$numberX = $numberOn1 ;
}
$text .= " (" . ( $number ) . ")" ; // Число в скобках
if ( $numberX > 10 && $numberX < 20 ) { // РУБЛЕЙ
$text .= " " . $rubles [ $numberX ] ;
} elseif ( floor ( $numberX % 10 ) > 0 ) { $numberX %= 10 ;
$text .= " " . $rubles [ $numberX ] ;
} elseif ( floor ( $numberX % 10 ) == 0 ) { $numberX %= 10 ;
$text .= " " . $rubles [ $numberX ] ;
}
echo $text ;
PD9waHAKCiRtaWxsaW9ucyA9IGFycmF5KAogICAgMCA9PiAn0LzQuNC70LvQuNC+0L3QvtCyJywKICAgIDExID0+ICfQvNC40LvQu9C40L7QvdC+0LInLAogICAgMSA9PiAn0LzQuNC70LvQuNC+0L0nLAogICAgMTIgPT4gJ9C80LjQu9C70LjQvtC90L7QsicsCiAgICAyID0+ICfQvNC40LvQu9C40L7QvdCwJywKICAgIDEzID0+ICfQvNC40LvQu9C40L7QvdC+0LInLAogICAgMyA9PiAn0LzQuNC70LvQuNC+0L3QsCcsCiAgICAxNCA9PiAn0LzQuNC70LvQuNC+0L3QvtCyJywKICAgIDQgPT4gJ9C80LjQu9C70LjQvtC90LAnLAogICAgMTUgPT4gJ9C80LjQu9C70LjQvtC90L7QsicsCiAgICA1ID0+ICfQvNC40LvQu9C40L7QvdC+0LInLAogICAgMTYgPT4gJ9C80LjQu9C70LjQvtC90L7QsicsCiAgICA2ID0+ICfQvNC40LvQu9C40L7QvdC+0LInLAogICAgMTcgPT4gJ9C80LjQu9C70LjQvtC90L7QsicsCiAgICA3ID0+ICfQvNC40LvQu9C40L7QvdC+0LInLAogICAgMTggPT4gJ9C80LjQu9C70LjQvtC90L7QsicsCiAgICA4ID0+ICfQvNC40LvQu9C40L7QvdC+0LInLAogICAgMTkgPT4gJ9C80LjQu9C70LjQvtC90L7QsicsCiAgICA5ID0+ICfQvNC40LvQu9C40L7QvdC+0LInCik7CiR0aG91c2FuZCA9IGFycmF5KAogICAgMCA9PiAn0YLRi9GB0Y/RhycsCiAgICAxID0+ICfRgtGL0YHRj9GH0LAnLAogICAgMTEgPT4gJ9GC0YvRgdGP0YcnLAogICAgMiA9PiAn0YLRi9GB0Y/Rh9C4JywKICAgIDEyID0+ICfRgtGL0YHRj9GHJywKICAgIDMgPT4gJ9GC0YvRgdGP0YfQuCcsCiAgICAxMyA9PiAn0YLRi9GB0Y/RhycsCiAgICA0ID0+ICfRgtGL0YHRj9GH0LgnLAogICAgMTQgPT4gJ9GC0YvRgdGP0YcnLAogICAgNSA9PiAn0YLRi9GB0Y/RhycsCiAgICAxNSA9PiAn0YLRi9GB0Y/RhycsCiAgICA2ID0+ICfRgtGL0YHRj9GHJywKICAgIDE2ID0+ICfRgtGL0YHRj9GHJywKICAgIDcgPT4gJ9GC0YvRgdGP0YcnLAogICAgMTcgPT4gJ9GC0YvRgdGP0YcnLAogICAgOCA9PiAn0YLRi9GB0Y/RhycsCiAgICAxOCA9PiAn0YLRi9GB0Y/RhycsCiAgICA5ID0+ICfRgtGL0YHRj9GHJywKICAgIDE5ID0+ICfRgtGL0YHRj9GHJwopOwokcnVibGVzICAgPSBhcnJheSgKICAgIDAgPT4gJ9GA0YPQsdC70LXQuScsCiAgICAxID0+ICfRgNGD0LHQu9GMJywKICAgIDExID0+ICfRgNGD0LHQu9C10LknLAogICAgMiA9PiAn0YDRg9Cx0LvRjycsCiAgICAxMiA9PiAn0YDRg9Cx0LvQtdC5JywKICAgIDMgPT4gJ9GA0YPQsdC70Y8nLAogICAgMTMgPT4gJ9GA0YPQsdC70LXQuScsCiAgICA0ID0+ICfRgNGD0LHQu9GPJywKICAgIDE0ID0+ICfRgNGD0LHQu9C10LknLAogICAgNSA9PiAn0YDRg9Cx0LvQtdC5JywKICAgIDE1ID0+ICfRgNGD0LHQu9C10LknLAogICAgNiA9PiAn0YDRg9Cx0LvQtdC5JywKICAgIDE2ID0+ICfRgNGD0LHQu9C10LknLAogICAgNyA9PiAn0YDRg9Cx0LvQtdC5JywKICAgIDE3ID0+ICfRgNGD0LHQu9C10LknLAogICAgOCA9PiAn0YDRg9Cx0LvQtdC5JywKICAgIDE4ID0+ICfRgNGD0LHQu9C10LknLAogICAgOSA9PiAn0YDRg9Cx0LvQtdC5JywKICAgIDE5ID0+ICfRgNGD0LHQu9C10LknCik7CiRvZG5hRHZlICA9IGFycmF5KAogICAgMSA9PiAn0L7QtNC90LAnLAogICAgMiA9PiAn0LTQstC1JwopOwokc3BlbGxpbmcgPSBhcnJheSgKICAgIDAgPT4gJ9C90L7Qu9GMJywKICAgIDEwID0+ICfQtNC10YHRj9GC0YwnLAogICAgMTAwID0+ICfRgdGC0L4nLAogICAgMSA9PiAn0L7QtNC40L0nLAogICAgMTEgPT4gJ9C+0LTQuNC90L3QsNC00YbQsNGC0YwnLAogICAgMjAgPT4gJ9C00LLQsNC00YbQsNGC0YwnLAogICAgMjAwID0+ICfQtNCy0LXRgdGC0LgnLAogICAgMiA9PiAn0LTQstCwJywKICAgIDEyID0+ICfQtNCy0LXQvdCw0LTRhtCw0YLRjCcsCiAgICAzMCA9PiAn0YLRgNC40LTRhtCw0YLRjCcsCiAgICAzMDAgPT4gJ9GC0YDQuNGB0YLQsCcsCiAgICAzID0+ICfRgtGA0LgnLAogICAgMTMgPT4gJ9GC0YDQuNC90LDQtNGG0LDRgtGMJywKICAgIDQwID0+ICfRgdC+0YDQvtC6JywKICAgIDQwMCA9PiAn0YfQtdGC0YvRgNC10YHRgtCwJywKICAgIDQgPT4gJ9GH0LXRgtGL0YDQtScsCiAgICAxNCA9PiAn0YfQtdGC0YvRgNC90LDQtNGG0LDRgtGMJywKICAgIDUwID0+ICfQv9GP0YLRjNC00LXRgdGP0YInLAogICAgNTAwID0+ICfQv9GP0YLRjNGB0L7RgicsCiAgICA1ID0+ICfQv9GP0YLRjCcsCiAgICAxNSA9PiAn0L/Rj9GC0L3QsNC00YbQsNGC0YwnLAogICAgNjAgPT4gJ9GI0LXRgdGC0YzQtNC10YHRj9GCJywKICAgIDYwMCA9PiAn0YjQtdGB0YLRjNGB0L7RgicsCiAgICA2ID0+ICfRiNC10YHRgtGMJywKICAgIDE2ID0+ICfRiNC10YHRgtC90LDQtNGG0LDRgtGMJywKICAgIDcwID0+ICfRgdC10LzRjNC00LXRgdGP0YInLAogICAgNzAwID0+ICfRgdC10LzRjNGB0L7RgicsCiAgICA3ID0+ICfRgdC10LzRjCcsCiAgICAxNyA9PiAn0YHQtdC80L3QsNC00YbQsNGC0YwnLAogICAgODAgPT4gJ9Cy0L7RgdC10LzRjNC00LXRgdGP0YInLAogICAgODAwID0+ICfQstC+0YHQtdC80YzRgdC+0YInLAogICAgOCA9PiAn0LLQvtGB0LXQvNGMJywKICAgIDE4ID0+ICfQstC+0YHQtdC80L3QsNC00YbQsNGC0YwnLAogICAgOTAgPT4gJ9C00LXQstGP0L3QvtGB0YLQvicsCiAgICA5MDAgPT4gJ9C00LXQstGP0YLRjNGB0L7RgicsCiAgICA5ID0+ICfQtNC10LLRj9GC0YwnLAogICAgMTkgPT4gJ9C00LXQstGP0YLQvdCw0LTRhtCw0YLRjCcKKTsKCi8vINC90LDRh9Cw0LvQviDQvNC40LvQu9C40L7QvdGLCiRudW1iZXIgPSA5MTAwMDAwMDA7CmlmICgkbnVtYmVyID09IDApIHsKICAgIHJldHVybjsKfQokbnVtYmVyWCA9IGZsb29yKCRudW1iZXIgLyAxMDAwMDAwMDApOyAvL9Ch0L7RgtC90Lgg0LzQuNC70LvQuNC+0L3QvtCyCmlmICgkbnVtYmVyWCA+IDEpIHsKICAgICRudW1iZXJYIC49ICIwMCI7CiAgICAkdGV4dCAuPSAkc3BlbGxpbmdbJG51bWJlclhdOwp9IGVsc2VpZiAoJG51bWJlclggPT0gMCkgewogICAgJG1pbGwgPSB0cnVlOwp9CiRudW1iZXJYID0gZmxvb3IoJG51bWJlciAlIDEwMDAwMDAwMCk7IC8v0JTQtdGB0Y/RgtC60Lgg0LzQuNC70LvQuNC+0L3QvtCyCiRudW1iZXJYID0gZmxvb3IoJG51bWJlclggLyAxMDAwMDAwKTsKaWYgKCRudW1iZXJYID4gMTAgJiYgJG51bWJlclggPCAyMCkgewogICAgJG51bWJlck9uICA9IHRydWU7CiAgICAkbnVtYmVyT24xID0gJG51bWJlclg7CiAgICAkdGV4dCAuPSAiICIgLiAkc3BlbGxpbmdbJG51bWJlclhdOwp9IGVsc2VpZiAoJG51bWJlclggPiAwKSB7CiAgICAkbnVtYmVyWCA9IGZsb29yKCRudW1iZXJYIC8gMTApOwogICAgJG51bWJlclggLj0gIjAiOwogICAgJHRleHQgLj0gIiAiIC4gJHNwZWxsaW5nWyRudW1iZXJYXTsKfSBlbHNlaWYgKCRudW1iZXJYID09IDApIHsKICAgICRtaWxsMiA9IHRydWU7Cn0KJG51bWJlclggPSBmbG9vcigkbnVtYmVyICUgMTAwMDAwMDApOyAvL9CV0LTQuNC90LjRhtGLINC80LjQu9C70LjQvtC90L7QsgokbnVtYmVyWCA9IGZsb29yKCRudW1iZXJYIC8gMTAwMDAwMCk7CmlmICgkbnVtYmVyWCA+IDAgJiYgJG51bWJlck9uID09IGZhbHNlKSB7CiAgICAkdGV4dCAuPSAiICIgLiAkc3BlbGxpbmdbJG51bWJlclhdOwp9IGVsc2VpZiAoJG51bWJlck9uID09IHRydWUpIHsKICAgICRudW1iZXJYID0gJG51bWJlck9uMTsKfSBlbHNlaWYgKCRudW1iZXJYID09IDApIHsKICAgICRtaWxsMyA9IHRydWU7Cn0KCmlmICgkbnVtYmVyWCA+IDEwICYmICRudW1iZXJYIDwgMjApIHsgLy8g0LzQuNC70LvQuNC+0L3RiyDRgdC70L7QstC+IAogICAgJHRleHQgLj0gIiAiIC4gJG1pbGxpb25zWyRudW1iZXJYXTsKfSBlbHNlaWYgKCRudW1iZXJYID09IDAgJiYgJG1pbGwgPT0gdHJ1ZSAmJiAkbWlsbDIgPT0gdHJ1ZSAmJiAkbWlsbDMgPT0gdHJ1ZSkgewogICAgCn0gZWxzZWlmIChmbG9vcigkbnVtYmVyWCAlIDEwKSA+IDApIHsKICAgICRudW1iZXJYICU9IDEwOwogICAgJHRleHQgLj0gIiAiIC4gJG1pbGxpb25zWyRudW1iZXJYXTsKfSBlbHNlaWYgKGZsb29yKCRudW1iZXJYICUgMTApID09IDApIHsKICAgICRudW1iZXJYICU9IDEwOwogICAgJHRleHQgLj0gIiAiIC4gJG1pbGxpb25zWyRudW1iZXJYXTsKfQoKLy8g0L3QsNGH0LDQu9C+INGC0YvRgdGP0YfQuAokbnVtYmVyWCA9IGZsb29yKCRudW1iZXIgJSAxMDAwMDAwKTsgLy/QodCe0KLQndCYINGC0YvRi9GB0Y/RhwokbnVtYmVyWCA9IGZsb29yKCRudW1iZXJYIC8gMTAwMDAwKTsKaWYgKCRudW1iZXJYID4gMCkgewogICAgJG51bWJlclggLj0gIjAwIjsKICAgICR0ZXh0IC49ICIgIiAuICRzcGVsbGluZ1skbnVtYmVyWF07Cn0gZWxzZWlmICgkbnVtYmVyWCA9PSAwKSB7CiAgICAkdGhvdXMxID0gdHJ1ZTsKfQokbnVtYmVyWCA9IGZsb29yKCRudW1iZXIgJSAxMDAwMDApOyAvL9CU0JXQodCv0KLQmtCYINGC0YvRi9GB0Y/RhwokbnVtYmVyWCA9IGZsb29yKCRudW1iZXJYIC8gMTAwMCk7CmlmICgkbnVtYmVyWCA+IDEwICYmICRudW1iZXJYIDwgMjApIHsKICAgICRudW1iZXJPbiAgPSB0cnVlOwogICAgJG51bWJlck9uMSA9ICRudW1iZXJYOwogICAgJHRleHQgLj0gIiAiIC4gJHNwZWxsaW5nWyRudW1iZXJYXTsKfSBlbHNlaWYgKCRudW1iZXJYID4gMCkgewogICAgJG51bWJlclggPSBmbG9vcigkbnVtYmVyWCAvIDEwKTsKICAgICRudW1iZXJYIC49ICIwIjsKICAgICR0ZXh0IC49ICIgIiAuICRzcGVsbGluZ1skbnVtYmVyWF07Cn0gZWxzZWlmICgkbnVtYmVyWCA9PSAwKSB7CiAgICAkdGhvdXMyID0gdHJ1ZTsKfQoKJG51bWJlclggPSBmbG9vcigkbnVtYmVyICUgMTAwMDApOyAvL9CV0JTQmNCd0JjQptCrINGC0YvRi9GB0Y/RhwokbnVtYmVyWCA9IGZsb29yKCRudW1iZXJYIC8gMTAwMCk7CmlmICgkbnVtYmVyWCA9PSAxIG9yICRudW1iZXJYID09IDIgJiYgJG51bWJlck9uID09IGZhbHNlKSB7CiAgICAkdGV4dCAuPSAiICIgLiAkb2RuYUR2ZVskbnVtYmVyWF07Cn0gZWxzZWlmICgkbnVtYmVyWCA+IDAgJiYgJG51bWJlck9uID09IGZhbHNlKSB7CiAgICAkdGV4dCAuPSAiICIgLiAkc3BlbGxpbmdbJG51bWJlclhdOwp9IGVsc2VpZiAoJG51bWJlclggPT0gMCkgewogICAgJHRob3VzMyA9IHRydWU7Cn0gZWxzZWlmICgkbnVtYmVyT24gPT0gdHJ1ZSkgewogICAgJG51bWJlclggPSAkbnVtYmVyT24xOwp9CgoKaWYgKCRudW1iZXJYID4gMTAgJiYgJG51bWJlclggPCAyMCkgeyAvLyDQotCr0KHQr9CnIAogICAgJHRleHQgLj0gIiAiIC4gJHRob3VzYW5kWyRudW1iZXJYXTsKfSBlbHNlaWYgKCRudW1iZXJYID09IDAgJiYgJHRob3VzMSA9PSB0cnVlICYmICR0aG91czIgPT0gdHJ1ZSAmJiAkdGhvdXMzID09IHRydWUpIHsKICAgIAp9IGVsc2VpZiAoZmxvb3IoJG51bWJlclggJSAxMCkgPiAwKSB7CiAgICAkbnVtYmVyWCAlPSAxMDsKICAgICR0ZXh0IC49ICIgIiAuICR0aG91c2FuZFskbnVtYmVyWF07Cn0gZWxzZWlmIChmbG9vcigkbnVtYmVyWCAlIDEwKSA9PSAwKSB7CiAgICAkbnVtYmVyWCAlPSAxMDsKICAgICR0ZXh0IC49ICIgIiAuICR0aG91c2FuZFskbnVtYmVyWF07Cn0KCgovL9C90LDRh9Cw0LvQviDRgdC+0YLQvdC4CiRudW1iZXJPbiA9IGZhbHNlOwokbnVtYmVyWCAgPSBmbG9vcigkbnVtYmVyICUgMTAwMCk7IC8v0KHQntCi0J3QmCAKJG51bWJlclggID0gZmxvb3IoJG51bWJlclggLyAxMDApOwoKaWYgKCRudW1iZXJYID4gMCkgewogICAgJG51bWJlclggLj0gIjAwIjsKICAgICR0ZXh0IC49ICIgIiAuICRzcGVsbGluZ1skbnVtYmVyWF07Cn0KJG51bWJlclggPSBmbG9vcigkbnVtYmVyICUgMTAwKTsgLy/QlNCV0KHQr9Ci0JrQmCAKCmlmICgkbnVtYmVyWCA+IDEwICYmICRudW1iZXJYIDwgMjApIHsKICAgICRudW1iZXJPbiAgPSB0cnVlOwogICAgJG51bWJlck9uMSA9ICRudW1iZXJYOwogICAgJHRleHQgLj0gIiAiIC4gJHNwZWxsaW5nWyRudW1iZXJYXTsKfSBlbHNlaWYgKCRudW1iZXJYID4gMCkgewogICAgJG51bWJlclggPSBmbG9vcigkbnVtYmVyWCAvIDEwKTsKICAgICRudW1iZXJYIC49ICIwIjsKICAgICR0ZXh0IC49ICIgIiAuICRzcGVsbGluZ1skbnVtYmVyWF07Cn0KCiRudW1iZXJYID0gZmxvb3IoJG51bWJlciAlIDEwKTsgLy/QldCU0JjQndCY0KbQqyAKaWYgKCRudW1iZXJYID4gMCAmJiAkbnVtYmVyT24gPT0gZmFsc2UpIHsKICAgICR0ZXh0IC49ICIgIiAuICRzcGVsbGluZ1skbnVtYmVyWF07Cn0gZWxzZWlmICgkbnVtYmVyT24gPT0gdHJ1ZSkgewogICAgJG51bWJlclggPSAkbnVtYmVyT24xOwp9CiR0ZXh0IC49ICIgKCIgLiAoJG51bWJlcikgLiAiKSI7IC8vINCn0LjRgdC70L4g0LIg0YHQutC+0LHQutCw0YUKCmlmICgkbnVtYmVyWCA+IDEwICYmICRudW1iZXJYIDwgMjApIHsgLy8g0KDQo9CR0JvQldCZCiAgICAkdGV4dCAuPSAiICIgLiAkcnVibGVzWyRudW1iZXJYXTsKfSBlbHNlaWYgKGZsb29yKCRudW1iZXJYICUgMTApID4gMCkgewogICAgJG51bWJlclggJT0gMTA7CiAgICAkdGV4dCAuPSAiICIgLiAkcnVibGVzWyRudW1iZXJYXTsKfSBlbHNlaWYgKGZsb29yKCRudW1iZXJYICUgMTApID09IDApIHsKICAgICRudW1iZXJYICU9IDEwOwogICAgJHRleHQgLj0gIiAiIC4gJHJ1Ymxlc1skbnVtYmVyWF07Cn0KCmVjaG8gJHRleHQ7