Связаться

SKIF. PRO - платформа контроля, аналитики, диспетчеризации и мониторинга транспорта.

Включена в реестр ПО РФ

Записаться на демонстрацию
Выбор профессионалов

Отзывы

Компас-телеком

Компания «Компас Телеком» выражает благодарность команде ООО "СКИФ ЭПП" за оперативные доработки платформы SKIF.PRO и качественную поддержку нашего оборудования: персональных и автомобильных трекеров, а также системы интеллектуального видеомониторинга. Это сотрудничество позволяет нам успешно реализовывать проекты любой сложности для наших заказчиков.

Мы ценим профессионализм и надеемся на дальнейшее взаимовыгодное партнёрство.

Автомониторинг

Компания «Автомониторинг Сервис» выражает благодарность разработчикам платформы SKIF.PRO за продуктивное сотрудничество. Мы долго искали подходящее решение для перевода своих объектов и очень рады, что нашли этот продукт - его функционал полностью устраивает как нас, так и наших клиентов. Надеемся на долгосрочное и успешное партнёрство с компанией ООО "СКИФ ЭПП".

ICU

Компания «АЙСИЮ» благодарит команду ООО "СКИФ ЭПП" за создание современной и высокотехнологичной платформы SKIF.PRO. Протестировав множество решений, мы выбрали ваш продукт в качестве одного из основных инструментов для ведения бизнеса. Отдельно отмечаем профессионализм отдела разработки, оперативно реализующего наши запросы, и высокий уровень технической поддержки. Желаем вашей команде процветания и новых побед!

Иван Глонассов

Компания «Иван Глонассов», один из крупнейших дистрибьюторов телематического оборудования в России, высоко оценила сотрудничество с ООО "СКИФ ЭПП". Мы выбрали платформу SKIF.PRO за её техническую надёжность, комплексную поддержку и сервис, которые обеспечивают успешное внедрение решений.

M2M

Компания «М2М СИСТЕМЫ» использует платформу SKIF.PRO для ежедневного контроля автопарка собственных автомобилей и транспортных средств клиентов. Мы особенно ценим высокую точность данных для закрытия путевых листов, удобную интеграцию с 1С и интуитивно понятный интерфейс, не требующий длительного обучения. Гибкая система отчётов и удобное мобильное приложение позволяют оперативно получать всю необходимую информацию для эффективного управления транспортом. .

Стар-трек

Компания «Стар Трек», работающая на рынке мониторинга транспорта с 2011 года, рекомендует платформу SKIF.PRO как надежное и функциональное отечественное решение. В системе реализованы все популярные инструменты для грузоперевозок, сельского хозяйства и строительства: конструктор отчётов, модуль уведомлений в Telegram, контроль ТО, расчёт площадей и многое другое.

Железные дороги Казахстана

Команда АО «НК «ҚТЖ» выражает благодарность создателям телематической платформы SKIF.PRO. Внедрение данного решения позволило нам вывести оперативный мониторинг и управление перевозочным процессом на качественно новый уровень. Платформа доказала свою эффективность и стала надежным инструментом в нашей работе.

An-Security

Коллектив охранной организации «АН–Секьюрити Директ» выражает благодарность компании «СКИФ ЭПП» за высококачественный сервис и надежное партнерство.

Благодаря современной платформе SKIF.PRO мы значительно повысили эффективность мониторинга подвижных объектов.

Мы высоко ценим профессионализм, компетентность технической поддержки и уверены в успехе дальнейшего сотрудничества.

Автоматический перенос с Wialon на SKIF.PRO

Миграция по токену -
быстрый и безопасный способ подключения
Переносите компании, пользователей, ТО,
объекты, геозоны, историю

Почему выбирают SKIF. PRO?

Бесплатный

Адаптационный период

Бесплатное

Хранение истории
без ограничений

Ретрансляция

Бесплатно и без ограничений

Автоматизированный

Переезд с других платформ

В реестре ПО РФ

SSO Enabled User Management

Надежность

Незаметное обновление / никаких зависаний

Все популярные

Телематические протоколы

Гибкая

Настройка ролей

On Premise / Local | SaaS / Hosting

Количество пользователей

Бесплатно и без ограничений

Открытое API

Все популярные трекеры и протоколы

Добавим за три дня

Самая гибкая

И надежная архитектура

Продвинутые
мобильные приложения

 

White Label

Самая высокопроизводительная платформа

Работает
с любым трекером

Если вашего оборудования нет в списке, добавим за 3 дня!

Список оборудования
Интеграция с 1С

Интеграция SKIF.PRO с решением "1С:Управление автотранспортом"

Интеграция SKIF.PRO с любыми решениями 1С по запросу

В каких сферах применяется?

Грузоперевозки

Телематические системы обеспечивают полный контроль за движением грузов: от маршрутизации до анализа времени доставки. Контроль топлива и стиля вождения позволяет снизить издержки, а аналитика рейсов повышает точность планирования и надёжность логистики.

Строительная и спецтехника

Строительные, карьерные и коммунальные машины требуют особого подхода. Телематика фиксирует моточасы и фактическую выработку, контролирует расход ГСМ и предотвращает простои. Это помогает рационально использовать дорогостоящую технику, снижать эксплуатационные затраты и продлевать срок её службы.

Сельское хозяйство

В агросекторе телематика повышает эффективность использования тракторов, комбайнов и другой техники. Система позволяет отслеживать обработку полей, контролировать расход топлива и оптимизировать нагрузку на машины. В результате предприятия точнее планируют работы, снижают затраты и повышают урожайность.

Пассажирский транспорт

Для перевозчиков пассажиров важны безопасность, соблюдение расписания и качество сервиса. Телематическая платформа помогает контролировать движение автобусов и маршруток, предотвращать опоздания и превышения скорости, а также обеспечивать прозрачность работы перед заказчиками и регуляторами.

Корпоративный автопарк

Компании с собственным автопарком получают инструмент для оптимизации расходов и повышения дисциплины водителей. Система позволяет отслеживать передвижения, контролировать расход топлива и автоматизировать отчётность. Это снижает затраты на содержание парка и повышает эффективность его использования.

Техника и транспорт в лизинге

Для лизинговых компаний телематика становится способом управлять рисками и повышать прозрачность сделок. Система обеспечивает контроль за состоянием и перемещением техники, помогает отслеживать пробег и моточасы, а также снижает вероятность несанкционированного использования. Это позволяет точнее оценивать стоимость актива и повышает доверие клиентов.

Основные задачи которые решает платформа

Контроль топлива

Мониторинг объектов

Контроль специальных
датчиков

Гибкие отчеты

Новости

Обновление

23.09.2026 - 18:10

