#include <stdio.h> // Извикване на библиотеката за 'printf' и 'scanf' за да могат да се използват тези функции
#include <math.h> // Извикване на библиотеката за математическите изчисления
#define PI 3.141592653 // Дефинираме числото PI
int m, i, x, y, z; // Задаваме променливи
float t, rsum;
float a[ 20 ] , b[ 20 ] , c[ 20 ] ; // Масиви за страни на триъгълника като 'а' и 'b' се задават ръчно
float A[ 20 ] , B[ 20 ] , C[ 20 ] ; // Масиви за ъгли на триъгълника като 'А' се задава ръчно
float r[ 20 ] , p[ 20 ] , S[ 20 ] , r2[ 20 ] ; // Масиви за радиус на вписаната в триъгълника окръжност 'r',полуметър 'p' и лице 'S'
int main( )
{
printf ( "\n ****************LEGENDA****************\n " ) ; printf ( " * No: - Nomer na triygylnika *\n " ) ; printf ( " * a - Strana 'a' na triygylnika *\n " ) ; printf ( " * b - Strana 'b' na triygylnika *\n " ) ; printf ( " * c - Strana 'c' na triygylnika *\n " ) ; printf ( " * A - Ygyl 'A' na triygylnika *\n " ) ; printf ( " * B - Ygyl 'B' na triygylnika *\n " ) ; printf ( " * C - Ygyl 'C' na triygylnika *\n " ) ; printf ( " * r - Radius na wpisanata okryjnost *\n " ) ; printf ( " ***************************************\n \n " ) ;
Nachalo: // Място от където да продължи ако условието за 'М' не е спазено
printf ( " Molq vyvedete broj triygylnici M:" ) ; // Изписване на екрана scanf ( "%d" ,& m
) ; // Усвояване на стойност за броя на триъгълниците if ( m> 19 ) // Проверка за М<20
{
printf ( " Broq triygylnici trqbwa da e po malyk ot 20!\n \n " ) ; // Изписване на екрана goto Nachalo; // Ако условието(М<20) не е спазено програмата се връща в началото
}
getchar ( ) ; // Изчакване за натискане на клавиш от клавиатурата for ( i= 1 ; i<= m;++ i) // Цикъл за да може да се усвоят стойности за всички 'М' на брой триъгълника
{
printf ( " Molq vyvedete na '%d' triygylnik strana 'a':" , i
) ; // Изписване на екрана scanf ( "%f" ,& a
[ i
] ) ; // Усвояване на стойност за страната 'а' printf ( " Molq vyvedete na '%d' triygylnik strana 'b':" , i
) ; // Изписване на екрана scanf ( "%f" ,& b
[ i
] ) ; // Усвояване на стойност за страната 'b' printf ( " Molq vyvedete na '%d' triygylnik ygyla 'A':" , i
) ; // Изписване на екрана scanf ( "%f" ,& A
[ i
] ) ; // Усвояване на стойност за ъгъла 'А' }
printf ( "\n \n Izchislqvane i vizualizirane na cqlata informaciq za triygylnicite:\n " ) ; getchar ( ) ; // Изчакване за натискане на клавиш от клавиатурата for ( i= 1 ; i<= m;++ i) // Цикъл за изчисляване на стойностите
{
c
[ i
] = sqrt ( a
[ i
] * a
[ i
] + b
[ i
] * b
[ i
] - 2 * a
[ i
] * b
[ i
] * cos ( A
[ i
] * ( PI
/ 180.0 ) ) ) ; // Изчисляваме дължината на страна 'c' по косинусова теорема c.c = a.a + b.b – 2a.b.cos(A) p[ i] = ( a[ i] + b[ i] + c[ i] ) / 2 ; // Изчисляваме полупериметъра на триъгълника p=(a+b+c)/2
S
[ i
] = sqrt ( p
[ i
] * ( p
[ i
] - a
[ i
] ) * ( p
[ i
] - b
[ i
] ) * ( p
[ i
] - c
[ i
] ) ) ; // Изчисляваме лице на този триъгълник е по формула на Херон S=sqrt(p*(p-a)*(p-b)*p-c)) r[ i] = S[ i] / p[ i] ; // Изчисляваме радиус на вписана окръжност r = S/p
B
[ i
] = ( acos ( ( a
[ i
] * a
[ i
] + c
[ i
] * c
[ i
] - b
[ i
] * b
[ i
] ) / ( 2 * a
[ i
] * c
[ i
] ) ) * 180.0 ) / PI
; // Косинусова теорема за откриване радиуса на ъглите b.b = a.a + c.c – 2a.c.cos(B) C[ i] = 180 - A[ i] - B[ i] ; // Изчислява се като общия сбор на вътрешните ъгли на триъгълник трябва да е равно на 180
printf ( "\n No:%d a=%.2f b=%.2f c=%.2f A=%.2f B=%.2f C=%.2f r=%.2f\n " , i
, a
[ i
] , b
[ i
] , c
[ i
] , A
[ i
] , B
[ i
] , C
[ i
] , r
[ i
] ) ; }
//*****************************************
printf ( "\n \n Podredba na triygylnicite po vazhodqsht red sprqmo radiusa na wpisanata okryjnost (r)\n " ) ;
for ( i = 1 ; i <= m; i++ ) // Copying data from array 'r' to array 'r2
{
r2[ i] = r[ i] ;
}
for ( x= 1 ; x<= m; ++ x) // Сортиране чрез метода на мехурчето
for ( y= m; y>= x; -- y)
{
if ( r2[ y- 1 ] > r2[ y] ) // Сравняване на съседни елементи
{
t = r2[ y- 1 ] ;
r2[ y- 1 ] = r2[ y] ;
r2[ y] = t;
}
}
for ( z= 1 ; z<= m; z++ ) {
for ( i= 1 ; i<= m; i++ ) {
if ( r2[ z] == r[ i] ) {
printf ( "\n No:%d a=%.2f b=%.2f c=%.2f A=%.2f B=%.2f C=%.2f r=%.2f\n " , i
, a
[ i
] , b
[ i
] , c
[ i
] , A
[ i
] , B
[ i
] , C
[ i
] , r
[ i
] ) ; // Изписване на триъгълниците ж жъзходящ ред }
}
}
rsum = 0 ;
for ( i = 1 ; i <= m ; i++ )
rsum = rsum + r[ i] ; // Събиране на радиусите
printf ( "\n \n Obshtiq sbor na radiusa na wpisanata okryjnost: %.2f \n " , rsum
) ; getchar ( ) ; // Изчакване за натискане на клавиш от клавиатурата
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CQkJCQkJCQkJCQkJCQkJCQkJLy8g0JjQt9Cy0LjQutCy0LDQvdC1INC90LAg0LHQuNCx0LvQuNC+0YLQtdC60LDRgtCwINC30LAgJ3ByaW50Zicg0LggJ3NjYW5mJyDQt9CwINC00LAg0LzQvtCz0LDRgiDQtNCwINGB0LUg0LjQt9C/0L7Qu9C30LLQsNGCINGC0LXQt9C4INGE0YPQvdC60YbQuNC4CiNpbmNsdWRlIDxtYXRoLmg+CQkJCQkJCQkJCQkJCQkJCQkJLy8g0JjQt9Cy0LjQutCy0LDQvdC1INC90LAg0LHQuNCx0LvQuNC+0YLQtdC60LDRgtCwINC30LAg0LzQsNGC0LXQvNCw0YLQuNGH0LXRgdC60LjRgtC1INC40LfRh9C40YHQu9C10L3QuNGPCgojZGVmaW5lIFBJIDMuMTQxNTkyNjUzCQkJCQkJCQkJCQkJCQkJCQkvLyDQlNC10YTQuNC90LjRgNCw0LzQtSDRh9C40YHQu9C+0YLQviBQSQoKaW50IG0saSx4LHksejsJCQkJCQkJCQkJCQkJCQkJICAgICAgICAJCS8vINCX0LDQtNCw0LLQsNC80LUg0L/RgNC+0LzQtdC90LvQuNCy0LgKZmxvYXQgdCxyc3VtOwpmbG9hdCBhWzIwXSxiWzIwXSxjWzIwXTsJCQkJCQkJCQkJCQkJCQkJLy8g0JzQsNGB0LjQstC4INC30LAg0YHRgtGA0LDQvdC4INC90LAg0YLRgNC40YrQs9GK0LvQvdC40LrQsCDQutCw0YLQviAn0LAnINC4ICdiJyDRgdC1INC30LDQtNCw0LLQsNGCINGA0YrRh9C90L4KZmxvYXQgQVsyMF0sQlsyMF0sQ1syMF07CQkJCQkJCQkJCQkJCQkJCS8vINCc0LDRgdC40LLQuCDQt9CwINGK0LPQu9C4INC90LAg0YLRgNC40YrQs9GK0LvQvdC40LrQsCDQutCw0YLQviAn0JAnINGB0LUg0LfQsNC00LDQstCwINGA0YrRh9C90L4KZmxvYXQgclsyMF0scFsyMF0sU1syMF0scjJbMjBdOwkJCQkJCQkJCQkJCQkJCQkvLyDQnNCw0YHQuNCy0Lgg0LfQsCDRgNCw0LTQuNGD0YEg0L3QsCDQstC/0LjRgdCw0L3QsNGC0LAg0LIg0YLRgNC40YrQs9GK0LvQvdC40LrQsCDQvtC60YDRitC20L3QvtGB0YIgJ3InLNC/0L7Qu9GD0LzQtdGC0YrRgCAncCcg0Lgg0LvQuNGG0LUgJ1MnCgppbnQgbWFpbigpCgl7CgkJCQlwcmludGYoIlxuICoqKioqKioqKioqKioqKipMRUdFTkRBKioqKioqKioqKioqKioqKlxuIik7CgkJCQlwcmludGYoIiAqIE5vOiAtIE5vbWVyIG5hIHRyaXlneWxuaWthICAgICAgICAgICpcbiIpOwoJCQkJcHJpbnRmKCIgKiBhICAgLSBTdHJhbmEgJ2EnIG5hIHRyaXlneWxuaWthICAgICAqXG4iKTsKCQkJCXByaW50ZigiICogYiAgIC0gU3RyYW5hICdiJyBuYSB0cml5Z3lsbmlrYSAgICAgKlxuIik7CgkJCQlwcmludGYoIiAqIGMgICAtIFN0cmFuYSAnYycgbmEgdHJpeWd5bG5pa2EgICAgICpcbiIpOwoJCQkJcHJpbnRmKCIgKiBBICAgLSBZZ3lsICAgJ0EnIG5hIHRyaXlneWxuaWthICAgICAqXG4iKTsKCQkJCXByaW50ZigiICogQiAgIC0gWWd5bCAgICdCJyBuYSB0cml5Z3lsbmlrYSAgICAgKlxuIik7CgkJCQlwcmludGYoIiAqIEMgICAtIFlneWwgICAnQycgbmEgdHJpeWd5bG5pa2EgICAgICpcbiIpOwoJCQkJcHJpbnRmKCIgKiByICAgLSBSYWRpdXMgbmEgd3Bpc2FuYXRhIG9rcnlqbm9zdCAqXG4iKTsKCQkJCXByaW50ZigiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4iKTsKCgkJTmFjaGFsbzoJCQkJCQkJCQkJCQkJCQkJCQkvLyDQnNGP0YHRgtC+INC+0YIg0LrRitC00LXRgtC+INC00LAg0L/RgNC+0LTRitC70LbQuCDQsNC60L4g0YPRgdC70L7QstC40LXRgtC+INC30LAgJ9CcJyDQvdC1INC1INGB0L/QsNC30LXQvdC+CgkJCQlwcmludGYoIiBNb2xxIHZ5dmVkZXRlIGJyb2ogdHJpeWd5bG5pY2kgTToiKTsJCQkJCQkJCQkvLyDQmNC30L/QuNGB0LLQsNC90LUg0L3QsCDQtdC60YDQsNC90LAKCQlzY2FuZigiJWQiLCZtKTsJCQkJCQkJCQkJCQkJCQkJCS8vINCj0YHQstC+0Y/QstCw0L3QtSDQvdCwINGB0YLQvtC50L3QvtGB0YIg0LfQsCDQsdGA0L7RjyDQvdCwINGC0YDQuNGK0LPRitC70L3QuNGG0LjRgtC1CgkJaWYgKG0+MTkpCQkJCQkJCQkJCQkJCQkJCQkJLy8g0J/RgNC+0LLQtdGA0LrQsCDQt9CwINCcPDIwCgkJCXsKCQkJCXByaW50ZigiIEJyb3EgdHJpeWd5bG5pY2kgdHJxYndhIGRhIGUgcG8gbWFseWsgb3QgMjAhXG5cbiIpOwkJCQkvLyDQmNC30L/QuNGB0LLQsNC90LUg0L3QsCDQtdC60YDQsNC90LAKCQkJCWdvdG8gTmFjaGFsbzsJCQkJCQkJCQkJCQkJCQkvLyDQkNC60L4g0YPRgdC70L7QstC40LXRgtC+KNCcPDIwKSDQvdC1INC1INGB0L/QsNC30LXQvdC+INC/0YDQvtCz0YDQsNC80LDRgtCwINGB0LUg0LLRgNGK0YnQsCDQsiDQvdCw0YfQsNC70L7RgtC+CgkJCX0KCQlnZXRjaGFyKCk7CQkJCQkJCQkJCQkJCQkJCQkJLy8g0JjQt9GH0LDQutCy0LDQvdC1INC30LAg0L3QsNGC0LjRgdC60LDQvdC1INC90LAg0LrQu9Cw0LLQuNGIINC+0YIg0LrQu9Cw0LLQuNCw0YLRg9GA0LDRgtCwCgkJZm9yKGk9MTtpPD1tOysraSkJCQkJCQkJCQkJCQkJCQkJLy8g0KbQuNC60YrQuyDQt9CwINC00LAg0LzQvtC20LUg0LTQsCDRgdC1INGD0YHQstC+0Y/RgiDRgdGC0L7QudC90L7RgdGC0Lgg0LfQsCDQstGB0LjRh9C60LggJ9CcJyDQvdCwINCx0YDQvtC5INGC0YDQuNGK0LPRitC70L3QuNC60LAKCQkJewoJCQkJcHJpbnRmKCIgTW9scSB2eXZlZGV0ZSBuYSAnJWQnIHRyaXlneWxuaWsgc3RyYW5hICdhJzoiLGkpOwkJCQkvLyDQmNC30L/QuNGB0LLQsNC90LUg0L3QsCDQtdC60YDQsNC90LAKCQkJCXNjYW5mKCIlZiIsJmFbaV0pOwkJCQkJCQkJCQkJCQkJLy8g0KPRgdCy0L7Rj9Cy0LDQvdC1INC90LAg0YHRgtC+0LnQvdC+0YHRgiDQt9CwINGB0YLRgNCw0L3QsNGC0LAgJ9CwJyAKCQkJCXByaW50ZigiIE1vbHEgdnl2ZWRldGUgbmEgJyVkJyB0cml5Z3lsbmlrIHN0cmFuYSAnYic6IixpKTsJCQkJLy8g0JjQt9C/0LjRgdCy0LDQvdC1INC90LAg0LXQutGA0LDQvdCwCgkJCQlzY2FuZigiJWYiLCZiW2ldKTsJCQkJCQkJCQkJCQkJCS8vINCj0YHQstC+0Y/QstCw0L3QtSDQvdCwINGB0YLQvtC50L3QvtGB0YIg0LfQsCDRgdGC0YDQsNC90LDRgtCwICdiJyAKCQkJCXByaW50ZigiIE1vbHEgdnl2ZWRldGUgbmEgJyVkJyB0cml5Z3lsbmlrIHlneWxhICdBJzoiLGkpOwkJCQkvLyDQmNC30L/QuNGB0LLQsNC90LUg0L3QsCDQtdC60YDQsNC90LAKCQkJCXNjYW5mKCIlZiIsJkFbaV0pOwkJCQkJCQkJCQkJCQkJLy8g0KPRgdCy0L7Rj9Cy0LDQvdC1INC90LAg0YHRgtC+0LnQvdC+0YHRgiDQt9CwINGK0LPRitC70LAgJ9CQJwoJCQl9CgoJCQlwcmludGYoIlxuXG4gSXpjaGlzbHF2YW5lIGkgdml6dWFsaXppcmFuZSBuYSBjcWxhdGEgaW5mb3JtYWNpcSB6YSB0cml5Z3lsbmljaXRlOlxuIik7CgkJCWdldGNoYXIoKTsJCQkJCQkJCQkJCQkJCQkJICAgIC8vINCY0LfRh9Cw0LrQstCw0L3QtSDQt9CwINC90LDRgtC40YHQutCw0L3QtSDQvdCwINC60LvQsNCy0LjRiCDQvtGCINC60LvQsNCy0LjQsNGC0YPRgNCw0YLQsAoJCWZvciAoaT0xO2k8PW07KytpKQkJCQkJCQkJCQkJCQkJCQkvLyDQptC40LrRitC7INC30LAg0LjQt9GH0LjRgdC70Y/QstCw0L3QtSDQvdCwINGB0YLQvtC50L3QvtGB0YLQuNGC0LUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCXsKCQkJCWNbaV09c3FydChhW2ldKmFbaV0rYltpXSpiW2ldLTIqYVtpXSpiW2ldKmNvcyhBW2ldKihQSS8xODAuMCkpKTsJCS8vINCY0LfRh9C40YHQu9GP0LLQsNC80LUg0LTRitC70LbQuNC90LDRgtCwINC90LAg0YHRgtGA0LDQvdCwICdjJyDQv9C+INC60L7RgdC40L3Rg9GB0L7QstCwINGC0LXQvtGA0LXQvNCwIGMuYyA9IGEuYSArIGIuYiDigJMgMmEuYi5jb3MoQSkKCQkJCXBbaV09KGFbaV0rYltpXStjW2ldKS8yIDsJCQkJCQkJCQkJCQkvLyDQmNC30YfQuNGB0LvRj9Cy0LDQvNC1INC/0L7Qu9GD0L/QtdGA0LjQvNC10YLRitGA0LAg0L3QsCDRgtGA0LjRitCz0YrQu9C90LjQutCwIHA9KGErYitjKS8yCgkJCQlTW2ldPXNxcnQocFtpXSoocFtpXS1hW2ldKSoocFtpXS1iW2ldKSoocFtpXS1jW2ldKSk7CQkJCQkvLyDQmNC30YfQuNGB0LvRj9Cy0LDQvNC1INC70LjRhtC1INC90LAg0YLQvtC30Lgg0YLRgNC40YrQs9GK0LvQvdC40Log0LUg0L/QviDRhNC+0YDQvNGD0LvQsCDQvdCwINCl0LXRgNC+0L0gUz1zcXJ0KHAqKHAtYSkqKHAtYikqcC1jKSkKCQkJCXJbaV09U1tpXS9wW2ldOwkJCQkJCQkJCQkJCQkJCS8vINCY0LfRh9C40YHQu9GP0LLQsNC80LUg0YDQsNC00LjRg9GBINC90LAg0LLQv9C40YHQsNC90LAg0L7QutGA0YrQttC90L7RgdGCIHIgPSBTL3AKCQkJCUJbaV09KGFjb3MoKGFbaV0qYVtpXStjW2ldKmNbaV0tYltpXSpiW2ldKS8oMiphW2ldKmNbaV0pKSoxODAuMCkvUEk7ICAgIC8vINCa0L7RgdC40L3Rg9GB0L7QstCwINGC0LXQvtGA0LXQvNCwINC30LAg0L7RgtC60YDQuNCy0LDQvdC1INGA0LDQtNC40YPRgdCwINC90LAg0YrQs9C70LjRgtC1IGIuYiA9IGEuYSArIGMuYyDigJMgMmEuYy5jb3MoQikKCQkJCUNbaV09MTgwLUFbaV0tQltpXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vINCY0LfRh9C40YHQu9GP0LLQsCDRgdC1INC60LDRgtC+INC+0LHRidC40Y8g0YHQsdC+0YAg0L3QsCDQstGK0YLRgNC10YjQvdC40YLQtSDRitCz0LvQuCDQvdCwINGC0YDQuNGK0LPRitC70L3QuNC6INGC0YDRj9Cx0LLQsCDQtNCwINC1INGA0LDQstC90L4g0L3QsCAxODAKCgkJCQlwcmludGYoIlxuIE5vOiVkICAgICAgIGE9JS4yZiAgICAgICBiPSUuMmYgICAgICAgYz0lLjJmICAgICAgIEE9JS4yZiAgICAgICBCPSUuMmYgICAgICAgQz0lLjJmICAgICAgIHI9JS4yZlxuIixpLGFbaV0sYltpXSxjW2ldLEFbaV0sQltpXSxDW2ldLHJbaV0pOwoJCQl9CgoJCS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCQlwcmludGYoIlxuXG4gUG9kcmVkYmEgbmEgdHJpeWd5bG5pY2l0ZSBwbyB2YXpob2Rxc2h0IHJlZCBzcHJxbW8gcmFkaXVzYSBuYSB3cGlzYW5hdGEgb2tyeWpub3N0IChyKVxuIik7CgoJCQkgICBmb3IgKGkgPSAxOyBpIDw9IG07IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvcHlpbmcgZGF0YSBmcm9tIGFycmF5ICdyJyB0byBhcnJheSAncjIgCgkJCSAgIHsKCQkJCSAgcjJbaV0gPSByW2ldOwoJCQkgICB9CgogICAgICAgZm9yKHg9MTsgeDw9bTsgKyt4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vINCh0L7RgNGC0LjRgNCw0L3QtSDRh9GA0LXQtyDQvNC10YLQvtC00LAg0L3QsCDQvNC10YXRg9GA0YfQtdGC0L4KCQkJZm9yKHk9bTsgeT49eDsgLS15KQoJCQkJeyAgICAgCgkJCQkJCWlmKHIyW3ktMV0gPiByMlt5XSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8J0KHRgNCw0LLQvdGP0LLQsNC90LUg0L3QsCDRgdGK0YHQtdC00L3QuCDQtdC70LXQvNC10L3RgtC4IAoJCQkJCQl7CgkJCQkJCQkJdCA9IHIyW3ktMV07CgkJCQkJCQkJcjJbeS0xXSA9IHIyW3ldOwoJCQkJCQkJCXIyW3ldID0gdDsKCQkJCQkgICAgfQoJCQkJfQoKCQkJZm9yKCB6PTE7IHo8PW07IHorKyl7CgkJCQkJZm9yKCBpPTE7IGk8PW07IGkrKyl7CgkJCQkJCWlmIChyMlt6XT09cltpXSl7CgkJCQkJCQlwcmludGYoIlxuIE5vOiVkICAgICAgIGE9JS4yZiAgICAgICBiPSUuMmYgICAgICAgYz0lLjJmICAgICAgIEE9JS4yZiAgICAgICBCPSUuMmYgICAgICAgQz0lLjJmICAgICAgIHI9JS4yZlxuIixpLGFbaV0sYltpXSxjW2ldLEFbaV0sQltpXSxDW2ldLHJbaV0pOyAgLy8g0JjQt9C/0LjRgdCy0LDQvdC1INC90LAg0YLRgNC40YrQs9GK0LvQvdC40YbQuNGC0LUg0LYg0LbRitC30YXQvtC00Y/RiSDRgNC10LQgCgkJCQkJCX0KCQkJCQl9CgkJCX0KCQkgICByc3VtID0gMDsKCQkgICBmb3IgKGkgPSAxOyBpIDw9bSA7IGkrKykKCQkJICByc3VtID0gcnN1bSArIHJbaV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDQodGK0LHQuNGA0LDQvdC1INC90LAg0YDQsNC00LjRg9GB0LjRgtC1CgkJICAgCQlwcmludGYoIlxuXG4gT2JzaHRpcSBzYm9yIG5hIHJhZGl1c2EgbmEgd3Bpc2FuYXRhIG9rcnlqbm9zdDogICUuMmYgXG4iLHJzdW0pOwoJCQlnZXRjaGFyKCk7CQkJCQkJCQkJCQkJCQkJCSAgICAgLy8g0JjQt9GH0LDQutCy0LDQvdC1INC30LAg0L3QsNGC0LjRgdC60LDQvdC1INC90LAg0LrQu9Cw0LLQuNGIINC+0YIg0LrQu9Cw0LLQuNCw0YLRg9GA0LDRgtCwCgoJCXJldHVybiAwOwoJfQ==