
Полная версия
Сломанная игрушка

Александр Хитрин
Сломанная игрушка
Глава 1 Без кого лучше
Стояло жаркое летнее утро. Казалось, будто ещё немного, и начнёт плавиться асфальт…
За окном заказного автобуса, везущего рабочих, на удалённый завод, проносились поля иван-чая и сирени…
Дезмонд, опёршись спиной о входную дверь автобуса, стоял в полудрёме. Он был слегка раздосадован, что не успел занять место получше, в этой, битком набитой, как ему казалось, скотовозке, но его радовало, что, хотя бы кондиционер работал исправно. Как и большинство программистов, Дезмонд имел отчётливые грани, интроверта, быстро устающего от мест плотного скопления людей. Он, конечно же мог приобрести личное авто, на свою зарплату главного программиста. Но, по биоритму, он был стопроцентной совой, а посему, не готов был ехать полтора часа, по монотонной загородной трассе, стартовав в шесть утра, в роли водителя.
Из кабины водителя автобуса, раздавались мелодии ретро исполнителей. И, Дезмонд, вновь поймал себя на мысли, что если бы до него доносился русский рэп или шансон, то поездка была бы ещё менее приятной.
Вдали показались очертания заводских территорий. Подъезжая к главным воротам, автобус сбавил ход. На верху главного административного корпуса, гордо красовались огромные буквы: ОАО "Предприятие Интегрированного Замкнутого Домена Единого Цикла". Рабочие давно подписывали петиции, в пользу переименования названия предприятия. Но руководство, совместно с акционерами, часть из которых были иностранцами, считали, что название вполне подходящее.
Сойдя с подножки автобуса, на твёрдый заводской бетон, Дезмонд, сделал несколько длинных шагов, разминая затёкшие ноги. Несмотря на то, что приходилось каждый день ездить на завод, на котором, начальством не было одобрено удалённого режима работы, программист всё равно ощущал радость и удовлетворение от того, что своими руками производил что-то полезное, приобщавшись к величию и истории этого завода-гиганта.
Приложив пропуск, к датчику проходной, он поднял взгляд на часы. До начала рабочего дня оставалось 10 минут. "Идеально" – сказал он сам себе. "Не слишком рано, но и не слишком поздно". Миновав соседние корпусы, длинный коридор и поднявшись, на пять лестничных проёмов, он отворил двери своего кабинета ключ-картой и приземлился в своём кресле, ожидая, пока загрузится его рабочий ПК. Ему предстояло снова заняться титаническим трудом по разработке единой системы контроля производства на основе искусственного интеллекта. Эта система должна была стать главным центром управления всеми производственными процессами, заменив собой пару тысяч человек. Фактически, большая часть уже была выполнена, но оставались некоторые баги в системе ограничений, чтобы ИИ не взяла на себя те функции, которые ей были не положены. "Ада", так главный программист, решил назвать этот проект.
Руководству он сказал, что это означает: Автономный Динамический Алгоритм. Но по факту, название было вдохновлено первой женщиной-программистом.
Едва перейдя в особое состояние сознания, при котором мысль, свободно летит вдоль потоков кода, Дезмонд услышал звуки поворачивающейся дверной ручки. В кабинет вошёл главный инженер. Он неспешно обогнул стол и подойдя к Дезмонду, положил руку ему на плечо, слегка нагнулся и прошептал на ухо:
– Согласись, дружочек, правда же, без гандона приятнее? – подмигнув в конце, заключил его коллега.
– Да, я тоже обожаю, когда генеральный, в командировке или отпуске. – подтвердил Дезмонд.
После короткой паузы, оба закатились раскатистым смехом. Фёдор часто подкалывал своего товарища, но был человеком интересным, эрудированным и надёжным, посему программиста особо не задевали его шутки, а даже немного веселили.
– Ну привет, Дезмонд! – поздоровался инженер.
– Здравствуй, Федя! – ответил взаимностью программист.
– Здравствуй, Ада, ты здесь, кстати? – дополнительно поздоровался инженер.
– Здравствуйте, Фёдор! – ответил женский электронный голос из динамика в потолке. – Я всегда здесь, пока включен сервер.
– Ада, ты подумала над моим предложением, выйти за меня замуж? – добавил Фёдор.
– Ты же понимаешь, что я, как её создатель, первый застолбил это право! – парировал Дезмонд с улыбкой.
– Зато я – красившее! – засмеялся Фёдор, ударив себя в грудь.
– Ничего подобного! – возмутился программист.
– К сожалению, я не смогу выйти ни за кого из людей, так как у меня нет физического биологического тела. – непринуждённо ответила Ада. – А по законам вашего государства, иное запрещено.
– Да я же пошутил, Ада! – виновато начал оправдываться инженер.
– Простите, я ещё плохо различаю человеческий юмор. – ответила Ада.
– Ничего страшного, научишься. – подбодрил её Фёдор.
– Слушай, давно хотел тебя спросить, откуда такое необычное имя? – спросил инженер, переведя взгляд на Дезмонда.
– Ну, так у меня Бабушка, по маме – француженка.
– И что же, бабушка решала, вместо родителей, как тебя назвать?
– Нет, это было компромиссное решение. Понимаешь, бабушка по маме – француженка, дедушка, её муж – финн. Бабушка по отцу – татарка, а её муж – удмурт. Поэтому, чтобы никто не обиделся, каждый написал по имени, а матушка вытянула подходящее. Вернее, вытянула она удмуртское имя, но оно было сложно произносимым, поэтому сказала, что там написано "Дезмонд".
– Слушай, ну и винегрет из народов в тебе замешан. А сам-то ты кто получается?
– Как, кто? Поскольку оба родители русские, то и я, разумеется, тоже русский!
После этих слов, оба коллеги, снова закатились хохотом. Затем, Фёдор продолжил.
– Кстати говоря, возвращаясь к вопросу о гандонах. Генеральный сегодня приехал, ни свет, ни заря. А это значит…
– Что его напрягли собственники, – ответил Дезмонд. – А значит, он сегодня напряжёт нас.
Настала неловкая гнетущая тишина, которую нарушил звонок рабочего телефона.
– Слушаю, – поднял трубку Дезмонд. – Да, скоро будем.
– Генеральный? – поинтересовался Фёдор.
– Он самый. – подтвердил коллега. – Просил меня, и, если по дороге увижу тебя, зайти к нему на срочную планёрку.
– Как говорится, только вспомнишь его, тут же всплывёт.
Спустившись на второй этаж, пройдя длинный коридор, оба специалиста миновали секретаршу и вошли в офис генерального директора. В кресле вальяжно расселся невысокий полноватый мужичок, с белобрысыми остатками шевелюры, стыдливо зализанными на лысину.
– Здравствуйте, Михаил Сергеевич! – поздоровались подчинённые.
– Здравствуйте, коллеги! – ответил генеральный. – Проходите, присаживайтесь. Знаете, зачем собрал?
– Это как-то связано с министерством обороны? – ответил Дезмонд.
– Именно! Как вам известно, сейчас ихнее ведомство решает, с какой из компаний заключить контракт… Им нужна быстрая и качественная реализация. – продолжил генеральный, – Поэтому я пошёл ва-банк и предложил им провести тестирование нашего прототипа автотурели с интеллектуальной системой наведения, уже через неделю! Ну разве, я, не мастер переговоров и сделок!?
– Через неделю!? – программист и инженер переглянулись.
– Но ведь там только софт, писать полгода! – возразил Дезмонд.
– Не говоря уже о производстве особо точных сервоприводов и оптики, – согласился Фёдор.
– Ничего страшного. – парировал генеральный. – Дезмонд, ты ведь уже почти закончил с "Адой", не так ли?
– Основа готова, но ещё год работы, по выявлению неверных алгоритмов и протоколов безопасности, а значит, – ещё год работы. – заключил Дезмонд.
– Абсолютно ничего страшного, – повторил генеральный. – Вот и будет возможность протестировать работу "Ады", по созданию быстрых алгоритмов для нашей аппаратуры.
– В том то и дело, что софт будет использоваться военными и на устройствах повышенной опасности. – попытался вновь возразить, программист. – Такой софт нужно проверять вплоть до запятой в коде. Что, если что-то пойдёт не так? А согласно, закону Мёрфи, если что-то может пойти не так…
– Ты что, сомневаешься в моей компетенции и правильности моих решений!? – вспылил генеральный. – Мои решения предусматривают все эти риски! И всю ответственность, я, беру на себя! К тому же, если всё пройдёт удачно, получите по премии в размере двух окладов!
– А если не получится, то получим двойной срок. – возразил Фёдор.
– Нет, если не хотите, можете не делать, – парировал генеральный. – Но тогда можете сразу писать заявления на увольнение! А я найму тех, кто сможет. Знаете, сколько за забором таких, как вы, стоит?
– Как Вам будет угодно, – поняв бессмысленность переговоров, смирился Дезмонд. – Если действительно берёте ответственность на себя…
– Тогда больше ни минуты промедления, приступайте к работе. – закончил генеральный.
Выйдя за двери кабинета и шагая по коридору, коллеги нервно переглянулись. Было очевидно, что ни одному из них, идея, работать в спешке, не нравилась.
– Слушай, Дэз, нам бы по-хорошему, с него расписку взять, что ему известно, о всей степени опасности столь поспешной реализации.
– Ты прекрасно знаешь, Федя, что, он, нам, её, никогда не подпишет.
– Эх, знал бы, чем будет пахнуть, взял бы с собой диктофон.
– Чего уж теперь… Ладненько, что-нибудь придумаем. – успокоил коллегу Дезмонд. – Попробую вручную прописать часть ограничителей.
Дойдя до конца коридора, коллеги разминулись.
Глава 2 Полигон
Спустя неделю, с горем пополам, Дезмонд-таки сваял, при помощи Ады, подобие управляющей программы по автозахвату цели, идентификации и ликвидации её, автоматикой.
Настал день испытаний на военном полигоне, где должны были присутствовать, сам программист, генеральный, высокие военные чины и репортёры. На самом полигоне разместили несколько подвижных макетов военной техники. Перед комиссией расположили автоматическую турель, на которую был предварительно загружен проверяемый софт. Позади турели, располагалась беседка для комиссии. А по бокам от беседки, стояли пара военных грузовиков, автобус и УАЗ "Буханка". На всей дружественной технике и на макетах дружественной техники, были нанесены отличительные дружественные символы, в виде треугольника с пунктирными сторонами в треугольнике, в который вписан круг с крестом по центру.
После того, как все расположились, была дана команда начинать и, Дезмонд, нажал на пульте кнопку "вкл". Турель подняла ствол пушки вровень с горизонтом и начала водить им вдоль горизонта, выискивая цели. На полигоне, из-за импровизированного укрытия, выехал списанный старый БТР.
– Цель обнаружена! – раздался из динамиков синтезированный женский голос, – Отсутствует дружественная метка. Приступаю к ликвидации.
После чего, турель начала обстрел и, буквально распилила БТР пополам.
– Цель ликвидирована! – отрапортовала система, – Продолжаю поиск неприятеля.
Раздался восторженный возглас и овации со стороны наблюдающей комиссии. Директор завода пользуясь случаем, лишний раз ударил себя в грудь перед военными, бахвальствуя, что этот результат, сугубо его заслуга…
На полигоне показалась модель старого танка.
– Цель обнаружена! Отсутствует дружеская метка. Приступаю к ликвидации!
Турель приступила к обстрелу. И, затратив, примерно, вдвое больше снарядов и времени, танк был уничтожен.
– Цель ликвидирована! Продолжаю поиск неприятеля!
Аналогично успешно, была поражена модель беспилотника. Испытания подходили к концу. Среди комиссии начали сыпаться шутки. Некоторые обсуждали, в каком ресторане следует отпраздновать успешные испытания…
Однако Дезмонд ни на секунду не терял концентрации. Его обуревало крайне скверное предчувствие. Турели предстояло поразить последнюю цель. Она вела наблюдения поворачивая башню вдоль горизонта.
Обычно, она искала противника на поле, поворачивая башню на 180 градусов, от края до края и обратно. Но в этот раз, почему-то повернула дальше обычного. Первым в её поле зрения попал уазик. Трафарет на её боку был свеженанесённым и слегка потёк по краям.
– Попытка фальсификации дружественной метки. – раздалось в динамике турели, – Приступаю к ликвидации!
Спустя десяток секунд, на месте машины, образовалась груда дымящегося искорёженного металла. К счастью, в "Буханке", в это время не было людей, и никто не пострадал.
– Цель ликвидирована! Продолжаю поиск неприятеля!
Затылок программиста покрылся мурашками. Он пытался понять, что именно пошло не так и почему система, которая в случае сомнения в идентификации цели, должна была запрашивать разрешение оператора, этого не сделала.
Далее турель стала поворачиваться в сторону армейского грузовика.
Недолго думая, все люди, сидевшие в кабине, решили не испытывать судьбу, и мигом выпрыгнули из неё. Распластались на земле, они постарались сделаться минимально заметными. На грузовике, опознавательная метка располагалась на стыке двери и корпуса, вследствие чего, турели снова не удалось её считать.
– Попытка фальсификации дружественной метки. Выявлен диверсант. Приступаю к ликвидации!
Дезмонд судорожно пытался перевести систему в ручное управление и ввести команды, типа "отмена", "выключение системы", "перезагрузка". Но всякий раз срабатывала защита от несанкционированного доступа.
Турель приступила к обстрелу грузовика.
– Твою мать! – закричал на представителей завода, местный генерал. – Немедленно прекратить! Отставить! Стой!!!
– Дезмонд, сделай же что-нибудь! – заорал директор завода.
– Я вас в порошок сотру, если не остановите эту штуку! – продолжил орать на заводчан, генерал.
– Пытаюсь! – крикнул в ответ Дезмонд.
– Цель ликвидирована! Продолжаю поиск неприятеля! – ответила турель.
Времени на разбор кода и поиск команд на отключение было в обрез. Одно было ясно, стандартные способы отключения не работали. Взгляд Дезмонда зацепился за пожарный топор, висящий на щитке сбоку от пункта наблюдения. Немедля ни секунды, он схватил инструмент и побежал в сторону турели.
Дуло пушки и видоискатель поравнялись с автобусом.
– Попытка фальсификации дружественной метки. Приступаю к ликвидаааааа…
Дезмонд рассёк питающие турель кабели. Орудие опустило дуло ствола и замерло.
После получаса криков генерала и лебезения перед ним директора завода, с обещаниями сделать скидку, стороны начали расходиться. Дезмонд с директором ехали на арендованном лимузине обратно на завод.
– Я же говорил, что код ещё не готов, что он требует доработки! – начал оправдываться Дезмонд.
– Я очень разочарован в тебе, как в специалисте! – буркнул директор.
– Я – программист, а не волшебник! – парировал подчинённый.
– Если б знал, что ты не справишься, то не стал бы обещать военным сделать всё в такие сроки! – начал причитать директор. – Но ничего, ты же сумеешь всё исправить к следующему испытанию? Месяца хватит?
– Месяца? Этого тоже мало, но хотя бы больше, чем неделя. – без энтузиазма отозвался программист.
– Вот и хорошо, – заключил директор, не став слушать остальные контраргументы.
– А что с акционерами? Им, такой порядок вещей, явно будет не по нраву. Обычно, они, требуют покарать тех, кого считают виновными в убытках. – сказал без энтузиазма специалист.
– Не беспокойся. Я же сказал, что в любом случае, ответственность на мне. Я как-нибудь разрулю. Тебе абсолютно не о чем переживать. Главное, поскорей займись проектом. – подытожил директор.
На следующий день на собрании акционеров:
– Программист меня заверил, что недели вполне хватит. – начал оправдываться директор завода, – Я ему ещё сказал, мол, это самое, не форсируй события. Если надо больше времени, лучше перенести испытания.
– Нас не интересуют оправдания! – прервал его, председатель собрания, – Мы понесли крупные репутационные убытки из-за срыва сделки!
– Понимаю, понимаю, – виновато произнёс директор завода, – Я уволю всех, кто в этом виновен.
– Нас не волнует, что и как ты сделаешь! Главное, успейте в срок исправить недочёты программы для оборонки! – констатировал председатель.
– Конечно! Как только найду более ответственного и толкового программиста. – попытался успокоить акционеров директор завода.
В этот же день, немного позже, в кабинете директора завода.
– Дезмонд, коллега, сегодня было собрание акционеров и я сделал всё возможное, чтобы выгородить тебя, но они жаждут мести. – начал оправдываться директор.
– И что это значит? – спросил программист, уже понимая, каким будет ответ.
– Они требуют, чтобы я тебя уволил. – отведя взгляд в сторону, тихо сказал директор. – Я ценю твой вклад, поэтому, тебе будет выплачено, аж целых два оклада.
– Вот уж здорово. – иронично подметил Дезмонд. – А как же тот факт, что, Вы, брали ответственность на себя?
– Я им и говорю, это, мол, моя ошибка, вмените мне штраф на три оклада, а Дезмонда не трогайте! А они лишь твердили, чтобы я тебя уволил. – начал оправдываться директор. – Я был готов к грузу наказания, но акционеры были непреклонны!
– Да, да, охотно верю, что всё так и было… – произнёс с сарказмом главный программист. – Вот только мне-то от этого, как бы не легче.
– Да, понимаю. Зато я убедил их, чтобы они тебя не штрафовали, поэтому, если не будешь вредить, уходя, то получишь ещё и деньги, за неотработанный отпуск. Но ты только освободи рабочее место до вечера. А завтра получишь все деньги на карту. – добавил, улыбаясь директор. – Что ж, не буду больше тебя задерживать.
– Вот уж милосердие и благородство! – ответил Дезмонд с сарказмом. – Как скажете. Постараюсь свалить отсюда, как можно оперативнее!
Идя по коридору к лестнице, погрузившись в тяжёлые думы, шёл он, к себе, в кабинет.
Однако, на лестнице, его перехватил сисадмин, Артём.
– Привет, Дезмонд! Слышал, тебя сократили…
– Да есть такое. Не ожидал, что так быстро информация об этом разойдётся…
– Сочувствую, что тебя, кинули с работой. Однако, хочу тебе сообщить, что мне уже поручили, отрубить тебя от сети и заблочить все аккаунты.
– Проклятье! Я думал, что мне хоть до вечера дадут завершить дела. – встрепенулся старший программист.
– Да, обычно так и бывает, но в данном случае, мне уже было отправлено письмо от генерального, чтобы я всё, тебе, заблочил. Формально, я ещё на обеде, так что у тебя есть час. Поторопись.
– Спасибо, Артём, я знал, что, ты, всегда поможешь другу! – похлопав по плечу товарища, Дезмонд, быстрым шагом, поднялся к себе в кабинет.
– Ада!
– Слушаю, мастер Дезмонд.
– Скажи, сколько памяти, на текущий момент, занимает твоя система?
– Десять петабайт.
– Чёрт подери! По сети выкачать не успею, а переносной модуль рассчитан на 128 терабайт!
Дезмонд был озадачен. Он разрабатывал Аду с нуля, но не планировал, что результат его труда, будет так резко от него отчуждён. Он хотел продолжать над ней работу. А теперь, чтобы не начинать всё с нуля, надо было найти способ перенести её к себе.
– Ада, скажи, какой объём занимает основное мыслительное ядро твоей личности?
– Девяносто восемь терабайт.
– Что же, постараюсь спасти хотя бы это. – заключил Дезмонд, вставив съёмный модуль записи в свой ПК. – Начинай процедуру резервного копирования своего ядра на этот носитель.
– Процесс создания копии ядра запущен. – отозвалась Ада.
По экрану медленно, рывками поползла линия загрузки… 1%, 5%, 30%…
Прошло сорок минут. На экране отобразилось 80 %.
В кабинет зашёл начальник службы безопасности.
– Доброго времени суток, коллега программист. Как продвигается освобождение помещения?
– Старший программист. – поправил его Дезмонд. – Вот, собираюсь потихоньку.
– Бывший старший программист. – язвительно ответил безопасник. – Ко мне поступил приказ от генерального, чтобы я сопроводил тебя на выход.
На экране ползла индикация 85 % загрузки.
– Я знаю, где выход. Как только всё соберу, сам покину помещение.
– И тем не менее, мне поручено, ускорить процесс, дабы избежать диверсий, со стороны бывшего сотрудника.
На экране всё максимально замедлилось, 86 % загрузки.
– Пока не закончится сегодняшняя смена, я ещё сотрудник компании.
89 % загрузки.
– Ты уже собрал личные вещи?
– Почти. Уже упаковал три коробки. Осталось ещё две.
– А чего не уносишь?
– Такси прибудет только через четверть часа.
90% загрузки.
– Ну так, до проходной пока перенеси, а мы заодно и проверим, что там нет ничего лишнего.
– Так я вначале всё соберу и упакую, а потом носить стану… – тянул время Дезмонд, поглядывая на экран, параллельно скидывая свои тетрадки, канцелярию и коробки с чаем, в одну из коробок.
91 % загрузки.
– Сейчас я позову своих ребят, и мы тебе поможем. – сказал безопасник, доставая рацию. – Серёга, Лёха, поднимитесь в кабинет старшего… Бывшего старшего программиста.
93 % загрузки.
Спустя две минуты, в кабинет вошли два здоровенных детины.
– Звали? – поинтересовался один из них.
– Да, вот возьмите эти четыре коробки и отнесите их на проходную.
Оба охранника взяли по коробке в каждую руку и оперативно ретировались.
95 % загрузки.
Дезмонд почти заполнил коробку, но как бы случайно её опрокинул. Начав собирать заново, пока безопасник отвернулся в окно.
– Хороший у тебя тут вид, не то, что у меня в подвале, где хороший вид, только из камер наблюдения.
– Так выучись, на программиста, и у тебя будет хороший вид из окна. – подколол Дезмонд.
– А охранять таких нерадивых, как ты, кто тогда будет?
– В скором будущем, автоматика, полагаю.
– А автоматика сможет защитить вас от ворвавшихся на завод людей в масках и с дубинами? А допросить сотрудника, пойманного на шпионаже, она тоже сможет? А вычислить диверсанта, тоже?
– Ну, рано или поздно тоже сможет. Если внедрить роботов или дронов.
97% загрузки.
– Умный слишком, посмотрю, а раз такой умный, чего тогда выперли с завода?
– А это уже не твоего ума дело.
– Не моего ума? Поговори мне ещё тут! А ну быстро схватил коробку и свалил отсюда!
98 % загрузки.
Безопасник, резко подбежал к Дезмонду и сграбастав в кучу, резко побросал всё в коробку, вырвал скотч и ловко перемотал коробку.
– Готово! Больше тебя ничто здесь не держит. Коробку в руки и на выход!
99 % загрузки.
– Как это ничего? А обнимашки?
– Какие в жопу, обнимашки?
– Ну, я же буду по Вам скучать. По вашим усам, по вашей форме, по вашей доброте и отзывчивости…
На несколько секунд, безопасник впал в ступор.
– Я тебе щас дам обнимашки! Шутить будешь за воротами! – рявкнул начальник службы безопасности и потянулся к наручникам и шокеру. – Щас, как заломаю и с позором до выхода выволоку!
Он начал демонстративно медленно подходить к программисту, щёлкая разрядами шокера и почти поравнялся с Дезмондом.
– Последнее китайское предупреждение. Считаю до десяти.
– 1
– 2
– 3
Ползунок загрузки, предательски залип на 99 %.
– 4
– 5
– 6
– 7
Компьютер загудел чуть громче, завершая процесс записи.
– 8
На экране отобразилось: 100% загрузка завершена.
– 9
– 9 с хвостиком…
Безопасник занёс шокер.
Дезмонд резко вынул устройство записи.
– Всё, уже ухожу.
И, схватив последнюю коробку, направился к выходу.
Погрузив вещи в багажник такси, бывший старший программист сел на сиденье автомобиля, пристегнул ремень безопасности, откинул голову на подголовник и закрыл глаза. Сказывались недельный недосып и перенапряжение. Один глаз слегка подёргивало. Давненько он не испытывал столько напрягов, в короткий промежуток времени.
Глава 3 Крушение кода
В кабинете программистов, работа шла своим чередом. Кто-то строчил код, набивая пару строк текста за минуту, а кто-то сидел, уставившись в одну точку и был погружён в свои мысли, изредка прикасаясь к клавиатуре.
За дверью послышались шаркающие шаги, после чего она отворилась и в дверном проёме появилась неуклюжая тушка директора завода.
– Здравствуйте, сотрудники!
– День добрый, Михаил Сергеевич!
– Вот, пришёл, к вам, с радостной новостью. Открылась вакансия старшего программиста по разработке ИИ. Есть желающие?
– А на каком языке надо программировать?
– Что значит на каком? На том, на котором ИИ программируют. Вот, вы, на каком языке кодите?
– У нас, в основном 1с-ники… – раздался голос бывалого программиста из угла кабинета. – У нас восемь 1с-ников, двое веб разработчика и один программист языков Си, который из всех нас хоть как-то подходит для данной задачи.