Мы разработали встроенного ИИ-ассистента, который работает непосредственно с данными SKIF.PRO и позволяет получать нужную информацию в режиме диалога. Пользователь может написать вопрос в чате или задать его голосом.  SKIF.PRO — первая среди российских платформ спутникового мониторинга, которая интегрировала функции ИИ-автоматизации непосредственно в платформу. В настоящее время инструмент проходит этап тестирования. Если вы желаете принять участие и опробовать его на своем автопарке – оставьте заявку.   /* Всё под префиксом sgpn-, окно — под своим id: тема сайта сюда не влезает, и фрагмент не трогает тему. */ .sgpn-cta { display: block; margin: 28px 0; padding: 0; text-align: left; font-family: 'Manrope', system-ui, sans-serif; } .sgpn-cta .sgpn-trigger, #sgpn-modal .sgpn-submit { -webkit-appearance: none !important; appearance: none !important; box-sizing: border-box !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 9px !important; width: auto !important; max-width: 100% !important; height: 52px !important; min-height: 52px !important; margin: 0 !important; padding: 0 26px !important; border: 0 !important; border-radius: 8px !important; background: linear-gradient(100deg, #2450C8 0%, #7A3F91 52%, #D9285C 100%) !important; color: #fff !important; font-family: 'Manrope', system-ui, sans-serif !important; font-size: 16px !important; font-weight: 600 !important; font-style: normal !important; line-height: 1 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important; text-shadow: none !important; white-space: nowrap !important; vertical-align: middle; box-shadow: 0 1px 2px rgba(16, 24, 40, .05) !important; outline: none !important; opacity: 1 !important; filter: none; transform: none; cursor: pointer !important; transition: transform 170ms cubic-bezier(.2, .7, .3, 1), box-shadow 170ms cubic-bezier(.2, .7, .3, 1), filter 170ms cubic-bezier(.2, .7, .3, 1) !important; } .sgpn-cta .sgpn-trigger:hover, #sgpn-modal .sgpn-submit:hover { background: linear-gradient(100deg, #1C43B4 0%, #6C357F 52%, #C41F50 100%) !important; color: #fff !important; transform: translateY(-1px) !important; box-shadow: 0 14px 30px -10px rgba(27, 92, 211, .28) !important; } .sgpn-cta .sgpn-trigger:active, #sgpn-modal .sgpn-submit:active { transform: translateY(0) !important; filter: brightness(.92) !important; } .sgpn-cta .sgpn-trigger:focus-visible, #sgpn-modal .sgpn-submit:focus-visible { box-shadow: 0 0 0 3px rgba(27, 92, 211, .18) !important; } .sgpn-cta .sgpn-trigger::before, .sgpn-cta .sgpn-trigger::after { content: none !important; display: none !important; } /* ---------- Окно ---------- */ #sgpn-modal { display: none; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2147483000; margin: 0; padding: 20px; border: 0; background: rgba(15, 19, 25, .45); align-items: center; justify-content: center; font-family: 'Manrope', system-ui, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.5; color: #0F1319; text-align: left; -webkit-font-smoothing: antialiased; } #sgpn-modal.sgpn-is-open { display: flex; animation: sgpn-fade 180ms ease-out; } #sgpn-modal, #sgpn-modal *, #sgpn-modal *::before, #sgpn-modal *::after { box-sizing: border-box; } #sgpn-modal * { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; float: none; font-family: inherit; font-size: inherit; font-weight: inherit; font-style: normal; line-height: inherit; letter-spacing: normal; text-transform: none; text-decoration: none; text-shadow: none; text-indent: 0; text-align: left; color: inherit; min-width: 0; max-width: none; min-height: 0; opacity: 1; visibility: visible; } #sgpn-modal *::before, #sgpn-modal *::after { content: none; } #sgpn-modal .sgpn-hidden { display: none !important; } #sgpn-modal .sgpn-dialog { display: flex; flex-direction: column; gap: 18px; width: 560px; max-width: 100%; max-height: 88vh; overflow: auto; overscroll-behavior: contain; padding: 32px 36px; border-radius: 14px; background: #fff; box-shadow: 0 30px 70px -20px rgba(9, 26, 64, .5); animation: sgpn-pop 180ms cubic-bezier(.2, .7, .3, 1); } /* В окне с прокруткой блоки не должны сжиматься по высоте. */ #sgpn-modal .sgpn-dialog > *, #sgpn-modal .sgpn-form > * { flex-shrink: 0; } #sgpn-modal .sgpn-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; } #sgpn-modal .sgpn-head__text { display: flex; flex-direction: column; gap: 8px; } #sgpn-modal .sgpn-title { display: block; font-size: 28px; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; color: #0F1319; } #sgpn-modal .sgpn-lead { display: block; font-size: 15px; line-height: 1.55; color: #5C6575; } #sgpn-modal .sgpn-close { -webkit-appearance: none; appearance: none; display: flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 8px; background: #F1F3F7; color: #5C6575; cursor: pointer; outline: none; transition: background 170ms cubic-bezier(.2, .7, .3, 1), color 170ms cubic-bezier(.2, .7, .3, 1); } #sgpn-modal .sgpn-close:hover { background: #E4E8EF; color: #0F1319; } #sgpn-modal .sgpn-close:active { background: #D7DCE6; } #sgpn-modal .sgpn-close:focus-visible { box-shadow: 0 0 0 3px rgba(27, 92, 211, .18); } #sgpn-modal .sgpn-close svg, #sgpn-modal .sgpn-done__icon svg { display: block; flex: none; fill: none; stroke: currentColor; } /* ---------- Форма ---------- */ #sgpn-modal .sgpn-form { display: flex; flex-direction: column; gap: 18px; } #sgpn-modal .sgpn-field { display: flex; flex-direction: column; gap: 7px; } #sgpn-modal .sgpn-label { display: block; font-size: 13px; font-weight: 500; line-height: 1.4; color: #0F1319; cursor: default; } #sgpn-modal .sgpn-req { color: #D9285C; } #sgpn-modal .sgpn-hint { display: block; font-size: 12px; line-height: 1.45; color: #8A93A3; } #sgpn-modal .sgpn-error { display: block; font-size: 12px; line-height: 1.4; color: #D9285C; } #sgpn-modal .sgpn-seg { display: flex; gap: 10px; } #sgpn-modal .sgpn-seg__btn { -webkit-appearance: none; appearance: none; display: flex; align-items: center; justify-content: center; flex: 1; height: 44px; min-height: 44px; padding: 0 18px; border: 1px solid #CBD4E3; border-radius: 8px; background: #fff; font-size: 14px; font-weight: 500; line-height: 1.2; color: #0F1319; text-align: center; white-space: nowrap; cursor: pointer; outline: none; transition: background 170ms cubic-bezier(.2, .7, .3, 1), border-color 170ms cubic-bezier(.2, .7, .3, 1), color 170ms cubic-bezier(.2, .7, .3, 1); } #sgpn-modal .sgpn-seg__btn:hover { border-color: #AEBBD1; background: #fff; color: #0F1319; } #sgpn-modal .sgpn-seg__btn.sgpn-is-active { background: #1B5CD3; border-color: #1B5CD3; color: #fff; } #sgpn-modal .sgpn-seg__btn:focus-visible { box-shadow: 0 0 0 3px rgba(27, 92, 211, .18); } #sgpn-modal .sgpn-input { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 44px; min-height: 44px; padding: 0 14px; border: 1px solid #CBD4E3; border-radius: 8px; background: #fff; font-size: 14px; font-weight: 400; line-height: normal; color: #0F1319; outline: none; box-shadow: none; transition: border-color 170ms cubic-bezier(.2, .7, .3, 1), box-shadow 170ms cubic-bezier(.2, .7, .3, 1); } #sgpn-modal .sgpn-input::placeholder { color: #8A93A3; opacity: 1; } #sgpn-modal .sgpn-input:hover { border-color: #AEBBD1; } #sgpn-modal .sgpn-input:focus { border-color: #1B5CD3; box-shadow: 0 0 0 3px rgba(27, 92, 211, .18); } #sgpn-modal .sgpn-input.sgpn-is-error { border-color: #D9285C; box-shadow: 0 0 0 3px rgba(217, 40, 92, .14); } #sgpn-modal .sgpn-trap { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; } #sgpn-modal .sgpn-check { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; } #sgpn-modal .sgpn-check__box { -webkit-appearance: checkbox; appearance: auto; display: block; flex: none; width: 18px; height: 18px; margin: 1px 0 0; padding: 0; accent-color: #1B5CD3; cursor: pointer; position: static; } #sgpn-modal .sgpn-check__text { display: block; font-size: 13px; line-height: 1.5; color: #5C6575; } #sgpn-modal .sgpn-legal { color: #D9285C; font-weight: 500; text-decoration: none; border-bottom: 1px solid rgba(217, 40, 92, .35); transition: color 170ms cubic-bezier(.2, .7, .3, 1), border-color 170ms cubic-bezier(.2, .7, .3, 1); } #sgpn-modal .sgpn-legal:hover { color: #B81F4C; border-color: #B81F4C; } #sgpn-modal .sgpn-status { display: block; font-size: 13px; line-height: 1.45; color: #D9285C; } #sgpn-modal .sgpn-submit { display: flex !important; width: 100% !important; } #sgpn-modal .sgpn-submit:disabled, #sgpn-modal .sgpn-submit:disabled:hover { background: #B9C3D4 !important; color: #fff !important; box-shadow: none !important; transform: none !important; filter: none !important; cursor: not-allowed !important; } #sgpn-modal .sgpn-submit.sgpn-is-loading { opacity: .85 !important; cursor: progress !important; pointer-events: none; } #sgpn-modal .sgpn-spinner { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; animation: sgpn-spin 700ms linear infinite; } #sgpn-modal .sgpn-done { display: flex; flex-direction: column; gap: 12px; outline: none; } #sgpn-modal .sgpn-done__icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #EDF2FF; color: #1B5CD3; } #sgpn-modal .sgpn-done__title { display: block; font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; color: #0F1319; } #sgpn-modal .sgpn-done__text { display: block; font-size: 16px; line-height: 1.55; color: #5C6575; } @keyframes sgpn-pop { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } } @keyframes sgpn-fade { from { opacity: 0; } to { opacity: 1; } } @keyframes sgpn-spin { to { transform: rotate(360deg); } } /* Узкий экран — окно становится листом снизу, варианты выбора — друг под другом. */ @media (max-width: 560px) { #sgpn-modal { padding: 0; align-items: flex-end; } #sgpn-modal .sgpn-dialog { width: 100%; max-height: 92vh; padding: 24px 20px; gap: 14px; border-radius: 14px 14px 0 0; } #sgpn-modal .sgpn-form { gap: 14px; } #sgpn-modal .sgpn-title { font-size: 22px; } #sgpn-modal .sgpn-seg { flex-direction: column; } .sgpn-cta .sgpn-trigger { width: 100% !important; } } @media (prefers-reduced-motion: reduce) { #sgpn-modal, #sgpn-modal * { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; } .sgpn-cta .sgpn-trigger { transition-duration: 1ms !important; } } Оставить заявку Записаться на тестирование Оставьте контакты — свяжемся, когда включим доступ. Вы уже работаете на SKIF.PRO? Да, уже на SKIF.PRO Пока нет Название компании в SKIF.PRO * Как оно написано в списке компаний SKIF.PRO — по нему включим доступ. Укажите компанию Как к вам обращаться * Напишите имя Телефон * Оставьте телефон E-mail * Укажите e-mail, например name@company.ru Сайт Я ознакомлен(а) с Политикой обработки персональных данных и даю согласие на обработку своих данных Оставить заявку Заявка принята Свяжемся, когда включим доступ. Если есть типовой случай, который хотите проверить первым, — расскажите о нём при разговоре. (new Function(decodeURIComponent(escape(atob("Lyog0JrQvdC+0L/QutCwIMKr0J7RgdGC0LDQstC40YLRjCDQt9Cw0Y/QstC60YPCuyDRgSDQvtC60L3QvtC8INC30LDRj9Cy0LrQuCDigJQg0YfQuNGC0LDQtdC80YvQuSDQuNGB0YXQvtC00L3QuNC6INGB0LrRgNC40L/RgtCwINC00LvRjyBuZXdzLWJ1dHRvbi5odG1sLgogICDQkiBuZXdzLWJ1dHRvbi5odG1sINC+0L0g0LvQtdC20LjRgiDQsiBiYXNlNjQ6IFdvcmRQcmVzcyAod3B0ZXh0dXJpemUpINC/0L7RgNGC0LjRgiDQutCw0LLRi9GH0LrQuCDQsiDRgtC10LrRgdGC0LUg0LfQsNC/0LjRgdC4LgogICDQn9C+0YHQu9C1INC/0YDQsNCy0LrQuCDQt9C00LXRgdGMINC/0LXRgNC10YHQvtCx0YDQsNGC0YwgbmV3cy1idXR0b24uaHRtbCAoYmFzZTY0INGN0YLQvtCz0L4g0YTQsNC50LvQsCDQsiDRgtC10LPQtSA8c2NyaXB0PikuCgogICDQl9Cw0Y/QstC60LAg0YPRhdC+0LTQuNGCINCyINC+0LHRgNCw0LHQvtGC0YfQuNC6INGC0LXQvNGLIHNraWYucHJvIOKAlCDRgtC+0YIg0LbQtSwg0YfRgtC+INGDINGE0L7RgNC80Ysg0L3QsCDRgdGC0YDQsNC90LjRhtC1CiAgINC00LvRjyDQuNC90YLQtdCz0YDQsNGC0L7RgNC+0LIgKGluZGV4Lmh0bWwpOiBhY3Rpb249c2tpZl9haV9iZXRhLCDQv9C+0LvRjyBjb21wYW55MSwgcGhvbmUxLCBlbWFpbDEsCiAgIG1zZzE7INC+0YHRgtCw0LvRjNC90L7QtSDRgdC+0LHQuNGA0LDQtdGC0YHRjyDQsiDRgtC10LrRgdGCIG1zZzEuINCh0L4g0YHRgtGA0LDQvdC40YbRiywg0L7RgtC60YDRi9GC0L7QuSDQutCw0Log0YTQsNC50LssINC+0YLQv9GA0LDQstC40YLRjAogICDQvdC10LvRjNC30Y86INGE0L7RgNC80LAg0L/QuNGI0LXRgiDQt9Cw0Y/QstC60YMg0LIg0LrQvtC90YHQvtC70Ywg0Lgg0L/QvtC60LDQt9GL0LLQsNC10YIgwqvQl9Cw0Y/QstC60LAg0L/RgNC40L3Rj9GC0LDCuy4KCiAgINCk0YDQsNCz0LzQtdC90YIg0LzQvtC20L3QviDQstGB0YLQsNCy0LjRgtGMINCyINC30LDQv9C40YHRjCDQvdC10YHQutC+0LvRjNC60L4g0YDQsNC3OiDQvtC60L3QviDQvtGB0YLQsNGR0YLRgdGPINC+0LTQvdC+LCDQu9C40YjQvdC40LUg0LrQvtC/0LjQuAogICDRg9Cx0LjRgNCw0Y7RgtGB0Y8sINCy0YHQtSDQutC90L7Qv9C60Lgg0L7RgtC60YDRi9Cy0LDRjtGCINC10LPQvi4gKi8KKGZ1bmN0aW9uICgpIHsKICAndXNlIHN0cmljdCc7CgogIGlmICh3aW5kb3cuX19zZ3BuTmV3cykgeyB3aW5kb3cuX19zZ3BuTmV3cy5zY2FuKCk7IHJldHVybjsgfQoKICB2YXIgRU5EUE9JTlQgPSAnL3dwLWFkbWluL2FkbWluLWFqYXgucGhwJzsKICB2YXIgQUNUSU9OID0gJ3NraWZfYWlfYmV0YSc7CiAgdmFyIE1FVFJJS0FfSUQgPSAxMDQwNTM5MzU7CiAgdmFyIEZJRUxEUyA9IFsnY29tcGFueScsICduYW1lJywgJ3Bob25lJywgJ2VtYWlsJ107CiAgdmFyIEZPQ1VTQUJMRSA9ICdhW2hyZWZdLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0eXBlPSJoaWRkZW4iXSksICcgKwogICAgICAgICAgICAgICAgICAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pJzsKICB2YXIgb3BlbmVkQXQgPSBEYXRlLm5vdygpOwoKICB2YXIgbW9kYWwgPSBudWxsOwogIHZhciBsYXN0VHJpZ2dlciA9IG51bGw7CiAgdmFyIHNhdmVkID0gbnVsbDsKCiAgZnVuY3Rpb24gZWFjaChsaXN0LCBmbikgeyBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGxpc3QsIGZuKTsgfQoKICAvLyDQk9C+0LTQuNGC0YHRjyDQtNC70Y8gVGFiOiDQstC40LTQuNC8INC4INC90LUg0LLRi9C60LvRjtGH0LXQvSDQuNC3INC+0LHRhdC+0LTQsCAo0LrQsNC6INC/0L7Qu9C1LdC70L7QstGD0YjQutCwKS4KICBmdW5jdGlvbiB2aXNpYmxlKGVsKSB7CiAgICBpZiAoZWwudGFiSW5kZXggPCAwKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gISEoZWwub2Zmc2V0V2lkdGggfHwgZWwub2Zmc2V0SGVpZ2h0IHx8IGVsLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKTsKICB9CgogIC8qIC0tLS0tLS0tLS0g0J7QutC90L4gLS0tLS0tLS0tLSAqLwoKICBmdW5jdGlvbiBpc09wZW4oKSB7IHJldHVybiAhIW1vZGFsICYmIG1vZGFsLmNsYXNzTGlzdC5jb250YWlucygnc2dwbi1pcy1vcGVuJyk7IH0KCiAgZnVuY3Rpb24gb3Blbih0cmlnZ2VyKSB7CiAgICBpZiAoIW1vZGFsIHx8IGlzT3BlbigpKSByZXR1cm47CiAgICAvLyDQotC10LzQsCDQuNC70Lgg0YDQtdC00LDQutGC0L7RgCDQvNC+0LPRg9GCINC+0LHQtdGA0L3Rg9GC0Ywg0LHQu9C+0Log0LIg0LrQvtC90YLQtdC50L3QtdGAINGBIG92ZXJmbG93L3RyYW5zZm9ybSDigJQKICAgIC8vINGC0L7Qs9C00LAgcG9zaXRpb246IGZpeGVkINC/0LXRgNC10YHRgtCw0ZHRgiDRgNCw0LHQvtGC0LDRgtGMLiDQntC60L3QviDQttC40LLRkdGCINC/0YDRj9C80L4g0LIgYm9keS4KICAgIGlmIChtb2RhbC5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsKTsKICAgIGxhc3RUcmlnZ2VyID0gdHJpZ2dlciB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwogICAgdmFyIGh0bWwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CiAgICBzYXZlZCA9IHsgaHRtbDogaHRtbC5zdHlsZS5vdmVyZmxvdywgYm9keTogZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyB9OwogICAgaHRtbC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOwogICAgbW9kYWwuY2xhc3NMaXN0LmFkZCgnc2dwbi1pcy1vcGVuJyk7CiAgICAvLyDQpNC+0LrRg9GBIOKAlCDQvdCwINC/0LXRgNCy0YvQuSDRgdC+0LTQtdGA0LbQsNGC0LXQu9GM0L3Ri9C5INGN0LvQtdC80LXQvdGCLCDQsCDQvdC1INC90LAg0LrRgNC10YHRgtC40LouCiAgICB2YXIgZmlyc3QgPSBudWxsOwogICAgdmFyIGl0ZW1zID0gbW9kYWwucXVlcnlTZWxlY3RvckFsbChGT0NVU0FCTEUpOwogICAgQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChpdGVtcywgZnVuY3Rpb24gKGVsKSB7CiAgICAgIGlmIChlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2dwbi1jbG9zZScpIHx8ICF2aXNpYmxlKGVsKSkgcmV0dXJuIGZhbHNlOwogICAgICBmaXJzdCA9IGVsOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0pOwogICAgaWYgKCFmaXJzdCkgewogICAgICB2YXIgZG9uZSA9IG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJyNzZ3BuLWRvbmUnKTsKICAgICAgZmlyc3QgPSBkb25lICYmIGRvbmUub2Zmc2V0SGVpZ2h0ID8gZG9uZSA6IGl0ZW1zWzBdOwogICAgfQogICAgaWYgKGZpcnN0KSBmaXJzdC5mb2N1cygpOwogIH0KCiAgZnVuY3Rpb24gY2xvc2UoKSB7CiAgICBpZiAoIWlzT3BlbigpKSByZXR1cm47CiAgICBtb2RhbC5jbGFzc0xpc3QucmVtb3ZlKCdzZ3BuLWlzLW9wZW4nKTsKICAgIGlmIChzYXZlZCkgewogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSBzYXZlZC5odG1sOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gc2F2ZWQuYm9keTsKICAgICAgc2F2ZWQgPSBudWxsOwogICAgfQogICAgaWYgKGxhc3RUcmlnZ2VyICYmIGxhc3RUcmlnZ2VyLmZvY3VzKSBsYXN0VHJpZ2dlci5mb2N1cygpOwogIH0KCiAgZnVuY3Rpb24gaW5pdE1vZGFsKG0pIHsKICAgIG0uc2V0QXR0cmlidXRlKCdkYXRhLXNncG4tcmVhZHknLCAnMScpOwoKICAgIC8vINCa0LvQuNC6INC/0L4g0L/QvtC00LvQvtC20LrQtSDQt9Cw0LrRgNGL0LLQsNC10YIsINC60LvQuNC6INCy0L3Rg9GC0YDQuCDQvtC60L3QsCDigJQg0L3QtdGCLgogICAgbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmIChlLnRhcmdldCA9PT0gbSkgY2xvc2UoKTsKICAgIH0pOwogICAgZWFjaChtLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNncG4tY2xvc2VdJyksIGZ1bmN0aW9uIChidG4pIHsKICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2UpOwogICAgfSk7CgogICAgLy8g0KTQvtC60YPRgSDQvdC1INGD0YXQvtC00LjRgiDQt9CwINC/0YDQtdC00LXQu9GLINC+0LrQvdCwLgogICAgbS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGUpIHsKICAgICAgaWYgKGUua2V5ICE9PSAnVGFiJykgcmV0dXJuOwogICAgICB2YXIgaXRlbXMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwobS5xdWVyeVNlbGVjdG9yQWxsKEZPQ1VTQUJMRSksIHZpc2libGUpOwogICAgICBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuOwogICAgICB2YXIgZmlyc3QgPSBpdGVtc1swXTsKICAgICAgdmFyIGxhc3QgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTsKICAgICAgaWYgKGUuc2hpZnRLZXkgJiYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZpcnN0IHx8ICFtLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgbGFzdC5mb2N1cygpOwogICAgICB9IGVsc2UgaWYgKCFlLnNoaWZ0S2V5ICYmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBsYXN0IHx8ICFtLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgZmlyc3QuZm9jdXMoKTsKICAgICAgfQogICAgfSk7CgogICAgaW5pdEZvcm0obSk7CiAgfQoKICAvKiAtLS0tLS0tLS0tINCk0L7RgNC80LAgLS0tLS0tLS0tLSAqLwoKICBmdW5jdGlvbiBpbml0Rm9ybShtKSB7CiAgICB2YXIgZm9ybSA9IG0ucXVlcnlTZWxlY3RvcignI3NncG4tZm9ybScpOwogICAgdmFyIGRvbmUgPSBtLnF1ZXJ5U2VsZWN0b3IoJyNzZ3BuLWRvbmUnKTsKICAgIHZhciBzdGF0dXMgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNncG4tc3RhdHVzXScpOwogICAgdmFyIGxhYmVsID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1zZ3BuLWNvbXBhbnktbGFiZWxdJyk7CiAgICB2YXIgaGludCA9IGZvcm0ucXVlcnlTZWxlY3RvcignW2RhdGEtc2dwbi1jb21wYW55LWhpbnRdJyk7CiAgICB2YXIgc3VibWl0ID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdidXR0b25bdHlwZT0ic3VibWl0Il0nKTsKICAgIHZhciBjb25zZW50ID0gZm9ybS5lbGVtZW50cy5jb25zZW50OwoKICAgIC8vINCf0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMIMKr0JLRiyDRg9C20LUg0YDQsNCx0L7RgtCw0LXRgtC1INC90LAgU0tJRi5QUk8/wrsKICAgIHZhciBzZWdCdG5zID0gZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zZ3BuLXNlZ10nKTsKICAgIGVhY2goc2VnQnRucywgZnVuY3Rpb24gKGJ0bikgewogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgZWFjaChzZWdCdG5zLCBmdW5jdGlvbiAoYikgewogICAgICAgICAgdmFyIGFjdGl2ZSA9IGIgPT09IGJ0bjsKICAgICAgICAgIGIuY2xhc3NMaXN0LnRvZ2dsZSgnc2dwbi1pcy1hY3RpdmUnLCBhY3RpdmUpOwogICAgICAgICAgYi5zZXRBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsIFN0cmluZyhhY3RpdmUpKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgb25Ta2lmID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1zZ3BuLXNlZycpID09PSAneWVzJzsKICAgICAgICBmb3JtLmVsZW1lbnRzLm9uX3NraWYudmFsdWUgPSBvblNraWYgPyAneWVzJyA6ICdubyc7CiAgICAgICAgbGFiZWwudGV4dENvbnRlbnQgPSBvblNraWYgPyAn0J3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4INCyIFNLSUYuUFJPJyA6ICfQmtC+0LzQv9Cw0L3QuNGPJzsKICAgICAgICBoaW50LnRleHRDb250ZW50ID0gb25Ta2lmCiAgICAgICAgICA/ICfQmtCw0Log0L7QvdC+INC90LDQv9C40YHQsNC90L4g0LIg0YHQv9C40YHQutC1INC60L7QvNC/0LDQvdC40LkgU0tJRi5QUk8g4oCUINC/0L4g0L3QtdC80YMg0LLQutC70Y7Rh9C40Lwg0LTQvtGB0YLRg9C/LicKICAgICAgICAgIDogJ9Cd0LDQt9Cy0LDQvdC40LUg0LLQsNGI0LXQuSDQutC+0LzQv9Cw0L3QuNC4LdC40L3RgtC10LPRgNCw0YLQvtGA0LAuJzsKICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyDQn9C+0LrQsCDRgdC+0LPQu9Cw0YHQuNC1INC90LUg0L7RgtC80LXRh9C10L3Qviwg0LrQvdC+0L/QutCwINC+0YLQv9GA0LDQstC60Lgg0L3QtdCw0LrRgtC40LLQvdCwLgogICAgZnVuY3Rpb24gc3luY0NvbnNlbnQoKSB7IHN1Ym1pdC5kaXNhYmxlZCA9ICFjb25zZW50LmNoZWNrZWQ7IH0KICAgIGNvbnNlbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc3luY0NvbnNlbnQpOwogICAgc3luY0NvbnNlbnQoKTsKCiAgICBmdW5jdGlvbiBzZXRFcnJvcihuYW1lLCBvbikgewogICAgICB2YXIgaW5wdXQgPSBmb3JtLmVsZW1lbnRzW25hbWVdOwogICAgICBpbnB1dC5jbGFzc0xpc3QudG9nZ2xlKCdzZ3BuLWlzLWVycm9yJywgb24pOwogICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaW52YWxpZCcsIG9uID8gJ3RydWUnIDogJ2ZhbHNlJyk7CiAgICAgIGZvcm0ucXVlcnlTZWxlY3RvcignW2RhdGEtc2dwbi1lcnJvcj0iJyArIG5hbWUgKyAnIl0nKS5jbGFzc0xpc3QudG9nZ2xlKCdzZ3BuLWhpZGRlbicsICFvbik7CiAgICB9CgogICAgRklFTERTLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgZm9ybS5lbGVtZW50c1tuYW1lXS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAodGhpcy52YWx1ZS50cmltKCkpIHNldEVycm9yKG5hbWUsIGZhbHNlKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICBmdW5jdGlvbiB1dG0oKSB7CiAgICAgIHZhciBvdXQgPSB7fTsKICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goZnVuY3Rpb24gKHYsIGspIHsKICAgICAgICBpZiAoay5pbmRleE9mKCd1dG1fJykgPT09IDApIG91dFtrXSA9IHY7CiAgICAgIH0pOwogICAgICByZXR1cm4gb3V0OwogICAgfQoKICAgIGZ1bmN0aW9uIGZpbmlzaCgpIHsKICAgICAgZm9ybS5jbGFzc0xpc3QuYWRkKCdzZ3BuLWhpZGRlbicpOwogICAgICBkb25lLmNsYXNzTGlzdC5yZW1vdmUoJ3NncG4taGlkZGVuJyk7CiAgICAgIGRvbmUuZm9jdXMoKTsKICAgIH0KCiAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgc3RhdHVzLmNsYXNzTGlzdC5hZGQoJ3NncG4taGlkZGVuJyk7CgogICAgICB2YXIgYmFkID0gbnVsbDsKICAgICAgRklFTERTLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHsKICAgICAgICB2YXIgdmFsdWUgPSBmb3JtLmVsZW1lbnRzW25hbWVdLnZhbHVlLnRyaW0oKTsKICAgICAgICB2YXIgd3JvbmcgPSAhdmFsdWUgfHwgKG5hbWUgPT09ICdlbWFpbCcgJiYgIS9eW15AXHNdK0BbXkBcc10rXC5bXkBcc10rJC8udGVzdCh2YWx1ZSkpOwogICAgICAgIHNldEVycm9yKG5hbWUsIHdyb25nKTsKICAgICAgICBpZiAod3JvbmcgJiYgIWJhZCkgYmFkID0gZm9ybS5lbGVtZW50c1tuYW1lXTsKICAgICAgfSk7CiAgICAgIGlmIChiYWQpIHsgYmFkLmZvY3VzKCk7IHJldHVybjsgfQoKICAgICAgLy8g0J/QvtC70LUt0LvQvtCy0YPRiNC60LAg0LfQsNC/0L7Qu9C90LXQvdC+IOKAlCDRjdGC0L4g0LHQvtGCOiDQtNC10LvQsNC10Lwg0LLQuNC0LCDRh9GC0L4g0LLRgdGRINC/0YDQvtGI0LvQvi4KICAgICAgaWYgKGZvcm0uZWxlbWVudHMud2Vic2l0ZS52YWx1ZSkgeyBmaW5pc2goKTsgcmV0dXJuOyB9CgogICAgICB2YXIgb25Ta2lmID0gZm9ybS5lbGVtZW50cy5vbl9za2lmLnZhbHVlID09PSAneWVzJzsKICAgICAgdmFyIG1hcmtzID0gdXRtKCk7CiAgICAgIHZhciBtc2cgPSBbCiAgICAgICAgJ9Cj0LbQtSDRgNCw0LHQvtGC0LDQtdGCINC90LAgU0tJRi5QUk86ICcgKyAob25Ta2lmID8gJ9C00LAnIDogJ9C90LXRgicpLAogICAgICAgIChvblNraWYgPyAn0JrQvtC80L/QsNC90LjRjyDQsiBTS0lGLlBSTzogJyA6ICfQmtC+0LzQv9Cw0L3QuNGPOiAnKSArIGZvcm0uZWxlbWVudHMuY29tcGFueS52YWx1ZS50cmltKCksCiAgICAgICAgJ9Ca0L7QvdGC0LDQutGC0L3QvtC1INC70LjRhtC+OiAnICsgZm9ybS5lbGVtZW50cy5uYW1lLnZhbHVlLnRyaW0oKSwKICAgICAgICAn0KHRgtGA0LDQvdC40YbQsDogJyArIGxvY2F0aW9uLmhyZWYKICAgICAgXTsKICAgICAgdmFyIHV0bUtleXMgPSBPYmplY3Qua2V5cyhtYXJrcyk7CiAgICAgIGlmICh1dG1LZXlzLmxlbmd0aCkgewogICAgICAgIG1zZy5wdXNoKCfQnNC10YLQutC4OiAnICsgdXRtS2V5cy5tYXAoZnVuY3Rpb24gKGspIHsgcmV0dXJuIGsgKyAnPScgKyBtYXJrc1trXTsgfSkuam9pbignLCAnKSk7CiAgICAgIH0KCiAgICAgIHZhciBkYXRhID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpOwogICAgICBkYXRhLmFwcGVuZCgnYWN0aW9uJywgQUNUSU9OKTsKICAgICAgZGF0YS5hcHBlbmQoJ3NraWZfaHAnLCAnJyk7CiAgICAgIGRhdGEuYXBwZW5kKCdjb21wYW55MScsIGZvcm0uZWxlbWVudHMuY29tcGFueS52YWx1ZS50cmltKCkpOwogICAgICBkYXRhLmFwcGVuZCgncGhvbmUxJywgZm9ybS5lbGVtZW50cy5waG9uZS52YWx1ZS50cmltKCkpOwogICAgICBkYXRhLmFwcGVuZCgnZW1haWwxJywgZm9ybS5lbGVtZW50cy5lbWFpbC52YWx1ZS50cmltKCkpOwogICAgICBkYXRhLmFwcGVuZCgnbXNnMScsIG1zZy5qb2luKCdcbicpKTsKICAgICAgZGF0YS5hcHBlbmQoJ3ByaXZhY3lfY29uc2VudCcsICdvbicpOwogICAgICBkYXRhLmFwcGVuZCgnc2tpZl9lbGFwc2VkJywgU3RyaW5nKERhdGUubm93KCkgLSBvcGVuZWRBdCkpOwoKICAgICAgaWYgKGxvY2F0aW9uLnByb3RvY29sID09PSAnZmlsZTonKSB7CiAgICAgICAgY29uc29sZS5pbmZvKCdb0JjQmC3QsNGB0YHQuNGB0YLQtdC90YJdINC30LDRj9Cy0LrQsCAo0YHRgtGA0LDQvdC40YbQsCDQvtGC0LrRgNGL0YLQsCDQutCw0Log0YTQsNC50LssINC90LUg0L7RgtC/0YDQsNCy0LvQtdC90LApOicsIE9iamVjdC5mcm9tRW50cmllcyhkYXRhKSk7CiAgICAgICAgZmluaXNoKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBzdWJtaXQuZGlzYWJsZWQgPSB0cnVlOwogICAgICBzdWJtaXQuY2xhc3NMaXN0LmFkZCgnc2dwbi1pcy1sb2FkaW5nJyk7CiAgICAgIHN1Ym1pdC5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9InNncG4tc3Bpbm5lciI+PC9zcGFuPtCe0YLQv9GA0LDQstC70Y/QtdC8JzsKCiAgICAgIGZldGNoKEVORFBPSU5ULCB7CiAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgaGVhZGVyczogeyAnWC1SZXF1ZXN0ZWQtV2l0aCc6ICdYTUxIdHRwUmVxdWVzdCcgfSwKICAgICAgICBib2R5OiBkYXRhLAogICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHIpIHsKICAgICAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJvcihyLnN0YXR1cyk7CiAgICAgICAgcmV0dXJuIHIuanNvbigpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLnN0YXR1cyAhPT0gJ29rJykgdGhyb3cgbmV3IEVycm9yKHJlcy5tc2cgfHwgJ2Vycm9yJyk7CiAgICAgICAgaWYgKHJlcy5tZXRyaWthICYmIHR5cGVvZiB3aW5kb3cueW0gPT09ICdmdW5jdGlvbicpIHdpbmRvdy55bShNRVRSSUtBX0lELCAncmVhY2hHb2FsJywgcmVzLm1ldHJpa2EpOwogICAgICAgIGZpbmlzaCgpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgc3VibWl0LmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgc3VibWl0LmNsYXNzTGlzdC5yZW1vdmUoJ3NncG4taXMtbG9hZGluZycpOwogICAgICAgIHN1Ym1pdC50ZXh0Q29udGVudCA9ICfQntGB0YLQsNCy0LjRgtGMINC30LDRj9Cy0LrRgyc7CiAgICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0gJ9Cd0LUg0L/QvtC70YPRh9C40LvQvtGB0Ywg0L7RgtC/0YDQsNCy0LjRgtGMINC30LDRj9Cy0LrRgy4g0J/QvtC/0YDQvtCx0YPQudGC0LUg0LXRidGRINGA0LDQtyDRh9C10YDQtdC3INC80LjQvdGD0YLRgy4nOwogICAgICAgIHN0YXR1cy5jbGFzc0xpc3QucmVtb3ZlKCdzZ3BuLWhpZGRlbicpOwogICAgICB9KTsKICAgIH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLSDQn9C+0LjRgdC6INC+0LrQvdCwINC4INC60L3QvtC/0L7QuiDQvdCwINGB0YLRgNCw0L3QuNGG0LUgLS0tLS0tLS0tLSAqLwogIC8qINCS0YvQt9GL0LLQsNC10YLRgdGPINC60LDQttC00YvQvCDQstGB0YLQsNCy0LvQtdC90L3Ri9C8INGE0YDQsNCz0LzQtdC90YLQvtC8OiDQvtC60L3QviDQvtGB0YLQsNGR0YLRgdGPINC+0LTQvdC+ICjQv9C10YDQstC+0LUpLAogICAgINC60L7Qv9C40Lgg0LjQtyDRgdC70LXQtNGD0Y7RidC40YUg0LLRgdGC0LDQstC+0Log0YPQtNCw0LvRj9GO0YLRgdGPLCDQvdC+0LLRi9C1INC60L3QvtC/0LrQuCDQv9C+0LTQutC70Y7Rh9Cw0Y7RgtGB0Y8g0Log0L3QtdC80YMuICovCgogIGZ1bmN0aW9uIHNjYW4oKSB7CiAgICBlYWNoKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZ3BuLW1vZGFsJyksIGZ1bmN0aW9uIChtKSB7CiAgICAgIGlmICghbW9kYWwpIHsgbW9kYWwgPSBtOyBpbml0TW9kYWwobSk7IHJldHVybjsgfQogICAgICBpZiAobSAhPT0gbW9kYWwgJiYgbS5wYXJlbnROb2RlKSBtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobSk7CiAgICB9KTsKICAgIGVhY2goZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNncG4tdHJpZ2dlcicpLCBmdW5jdGlvbiAoYnRuKSB7CiAgICAgIGlmIChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLXNncG4tcmVhZHknKSkgcmV0dXJuOwogICAgICBidG4uc2V0QXR0cmlidXRlKCdkYXRhLXNncG4tcmVhZHknLCAnMScpOwogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IG9wZW4oYnRuKTsgfSk7CiAgICB9KTsKICB9CgogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkgewogICAgaWYgKChlLmtleSA9PT0gJ0VzY2FwZScgfHwgZS5rZXkgPT09ICdFc2MnKSAmJiBpc09wZW4oKSkgY2xvc2UoKTsKICB9KTsKCiAgd2luZG93Ll9fc2dwbk5ld3MgPSB7IHNjYW46IHNjYW4sIG9wZW46IG9wZW4sIGNsb3NlOiBjbG9zZSB9OwogIHNjYW4oKTsKICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc2Nhbik7Cn0pKCk7Cg==")))))() Нужные данные без поиска по отчётам Пользователь формулирует задачу, а ассистент сам определяет, какие данные нужны для ответа, получает их из SKIF.PRO и помогает перейти от общего вопроса к подробному анализу объектов. Для пользователя нет необходимости самостоятельно искать нужный раздел или строить несколько отчётов. Достаточно попросить ассистента собрать сводку по группе объектов за последнюю неделю. Он получит необходимые данные и покажет общую картину по автопарку: сколько объектов онлайн и не выходят на связь, какие машины движутся и какие стоят, количество поездок, пробег, заправки и сливы. Результат может быть представлен в виде сводки, графика, трека или данных на карте. Далее можно уточнить информацию, перейти к отдельному объекту или подробнее разобрать найденное событие. Ассистент сохраняет контекст диалога, поэтому пользователю не приходится каждый раз заново формулировать исходную задачу. От получения данных – к их анализу ИИ-ассистент может не только собрать информацию, но и выполнить аналитику. Одной из таких задач, которые можно ему делегировать – это проверка сливов топлива. Человеку, чтобы разобраться насколько слив реальный, нужно посмотреть данные по событию, проверить настройки тарировки и сглаживания датчика и сопоставить другие параметры. Мы перенесли эту логику действий в ИИ-чат. Пользователь указывает объект и событие и просит проверить слив. Ассистент самостоятельно получает данные, анализирует их и выдаёт результат с объяснением своей оценки. Для специалиста это сокращает количество ручных действий при первичной проверке и позволяет быстрее перейти к разбору причины события. Безопасная работа с данными ИИ-ассистент работает внутри пользовательской сессии SKIF.PRO. Поэтому он работает только с теми компаниями и объектами, которые доступны конкретному пользователю. Для обеспечения безопасности ассистент работает в режиме только для чтения. Он может извлечь данные, проанализировать их и показать результат, но изменить или удалить информацию в системе не может. Преимущества для интегратора Для интегратора ИИ-ассистент становится дополнительным инструментом при продаже и сопровождении клиентов.  Он помогает быстрее разбирать обращения в техподдержку, сокращает время на обработку типовых запросов и освобождает его для задач, где требуется экспертная оценка. Ассистент может быстрее знакомить клиента с возможностями SKIF.PRO. Можно перейти от общей демонстрации платформы к конкретной задаче и показать, какие данные и инструменты SKIF.PRO помогают её решать. Следующий этап – автоматизация регулярных задач Одно из направлений развития нового инструмента – регулярные сводки по автопарку. Уже прорабатываются сценарии, где ассистент сможет самостоятельно формировать утренние, вечерние или недельные сводки о состоянии объектов, поездках, заправках, сливах и других событиях. Ещё одно направление – объединение ИИ с базой знаний wiki.skif.pro. Пользователь сможет в процессе работы спросить, как выполнить нужное действие, или настроить функцию, и получить ответ из Wiki в том же окне ассистента. Никита Бронскийгенеральный директор «СКИФ ЭПП» SKIF.PRO – профессиональный инструмент мониторинга с широкими возможностями для глубокой работы с данными. При этом за продуктами такого класса часто тянется стереотип, что они сложные и требуют много усилий на освоение. В течение последнего года в развитии SKIF.PRO мы много внимания уделяли тому, чтобы работа с платформой была интуитивно понятной даже новичку. ИИ-ассистент стал логичным продолжением начатого. Он поможет пользователям быстрее освоиться в интерфейсе, найти нужную функцию и перейти к первым рабочим задачам буквально за несколько действий. А опытные интеграторы смогут делегировать ИИ-ассистенту свои регулярные задачи и автоматизировать операционку там, где это необходимо. Присоединяйтесь к тестированию ИИ-ассистент доступен для теста по запросу. Мы подключаем интеграторов, готовых проверять его в рабочих задачах и делиться обратной связью. Если ответ ассистента на ваш вопрос оказался неточным, не помог решить задачу или вам не хватает какой-то возможности, напишите об этом прямо в окне ассистента. Ваши ответы ускорят развитие новой возможности.  Узнать подробнее о новой возможности платформы и оставить заявку на тестирование можно на странице https://skif.pro/ai-assistant/

