// курсова.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <locale>
#include <ctime>
#include <iomanip>
#include "cmath"
#include <stdio.h>
using namespace std;
void gotoxy1( int x, int y) {
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE) , coord) ;
}
void Picture( )
{
system ( "color A1" ) ;
HWND hwnd = GetConsoleWindow( ) ;
HDC hdc = GetDC( hwnd) ;
HBRUSH black = CreateSolidBrush( RGB( 0 , 0 , 0 ) ) ;
HBRUSH white = CreateSolidBrush( RGB( 255 , 255 , 255 ) ) ;
HBRUSH grey = CreateSolidBrush( RGB( 132 ,132 ,130 ) ) ;
HPEN White = CreatePen( PS_SOLID, 2 , RGB( 255 ,255 , 255 ) ) ;
HPEN Black = CreatePen( PS_SOLID, 4 , RGB( 0 ,0 ,0 ) ) ;
SelectObject( hdc, black) ;
RoundRect( hdc,100 ,250 ,400 ,150 ,5 ,5 ) ;
RoundRect( hdc,135 ,150 ,365 ,55 ,5 ,5 ) ;
SelectObject( hdc, White) ;
RoundRect( hdc,145 ,245 ,250 ,60 ,5 ,5 ) ;
RoundRect( hdc,250 ,245 ,355 ,60 ,5 ,5 ) ;
SelectObject( hdc, grey) ;
Ellipse( hdc,130 ,230 ,200 ,300 ) ;
Ellipse( hdc,300 ,230 ,370 ,300 ) ;
SelectObject( hdc, white) ;
RoundRect( hdc,150 ,145 ,245 ,65 ,5 ,5 ) ;
RoundRect( hdc,255 ,145 ,350 ,65 ,5 ,5 ) ;
RoundRect( hdc,95 ,160 ,105 ,180 ,2 ,2 ) ;
RoundRect( hdc,95 ,220 ,120 ,240 ,5 ,5 ) ;
RoundRect( hdc,380 ,220 ,405 ,240 ,5 ,5 ) ;
Ellipse( hdc,150 ,250 ,180 ,280 ) ;
Ellipse( hdc,320 ,250 ,350 ,280 ) ;
_getch( ) ;
}
void Masuv ( )
{
int t= 0 ,k,n,a[ 1000 ] ;
cout << "Введiть кiлькiсть елементiв у масивi: " ;
cin >> n;
cout << "Створений масив: " ;
for ( int i= 0 ; i< n; i++ )
{
a[ i] = rand ( ) % 15 - 5 ;
a[ 0 ] = rand ( ) % 15 ;
cout << a[ i] << " " ;
}
for ( int i= 0 ; i< n; i++ )
if ( a[ i] < 0 ) { k= i+ 1 ; break ; }
cout << endl<< "Вiдповiдь: " ;
for ( int i= k; i<= n; i++ )
{
if ( ( a[ i] % 2 == 0 ) && ( a[ i] ! = 0 ) )
t++ ;
}
cout << t- 1 << endl;
cout << endl;
}
void Matrix ( int n)
{
double a[ 100 ] [ 100 ] ,max;
cout << endl<< "Дана матриця : " << endl<< endl;
for ( int i= 1 ; i<= n; i++ )
{
for ( int j= 1 ; j<= n; j++ )
{
a[ i] [ j] = rand ( ) % 15 - 5 ;
cout << a[ i] [ j] << " " ;
}
cout << endl;
}
max= a[ 1 ] [ 1 ] ;
for ( int i= 1 ; i<= n; i++ )
{
int k= n- i;
for ( int j= n; j> k; j-- )
{
if ( a[ i] [ j] > max) max= a[ i] [ j] ;
}
}
cout << endl<< "Вiдповiдь: " << max<< endl;
}
void length ( )
{
char s[ 10000 ] ;
int i,n;
cout << "Введiть рядок : " ;
cin >> s;
for ( i= 0 ; s[ i- 1 ] ; i++ )
{
cout << s[ strlen ( s) - i] ;
}
cout << endl;
}
int _tmain( int argc, _TCHAR* argv[ ] )
{
Picture( ) ; //виклик функції, яка малює малюнок
srand ( time ( NULL ) ) ; //оновлення бази випадкових чисел
setlocale( LC_ALL, "Ukrainian" ) ; //мова інтерфейсу українська
system ( "color 1A" ) ; //колір тексту та екрану
const int size = 10 ;
const int size1 = 3 ;
char NumberMenu[ 3 ] [ 30 ] = { "1. Масиви" , "2. Матриця" , "3. Структура" } ;
while ( true ) { //працюємо поки не пройдемо всі задачі
system ( "cls" ) ; //очищення экрану
gotoxy1( 17 , 0 ) ; //починаємо писати з таких координатів к в дужках
cout << "Курсова робота \n " ;
gotoxy1( 5 , 2 ) ;
cout << "з дисциплiни: 'Комп`ютернi технологiї та програмування' " << endl;
gotoxy1( 5 , 4 ) ;
cout << "студент групи ЕСА-12с Жирний Руслан" ;
for ( int j = 0 ; j < 3 ; j++ ) { //цик для того щоб вивести на еран номер та назву задачі з нового рядка і в пених координатах
gotoxy1( 4 , 7 + j) ;
cout << NumberMenu[ j] ;
cout << endl;
}
gotoxy1( 20 , 10 ) ;
int k;
cout << endl;
cout << "Введiть номер задачi: " ;
cin >> k; //введення номеру задачі
switch ( k) { //умова, де вибирається задача
case 1 : //якщо вибрана перша задача то
cout << endl<< "Задано цiлi числа a1,a2,... . Вiдомо, що а1>0 i що серед а2,а3,... \n є хоча б одне вiд`ємне число. Нехай а1,...,аn - елементи даної \n послiдовностi, якi передують першому вiд`ємному елементу (n завчасно невiдомо). \n Отримати кiлькiсть парних серед а1,...,аn" << endl<< endl;
Masuv( ) ; //допоміжна функція, рішення першої задачі
system ( "pause" ) ; //затримка екрану
break ; //вихід із першої задачі
case 2 : //якщо вибрана друга задача то
cout << endl<< "Данo дiйсна квадратна матриця порядку n. Знайти найбiльше \n iз значень елементiв, якi розташованi в заштрихованiй \n частинi матрицi." << endl<< endl;
cout << "Введiть порядок матрицi : " ;
int n;
cin >> n;
Matrix( n) ; //допоміжна функція, рішення друга задачі
system ( "pause" ) ; //затримка екрану
break ; //вихід із другої задачі
case 3 : //якщо вибрана третя задача то
cout << endl<< "Дано рядок S. Вивести рядок у зворотному порядку." << endl<< endl;
length( ) ; //допоміжна функція, рішення третьої задачі
exit ( 0 ) ; //вихід із програми
break ; //вихід із третьої задачі
default : //якщо не вибрано жодної із заданих задач
gotoxy1( 20 , 13 ) ;
cout << "Помилка! Введiть номер задачi знову!" << endl<< endl; //вивести помилку
system ( "pause" ) ; //затримка екрану
}
}
return 0 ;
}
Ly8g0LrRg9GA0YHQvtCy0LAuY3BwOiDQvtC/0YDQtdC00LXQu9GP0LXRgiDRgtC+0YfQutGDINCy0YXQvtC00LAg0LTQu9GPINC60L7QvdGB0L7Qu9GM0L3QvtCz0L4g0L/RgNC40LvQvtC20LXQvdC40Y8uCi8vCgojaW5jbHVkZSAic3RkYWZ4LmgiCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8Y29uaW8uaD4KI2luY2x1ZGUgPGxvY2FsZT4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgImNtYXRoIgojaW5jbHVkZSA8c3RkaW8uaD4KCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBnb3RveHkxKGludCB4LCBpbnQgeSkgewoJQ09PUkQgY29vcmQ7Cgljb29yZC5YID0geDsKCWNvb3JkLlkgPSB5OwoJU2V0Q29uc29sZUN1cnNvclBvc2l0aW9uKEdldFN0ZEhhbmRsZShTVERfT1VUUFVUX0hBTkRMRSksIGNvb3JkKTsKfQoKdm9pZCBQaWN0dXJlKCkKewoJc3lzdGVtKCJjb2xvciBBMSIpOyAgCglIV05EIGh3bmQgPSBHZXRDb25zb2xlV2luZG93KCk7ICAKCUhEQyBoZGMgPSBHZXREQyhod25kKTsKCUhCUlVTSCBibGFjayA9IENyZWF0ZVNvbGlkQnJ1c2goUkdCKDAsIDAsIDApKTsKCUhCUlVTSCB3aGl0ZSA9IENyZWF0ZVNvbGlkQnJ1c2goUkdCKDI1NSwgMjU1LCAyNTUpKTsKCUhCUlVTSCBncmV5ID0gQ3JlYXRlU29saWRCcnVzaChSR0IoMTMyLDEzMiwxMzApKTsKCUhQRU4gV2hpdGUgPSBDcmVhdGVQZW4oUFNfU09MSUQsIDIsIFJHQigyNTUsMjU1LCAyNTUpKTsKCUhQRU4gQmxhY2sgPSBDcmVhdGVQZW4oUFNfU09MSUQsIDQsIFJHQigwLDAsMCkpOwoKCVNlbGVjdE9iamVjdChoZGMsIGJsYWNrKTsKCVJvdW5kUmVjdChoZGMsMTAwLDI1MCw0MDAsMTUwLDUsNSk7CglSb3VuZFJlY3QoaGRjLDEzNSwxNTAsMzY1LDU1LDUsNSk7CglTZWxlY3RPYmplY3QoaGRjLCBXaGl0ZSk7CglSb3VuZFJlY3QoaGRjLDE0NSwyNDUsMjUwLDYwLDUsNSk7CglSb3VuZFJlY3QoaGRjLDI1MCwyNDUsMzU1LDYwLDUsNSk7CglTZWxlY3RPYmplY3QoaGRjLCBncmV5KTsKCUVsbGlwc2UoaGRjLDEzMCwyMzAsMjAwLDMwMCk7CglFbGxpcHNlKGhkYywzMDAsMjMwLDM3MCwzMDApOwoJU2VsZWN0T2JqZWN0KGhkYywgd2hpdGUpOwoJUm91bmRSZWN0KGhkYywxNTAsMTQ1LDI0NSw2NSw1LDUpOwoJUm91bmRSZWN0KGhkYywyNTUsMTQ1LDM1MCw2NSw1LDUpOwoJUm91bmRSZWN0KGhkYyw5NSwxNjAsMTA1LDE4MCwyLDIpOwoJUm91bmRSZWN0KGhkYyw5NSwyMjAsMTIwLDI0MCw1LDUpOwoJUm91bmRSZWN0KGhkYywzODAsMjIwLDQwNSwyNDAsNSw1KTsKCUVsbGlwc2UoaGRjLDE1MCwyNTAsMTgwLDI4MCk7CglFbGxpcHNlKGhkYywzMjAsMjUwLDM1MCwyODApOwoKX2dldGNoKCk7ICAKCgp9Cgp2b2lkIE1hc3V2ICgpCnsKCWludCB0PTAsayxuLGFbMTAwMF07Cgljb3V0PDwi0JLQstC10LRp0YLRjCDQumnQu9GM0Lpp0YHRgtGMINC10LvQtdC80LXQvdGCadCyINGDINC80LDRgdC40LJpOiAiOwoJY2luPj5uOwoJY291dDw8ItCh0YLQstC+0YDQtdC90LjQuSDQvNCw0YHQuNCyOiAiOwoJZm9yIChpbnQgaT0wO2k8bjtpKyspCgl7CgkJYVtpXT1yYW5kKCklMTUtNTsKCQlhWzBdPXJhbmQoKSUxNTsKCQljb3V0PDxhW2ldPDwiICI7Cgl9Cglmb3IgKGludCBpPTA7aTxuO2krKykKCQlpZiAoYVtpXTwwKSB7az1pKzE7IGJyZWFrO30KCgljb3V0PDxlbmRsPDwi0JJp0LTQv9C+0LJp0LTRjDogICI7Cglmb3IgKGludCBpPWs7aTw9bjtpKyspCgl7CgkJaWYgKChhW2ldJTI9PTApICYmIChhW2ldIT0wKSkKCQkJdCsrOwoJfQoJY291dDw8dC0xPDxlbmRsOwoJY291dDw8ZW5kbDsKfQoKdm9pZCBNYXRyaXggKGludCBuKQp7Cglkb3VibGUgYVsxMDBdWzEwMF0sbWF4OwoJY291dDw8ZW5kbDw8ItCU0LDQvdCwINC80LDRgtGA0LjRhtGPIDogIjw8ZW5kbDw8ZW5kbDsKCWZvciAoaW50IGk9MTsgaTw9bjsgaSsrKSAgCgl7CgkJZm9yICAoaW50IGo9MTsgajw9bjsgaisrKSAKCQl7CgkJCWFbaV1bal09cmFuZCgpJTE1LTU7ICAKCQkgICAgY291dDw8YVtpXVtqXTw8IiAiOyAgCgkJfQoJCWNvdXQ8PGVuZGw7ICAKCX0KCW1heD1hWzFdWzFdOwoJCWZvciAoaW50IGk9MTtpPD1uO2krKykKCQl7CgkJCWludCBrPW4taTsKCQkJZm9yIChpbnQgaj1uO2o+aztqLS0pCgkJCXsKCQkJCWlmIChhW2ldW2pdPm1heCkgbWF4PWFbaV1bal07CgkJCX0KCQl9CgkKCgljb3V0PDxlbmRsPDwi0JJp0LTQv9C+0LJp0LTRjDogICI8PG1heDw8ZW5kbDsKfQoKCnZvaWQgbGVuZ3RoICgpCnsKCWNoYXIgc1sxMDAwMF07CglpbnQgaSxuOwoJY291dDw8ICLQktCy0LXQtGnRgtGMINGA0Y/QtNC+0LogOiAiOwoJY2luPj5zOwoJZm9yIChpPTA7c1tpLTFdO2krKykKCXsKCQljb3V0PDxzW3N0cmxlbihzKS1pXTsKCX0KCWNvdXQ8PGVuZGw7IAp9CgoKaW50IF90bWFpbihpbnQgYXJnYywgX1RDSEFSKiBhcmd2W10pCnsKCVBpY3R1cmUoKTsgIC8v0LLQuNC60LvQuNC6INGE0YPQvdC60YbRltGXLCDRj9C60LAg0LzQsNC70Y7RlCDQvNCw0LvRjtC90L7QugoJc3JhbmQodGltZShOVUxMKSk7ICAvL9C+0L3QvtCy0LvQtdC90L3RjyDQsdCw0LfQuCDQstC40L/QsNC00LrQvtCy0LjRhSDRh9C40YHQtdC7CglzZXRsb2NhbGUoTENfQUxMLCAiVWtyYWluaWFuIik7ICAvL9C80L7QstCwINGW0L3RgtC10YDRhNC10LnRgdGDINGD0LrRgNCw0ZfQvdGB0YzQutCwCglzeXN0ZW0oImNvbG9yIDFBIik7IC8v0LrQvtC70ZbRgCDRgtC10LrRgdGC0YMg0YLQsCDQtdC60YDQsNC90YMKCgoJY29uc3QgaW50IHNpemUgPSAxMDsKCWNvbnN0IGludCBzaXplMSA9IDM7CgljaGFyIE51bWJlck1lbnVbM11bMzBdID0geyAiMS4g0JzQsNGB0LjQstC4IiwgIjIuINCc0LDRgtGA0LjRhtGPIiwgIjMuINCh0YLRgNGD0LrRgtGD0YDQsCIgfTsKCgkKCXdoaWxlICh0cnVlKSB7ICAvL9C/0YDQsNGG0Y7RlNC80L4g0L/QvtC60Lgg0L3QtSDQv9GA0L7QudC00LXQvNC+INCy0YHRliDQt9Cw0LTQsNGH0ZYKCQlzeXN0ZW0oImNscyIpOyAvL9C+0YfQuNGJ0LXQvdC90Y8g0Y3QutGA0LDQvdGDCgkJZ290b3h5MSgxNywgMCk7ICAvL9C/0L7Rh9C40L3QsNGU0LzQviDQv9C40YHQsNGC0Lgg0Lcg0YLQsNC60LjRhSDQutC+0L7RgNC00LjQvdCw0YLRltCyINC6INCyINC00YPQttC60LDRhQoJCWNvdXQgPDwgItCa0YPRgNGB0L7QstCwINGA0L7QsdC+0YLQsCBcbiI7CgkJZ290b3h5MSg1LCAyKTsKCQljb3V0PDwi0Lcg0LTQuNGB0YbQuNC/0Ltp0L3QuDogJ9Ca0L7QvNC/YNGO0YLQtdGA0L1pINGC0LXRhdC90L7Qu9C+0LNp0Zcg0YLQsCDQv9GA0L7Qs9GA0LDQvNGD0LLQsNC90L3RjycgIjw8ZW5kbDsKCQlnb3RveHkxKDUsIDQpOwoJCWNvdXQ8PCLRgdGC0YPQtNC10L3RgiDQs9GA0YPQv9C4INCV0KHQkC0xMtGBINCW0LjRgNC90LjQuSDQoNGD0YHQu9Cw0L0iOwoJCWZvciAoaW50IGogPSAwOyBqIDwgMzsgaisrKSB7ICAvL9GG0LjQuiDQtNC70Y8g0YLQvtCz0L4g0YnQvtCxINCy0LjQstC10YHRgtC4INC90LAg0LXRgNCw0L0g0L3QvtC80LXRgCDRgtCwINC90LDQt9Cy0YMg0LfQsNC00LDRh9GWINC3INC90L7QstC+0LPQviDRgNGP0LTQutCwINGWINCyINC/0LXQvdC40YUg0LrQvtC+0YDQtNC40L3QsNGC0LDRhQoJCQlnb3RveHkxKDQsIDcgKyBqKTsKCQkJY291dCA8PCBOdW1iZXJNZW51W2pdOwoJCQljb3V0IDw8IGVuZGw7CgkJfQoJCQlnb3RveHkxKDIwLCAxMCk7CgkJCWludCBrOwoJCQljb3V0IDw8IGVuZGw7CgkJCWNvdXQgPDwgItCS0LLQtdC0adGC0Ywg0L3QvtC80LXRgCDQt9Cw0LTQsNGHaTogICAiOwoJCQljaW4gPj4gazsgIC8v0LLQstC10LTQtdC90L3RjyDQvdC+0LzQtdGA0YMg0LfQsNC00LDRh9GWCgkJCXN3aXRjaCAoaykgeyAgLy/Rg9C80L7QstCwLCDQtNC1INCy0LjQsdC40YDQsNGU0YLRjNGB0Y8g0LfQsNC00LDRh9CwCgoJCQljYXNlIDE6ICAvL9GP0LrRidC+INCy0LjQsdGA0LDQvdCwINC/0LXRgNGI0LAg0LfQsNC00LDRh9CwINGC0L4KCQkJCWNvdXQ8PGVuZGw8PCLQl9Cw0LTQsNC90L4g0YZp0LtpINGH0LjRgdC70LAgYTEsYTIsLi4uIC4g0JJp0LTQvtC80L4sINGJ0L4g0LAxPjAgaSDRidC+INGB0LXRgNC10LQg0LAyLNCwMywuLi4gXG7RlCDRhdC+0YfQsCDQsSDQvtC00L3QtSDQsmnQtGDRlNC80L3QtSDRh9C40YHQu9C+LiDQndC10YXQsNC5INCwMSwuLi4s0LBuIC0g0LXQu9C10LzQtdC90YLQuCDQtNCw0L3QvtGXIFxu0L/QvtGB0Ltp0LTQvtCy0L3QvtGB0YJpLCDRj9C6aSDQv9C10YDQtdC00YPRjtGC0Ywg0L/QtdGA0YjQvtC80YMg0LJp0LRg0ZTQvNC90L7QvNGDINC10LvQtdC80LXQvdGC0YMgKG4g0LfQsNCy0YfQsNGB0L3QviDQvdC10LJp0LTQvtC80L4pLiBcbtCe0YLRgNC40LzQsNGC0Lgg0Lpp0LvRjNC6adGB0YLRjCDQv9Cw0YDQvdC40YUg0YHQtdGA0LXQtCDQsDEsLi4uLNCwbiI8PGVuZGw8PGVuZGw7CgkJCQlNYXN1digpOyAgLy/QtNC+0L/QvtC80ZbQttC90LAg0YTRg9C90LrRhtGW0Y8sINGA0ZbRiNC10L3QvdGPINC/0LXRgNGI0L7RlyDQt9Cw0LTQsNGH0ZYKCQkJCXN5c3RlbSgicGF1c2UiKTsgIC8v0LfQsNGC0YDQuNC80LrQsCDQtdC60YDQsNC90YMKCQkJCWJyZWFrOyAgLy/QstC40YXRltC0INGW0Lcg0L/QtdGA0YjQvtGXINC30LDQtNCw0YfRlgoKCQkJY2FzZSAyOiAvL9GP0LrRidC+INCy0LjQsdGA0LDQvdCwINC00YDRg9Cz0LAg0LfQsNC00LDRh9CwINGC0L4KCQkJCWNvdXQ8PGVuZGw8PCLQlNCw0L1vINC0adC50YHQvdCwINC60LLQsNC00YDQsNGC0L3QsCDQvNCw0YLRgNC40YbRjyDQv9C+0YDRj9C00LrRgyBuLiDQl9C90LDQudGC0Lgg0L3QsNC50LFp0LvRjNGI0LUgXG5p0Lcg0LfQvdCw0YfQtdC90Ywg0LXQu9C10LzQtdC90YJp0LIsINGP0LppINGA0L7Qt9GC0LDRiNC+0LLQsNC9aSDQsiDQt9Cw0YjRgtGA0LjRhdC+0LLQsNC9adC5IFxu0YfQsNGB0YLQuNC9aSDQvNCw0YLRgNC40YZpLiI8PGVuZGw8PGVuZGw7CgkJCQljb3V0IDw8ICLQktCy0LXQtGnRgtGMINC/0L7RgNGP0LTQvtC6INC80LDRgtGA0LjRhmkgOiAiOwoJCQkJaW50IG47CgkJCQljaW4+PiBuOwoJCQkJTWF0cml4KG4pOyAgLy/QtNC+0L/QvtC80ZbQttC90LAg0YTRg9C90LrRhtGW0Y8sINGA0ZbRiNC10L3QvdGPINC00YDRg9Cz0LAg0LfQsNC00LDRh9GWCgkJCQlzeXN0ZW0oInBhdXNlIik7ICAvL9C30LDRgtGA0LjQvNC60LAg0LXQutGA0LDQvdGDCgkJCQlicmVhazsgIC8v0LLQuNGF0ZbQtCDRltC3INC00YDRg9Cz0L7RlyDQt9Cw0LTQsNGH0ZYKCgkJCWNhc2UgMzogIC8v0Y/QutGJ0L4g0LLQuNCx0YDQsNC90LAg0YLRgNC10YLRjyDQt9Cw0LTQsNGH0LAg0YLQvgoJCQkJY291dDw8ZW5kbDw8ItCU0LDQvdC+INGA0Y/QtNC+0LogUy4g0JLQuNCy0LXRgdGC0Lgg0YDRj9C00L7QuiDRgyDQt9Cy0L7RgNC+0YLQvdC+0LzRgyDQv9C+0YDRj9C00LrRgy4iPDxlbmRsPDxlbmRsOwoJCQkJbGVuZ3RoKCk7ICAvL9C00L7Qv9C+0LzRltC20L3QsCDRhNGD0L3QutGG0ZbRjywg0YDRltGI0LXQvdC90Y8g0YLRgNC10YLRjNC+0Zcg0LfQsNC00LDRh9GWCgkJCQlleGl0KDApOyAgLy/QstC40YXRltC0INGW0Lcg0L/RgNC+0LPRgNCw0LzQuAoJCQkJYnJlYWs7ICAvL9Cy0LjRhdGW0LQg0ZbQtyDRgtGA0LXRgtGM0L7RlyDQt9Cw0LTQsNGH0ZYKCgkJCWRlZmF1bHQ6ICAvL9GP0LrRidC+INC90LUg0LLQuNCx0YDQsNC90L4g0LbQvtC00L3QvtGXINGW0Lcg0LfQsNC00LDQvdC40YUg0LfQsNC00LDRhwoJCQkJZ290b3h5MSgyMCwgMTMpOwoJCQkJY291dCA8PCAi0J/QvtC80LjQu9C60LAhINCS0LLQtdC0adGC0Ywg0L3QvtC80LXRgCDQt9Cw0LTQsNGHaSDQt9C90L7QstGDISIgPDwgZW5kbDw8ZW5kbDsgLy/QstC40LLQtdGB0YLQuCDQv9C+0LzQuNC70LrRgwoJCQkJc3lzdGVtKCJwYXVzZSIpOyAvL9C30LDRgtGA0LjQvNC60LAg0LXQutGA0LDQvdGDCgkJCX0JCQoJfQoJcmV0dXJuIDA7Cn0KCgoK