Подробнее
Обновление

08.09.2026 - 11:02

В системе мониторинга SKIF.PRO появился инструмент «Ближайшие объекты». Он работает в двух режимах и позволяет быстро находить транспорт рядом с указанной точкой на карте или внутри нужной геозоны. Функция сокращает время диспетчера на поиск подходящего объекта и принятие оперативных решений при внештатных ситуациях. При поиске по точке пользователь указывает место на карте и получает ближайшие объекты. Можно ограничить количество результатов поиска от 3 до 20 и учитывать только те объекты, что выходили на связь за последние 1, 4, 12 или 24 часа. Так в выборку попадет транспорт только с актуальными данными местоположения. Остается выбрать ближайшего активного исполнителя и связаться с ним. Функциональность помогает быстрее распределить доступный транспорт между задачами и не привлекать машины, которые находятся дальше или неактивны, чтобы исключить лишний пробег, время ожидания и расход топлива.  В режиме поиска по геозоне система показывает объекты, находящиеся внутри выбранной территории. Таким образом можно быстро проверить какой транспорт сейчас находится на базе, площадке, в зоне обслуживания данной области.  Для охранных, коммунальных и сервисных служб это возможность быстрее определить какие экипажи или бригады уже находятся в нужной зоне, без поиска по карте вручную, и быстрее направить сотрудников к месту происшествия. В сельском хозяйстве во время уборочной кампании диспетчер может выбрать геозону поля и понять какие зерновозы сейчас находятся внутри неё. Таким образом быстрее скоординировать транспорт для вывоза урожая — выстроить для него оптимальный маршрут и сократить лишние перемещения между полями, не допуская простоев комбайнов в ожидании машины. Для каждого режима поиска и найденного объекта на карте отображаются название объекта, расстояние до него от указанной точки, последняя активность и данные водителя для связи.  Инструмент учитывает текущий список объектов и примененные фильтры. Поэтому поиск можно выполнять не по всему парку, а, например, только среди определенной группы транспорта. Попробуйте новый инструмент в работе – функция уже доступна пользователям платформы. Если появятся вопросы по настройке, напишите в техподдержку.

Подробнее
Обновление

04.09.2026 - 18:02

25 сентября в рамках технического семинара WCDi! мы проведем консультационную сессию по возможностям платформы мониторинга транспорта SKIF.PRO. Представим участникам SKIF.Agro – новое решение для мониторинга сельхозтехники и учета полевых работ. Покажем, как работает и чем отличается от других продуктов для агромониторинга. 🗓️ 25 сентября 2026, с 10.00 до 18.00 📍Москва, ул. Большая Татарская, 42, УЦ «СТЕК», 2 этаж, зал 201 Программа 10.00 – 11.40 — Открытая демо-зона SKIF.PRO. Презентация возможностей платформы. Индивидуальные технические консультации.  11.40 – 13.10 — Презентация ИИ-ассистента SKIF.GPT  13.10 – 14.10 — Перерыв 14.10 – 15.40 — Презентация SKIF.Agro. Сессия вопросов и ответов. 15.40 – 17.30 — Открытая демо-зона SKIF.PRO. Презентация возможностей платформы. Индивидуальные технические консультации. Что вас ждёт? Демонстрация платформыПокажем новые возможности платформы, разберем ключевые инструменты SKIF.PRO для глубокой настройки аналитики и отчетов, гибкой работы с данными и реализации нестандартных сценариев мониторинга.  Знакомство с SKIF.AgroПродемонстрируем, как агромодуль рассчитывает обработку площади полей с учетом пропусков, перекрытий для точной оценки качества выполненных работ. А еще как можно вести учет операций при полной отсутствии связи с техникой.  Разбор ваших кейсов и задачОбсудим ваши задачи и покажем, как их можно реализовать с помощью SKIF.PRO. Технические консультацииОтветим на все вопросы о возможностях платформы, настройках, интеграциях и работе с оборудованием. Условия партнёрстваРасскажем о модели работы со SKIF.PRO, коммерческих преимуществах для интеграторов. Участие в демо-дне бесплатное. До встречи!

Подробнее
Обновление

25.08.2026 - 11:18

Мониторинг и треки Пробег в отчёте и легенде трека теперь отображается одинаково, поэтому при проверке маршрута не нужно сопоставлять значения из разных разделов платформы. Скорость воспроизведения трека соответствует ускорению, выбранному в плеере. Это удобно при анализе длинных маршрутов, когда поездку за несколько часов или сутки нужно просмотреть за короткое время. Длинные названия объектов полностью отображаются в легенде быстрого трека. Теперь внутренние номера, модели техники, подразделения и другие обозначения остаются читаемыми. В поиске объектов запрос сохраняет тот регистр букв, в котором его ввёл пользователь. Геозоны Стало удобнее работать с геозонами и треками на одной карте.  Подписи геозон отображаются поверх построенного трека, поэтому видны при анализе маршрута даже на картах с большим количеством полей и контрольных зон. Название и площадь геозоны можно посмотреть при наведении курсора, даже если постоянное отображение подписей отключено. Добавили возможность отображения до 50 000 геозон в одной компании. Такие объёмы актуальны, например, для агропроектов, где на карте одновременно отображаются тысячи сельскохозяйственных участков. На данный момент геозоны только отображаются на карте, отчёты по ним построить невозможно. Мы проверяем нагрузку и скорость работы карты при таком объёме геоданных. Админ.панель В админ.панели добавили подсказки для разделов с компаниями, объектами, счетами, терминалами и другими инструментами. При знакомстве с интерфейсом они помогают быстрее разобраться в структуре панели и сделать первые настройки. Например, переименовать созданную при регистрации компанию или восстановить удалённый объект. Подсказки в интерфейсе SKIF.PRO При создании шаблона команд функция «Выбрать все» выбирает все объекты компании, а не только первые 100. Команду можно назначить всему автопарку без выбора техники отдельными группами. При выгрузке списка объектов в Excel сохраняются выбранная компания, фильтры и поисковой запрос. В файл попадает та же выборка, с которой пользователь работал в интерфейсе. Записи пользовательских сессий сортируются по полной дате и времени, чтобы сохранять правильную хронологию независимо от выбранного периода. Добавили подсказки для настройки ботов рассылки в Telegram и MAX. Настройка рассылок в мессенджеры в системе мониторинга Отчёты В отчёте «Журнал» появилась колонка «Адрес». Она дает возможность сопоставлять показания датчиков с местоположением объекта. Например, при проверке температуры в рефрижераторе специалист видит значение датчика, время и место на маршруте. Так проще определить, где произошло изменение температуры или другого параметра. После изменения порядка таблиц через Drag&Drop в редакторе шаблонов появляется кнопка «Сохранить порядок». Так видно, что структура отчёта изменилась и новый порядок нужно подтвердить. Графики и топливные показатели При изменении начальной даты значения ДУТ сохраняют привязку ко времени получения, поэтому график показывает фактическую последовательность показаний. При изменении временного диапазона в отчёте «График» карта показывает соответствующий участок трека. Поэтому показания датчиков и перемещение объекта можно анализировать за один и тот же период. Датчики и объекты  В форме копирования датчиков теперь поиск работает по протоколу и названию датчика, чтобы нужные параметры для однотипного оборудования можно было быстрее найти и перенести. Исправлена подмена последних четырех цифр при заполнении полей SIM1 и SIM2.  Интерфейс Продолжаем обновление интерфейса. Изменили стилистику иконок, рабочих окон и других элементов, чтобы в разных разделах платформы привычные действия выглядели и работали одинаково. Обновляйтесь и пробуйте новые возможности SKIF.PRO. Подписывайтесь на наши каналы в Telegram и MAX и первыми узнавайте обо всех обновлениях платформы.

Подробнее
Все новости

Функциональность платформы

Подписывайтесь на наш телеграм-канал и первыми узнавайте обо всех обновлениях платформы.
Подписаться

Мы используем файлы cookie и сервис веб-аналитики Яндекс Метрика для улучшения работы сайта. Оставаясь на сайте, вы соглашаетесь с Политикой конфиденциальности.

Хорошо