Калькулятор давления для капельного полива
Рассчитайте необходимое давление воды на входе в систему капельного полива с учётом длины магистрали, количества линий, типа капельниц и перепада высот на участке.
Результаты расчёта
0
Общий расход воды
л/мин
0
Потери давления в магистрали
бар
0
Потери давления из-за высоты
бар
0
Мин. требуемое давление на входе
бар
0
Рекомендуемое давление с запасом 15%
бар
Как пользоваться калькулятором
1
Измерьте длину магистральной трубы от источника воды до furthest точки полива. Например, от насоса до последней грядки — 30 метров.
2
Посчитайте количество капельных линий и их длину. Для грядки шириной 60 см обычно укладывают одну линию на ряд растений. Укажите расстояние между капельницами (чаще всего 20–40 см) и расход одной капельницы (смотрите маркировку на ленте — обычно 1–4 л/ч).
3
Выберите тип капельниц: компенсированные держат стабильный расход при давлении 0,8–3,5 бар, некомпенсированные работают в узком диапазоне (обычно 0,5–1,5 бар). Укажите фактическое рабочее давление, рекомендованное производителем вашей ленты.
4
Оцените перепад высот: если источник воды (насос или бак) находится ниже участка полива — укажите разницу в метрах. Например, бак стоит на земле, а грядка поднята на 2 метра — введите 2. Нажмите «Рассчитать» и смотрите итоговое давление в блоке результатов.
Примеры расчёта
Теплица 18 м² с томатами — 6 рядов по 3 метра
Магистраль 10 м (диаметр 20 мм), 6 линий по 3 м, капельницы через 30 см (расход 2 л/ч), тип — компенсированные (1,5 бар), перепад высот 0,5 м.
Результат: общий расход ~120 л/ч (2 л/мин), 60 капельниц, потери в магистрали ~0,02 бар, высотные потери ~0,05 бар, итоговое требуемое давление ~1,57 бар, с запасом 15% — 1,81 бар. Подойдёт насос с давлением 2 бар.
Садовая грядка клубники — 40 кустов, две линии по 20 м
Магистраль 25 м (диаметр 25 мм), 2 линии по 20 м, капельницы через 20 см (расход 1,6 л/ч), тип — некомпенсированные (1,0 бар), перепад высот 1,5 м (участок на склоне).
Результат: общий расход ~320 л/ч (5,33 л/мин), 200 капельниц, потери в магистрали ~0,04 бар, высотные потери ~0,15 бар, итоговое требуемое давление ~1,19 бар, с запасом 15% — 1,37 бар. Достаточно давления из водопровода через редуктор.
Участок 3 сотки с овощами — 15 линий по 25 м
Магистраль 50 м (диаметр 32 мм), 15 линий по 25 м, капельницы через 30 см (расход 2 л/ч), тип — компенсированные (1,5 бар), перепад высот 3 м (вода из колодца внизу участка).
Результат: общий расход ~2500 л/ч (41,7 л/мин), 1250 капельниц, потери в магистрали ~0,25 бар, высотные потери ~0,29 бар, итоговое требуемое давление ~2,04 бар, с запасом 15% — 2,35 бар. Потребуется насосная станция с давлением не менее 2,5 бар.
Формулы расчёта
Количество капельниц = (длина линии × количество линий) / расстояние между капельницами
Общий расход (л/ч) = количество капельниц × расход одной капельницы
Общий расход (л/мин) = общий расход (л/ч) / 60
Мин. требуемое давление = рабочее давление капельниц + потери в магистрали + потери из-за высоты
Нормы и ориентиры
Приведённые ниже значения — ориентировочные. Точные цифры всегда указаны в инструкции производителя капельной ленты или трубки. Реальные показатели зависят от культуры, типа почвы, климата и стадии роста растений.
Расход капельницы: 1–4 л/ч (чаще 1,6–2,0 л/ч для лент, 2–4 л/ч для трубок).
Расстояние между капельницами: 10–20 см на песчаных почвах, 20–40 см на суглинках, 30–50 см на глинистых.
Рабочее давление компенсированных капельниц: 0,8–3,5 бар (оптимум 1,0–2,5 бар).
Рабочее давление некомпенсированных капельниц: 0,5–1,5 бар (оптимум 0,7–1,2 бар).
Длина одной капельной линии: до 50 м для лент 16 мм, до 100 м для трубок 16 мм при давлении 1 бар.
Потери в магистрали ПНД 25 мм: ~0,15 бар на 100 м при расходе 40 л/мин.
Что влияет на результат
- Диаметр магистральной трубы. Чем меньше диаметр при том же расходе — тем выше потери давления. Труба 16 мм при 20 л/мин теряет в 4–5 раз больше давления, чем труба 25 мм.
- Длина капельных линий. В конце длинной линии давление падает. Для некомпенсированных капельниц разница в расходе между началом и концом 50-метровой линии может достигать 30–40%.
- Тип капельниц. Компенсированные выравнивают расход по всей длине, но требуют более высокого входного давления (минимум 0,8–1,0 бар). Некомпенсированные дешевле, но чувствительны к перепадам.
- Рельеф участка. Каждый метр подъёма «съедает» ~0,1 бар. На холмистом участке в 5 соток перепад высот может составить 3–5 метров — это минус 0,3–0,5 бар от давления насоса.
- Засорение фильтров. Забитый сетчатый фильтр добавляет сопротивление. При частичном засорении потери могут вырасти на 0,2–0,5 бар. Именно поэтому в расчёт закладывают запас 15%.
- Температура воды. Холодная вода имеет большую вязкость, что немного увеличивает потери в трубах (на 2–5% при 10°C относительно 20°C). Для бытовых систем этим обычно пренебрегают.
Важные нюансы
- Для систем с длиной магистрали более 100 м обязательно делайте гидравлический расчёт с учётом реального профиля трубы и фитингов — наш калькулятор даёт приближённую оценку.
- Если вы используете капельную ленту, проверьте её маркировку: расстояние между эмиттерами (капельницами) и расход указаны на упаковке или самой ленте (например, «30 см / 1,6 л/ч»).
- При поливе из ёмкости без насоса (самотёком) каждый метр высоты водяного столба даёт ~0,098 бар. Для большинства капельных систем нужно минимум 0,5–0,8 бар — это высота бака 5–8 метров над уровнем грядок.
- Не превышайте максимальное давление, указанное производителем ленты (обычно 2,5–3,5 бар) — избыточное давление разрушает эмиттеры и разрывает швы ленты.
- Всегда устанавливайте редуктор давления после фильтра, если давление в водопроводе или от насоса превышает рекомендованное для вашей капельной системы.
- Регулярно промывайте фильтры и проверяйте фактическое давление манометром в начале и в конце магистрали — это поможет вовремя заметить проблемы.
Частые ошибки
- Выбор трубы слишком малого диаметра. Садоводы часто берут 16 мм на всю магистраль при 10–15 линиях — давление падает, дальние капельницы почти не капают.
- Пренебрежение перепадом высот. Участок кажется ровным, но разница в 1–2 метра между началом и концом грядки уже меняет давление на 0,1–0,2 бар.
- Отсутствие запаса по давлению. Расчёт «впритык» без 10–15% резерва приводит к нестабильной работе при малейшем засорении фильтра или падении напряжения насоса.
- Смешивание компенсированных и некомпенсированных капельниц на одной магистрали — расход будет непредсказуемым, одни растения получат воду, другие нет.
- Слишком длинные капельные линии. Для некомпенсированной ленты 16 мм предельная длина — 40–50 м при давлении 1 бар. При длине 80 м расход в конце линии упадёт на 50–70%.
- Игнорирование инструкции производителя капельной ленты. Расход эмиттера и рабочее давление — не взаимозаменяемые параметры. Лента с номиналом 2 л/ч при 1 бар будет давать 1,4 л/ч при 0,5 бар (для некомпенсированных).
Ответы на частые вопросы
Какое давление нужно для капельного полива из бочки?
При самотёке бочка должна быть поднята минимум на 5–8 метров над уровнем земли, чтобы создать 0,5–0,8 бар. Для большинства систем этого хватает, но расход будет небольшим. Лучше использовать насос с давлением 1,5–2,5 бар.
Чем отличаются компенсированные капельницы от некомпенсированных?
Компенсированные содержат мембрану, которая выравнивает расход при колебаниях давления (в диапазоне 0,8–3,5 бар). Некомпенсированные меняют расход пропорционально давлению: упало давление — упал расход. Первые дороже, но надёжнее для длинных линий и неровного рельефа.
Сколько капельных линий можно подключить к одной магистрали?
Зависит от диаметра магистрали и расхода. Для трубы 25 мм при давлении 2 бар и расходе 40 л/мин можно обслужить 15–20 линий по 2 л/мин каждая. При большем количестве линий давление в дальних упадёт.
Нужен ли редуктор давления?
Обязательно, если давление от насоса или водопровода превышает 3,5 бар (максимум для большинства капельных лент). Редуктор ставят после фильтра, он снижает давление до рабочего (обычно 1,5–2,0 бар).
Как измерить фактическое давление в системе?
Установите манометр в начале магистрали (после фильтра и редуктора) и, если система большая, в самой дальней точке. Разница показаний покажет реальные потери. Механический манометр на 0–4 бар стоит недорого и окупается экономией воды.
Можно ли использовать одну магистраль для разных культур?
Да, если капельные линии имеют одинаковое рабочее давление. Но учитывайте, что разные культуры требуют разного объёма воды. Лучше разбить систему на зоны с отдельными кранами и поливать каждую культуру по своему графику.
Источники и справочные данные
- Агрономические справочные нормы полива овощных, плодовых и декоративных культур для различных климатических зон.
- Инструкции производителей капельной ленты и трубок (Netafim, Irritec, Metzerplas, российские производители).
- Рекомендации по гидравлическому расчёту трубопроводов из полиэтилена низкого давления (ПНД) согласно СП 40-102-2000 и ISO 4427.
- Практические нормы расхода воды для капельного орошения: овощные культуры — 2–4 л/сутки на растение, кустарники — 4–8 л/сутки, плодовые деревья — 8–20 л/сутки.
- Точные параметры рабочего давления и расхода всегда берите из официальной инструкции конкретного производителя вашей капельной системы.
Калькулятор давления для капельного полива помогает садоводам и огородникам правильно подобрать насос или оценить достаточность давления в водопроводе для эффективной работы системы капельного орошения. Расчёт учитывает длину и диаметр магистральной трубы, количество и длину капельных линий, тип капельниц и перепад высот на участке. Инструмент полезен при проектировании полива теплиц, грядок, ягодников и плодового сада — он даёт реалистичную оценку требуемого давления с запасом 15% на случай засорения фильтров или старения труб. Результаты расчёта носят ориентировочный характер; для сложных систем с длиной магистрали более 100 метров рекомендуется дополнительная консультация со специалистом по гидравлическому расчёту.
CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGZvcm1QYW5lbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ubi1nZW4tY2FsLWZvcm0tcGFuZWwnKTsKICAgICAgICBpZiAoIWZvcm1QYW5lbCkgcmV0dXJuOwogICAgICAgIHZhciBjb250YWluZXIgPSBmb3JtUGFuZWwuY2xvc2VzdCgnLm5uLWdlbi1jYWwtd3JhcHBlcicpIHx8IGZvcm1QYW5lbC5wYXJlbnRFbGVtZW50OwoKICAgICAgICBmdW5jdGlvbiBnZXRFbChpZCkgewogICAgICAgICAgICByZXR1cm4gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyMnICsgaWQpOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gc2hvd0Vycm9yKGlkLCBtc2cpIHsKICAgICAgICAgICAgdmFyIGVsID0gZ2V0RWwoaWQpOwogICAgICAgICAgICBpZiAoZWwpIHsKICAgICAgICAgICAgICAgIGVsLnRleHRDb250ZW50ID0gbXNnOwogICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCgnc2hvdycpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBoaWRlRXJyb3IoaWQpIHsKICAgICAgICAgICAgdmFyIGVsID0gZ2V0RWwoaWQpOwogICAgICAgICAgICBpZiAoZWwpIHsKICAgICAgICAgICAgICAgIGVsLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGhpZGVBbGxFcnJvcnMoKSB7CiAgICAgICAgICAgIHZhciBpZHMgPSBbCiAgICAgICAgICAgICAgICAnZXJyb3ItbWFnaXN0cmFsLWxlbmd0aCcsICdlcnJvci1waXBlLWRpYW1ldGVyJywgJ2Vycm9yLWxpbmVzLWNvdW50JywKICAgICAgICAgICAgICAgICdlcnJvci1saW5lLWxlbmd0aCcsICdlcnJvci1kcmlwcGVyLXNwYWNpbmcnLCAnZXJyb3ItZHJpcHBlci1mbG93JywKICAgICAgICAgICAgICAgICdlcnJvci1kcmlwcGVyLXR5cGUnLCAnZXJyb3Itd29ya2luZy1wcmVzc3VyZScsICdlcnJvci1oZWlnaHQtZGlmZicsICdlcnJvci1nZW5lcmFsJwogICAgICAgICAgICBdOwogICAgICAgICAgICBpZHMuZm9yRWFjaChmdW5jdGlvbihpZCkgeyBoaWRlRXJyb3IoaWQpOyB9KTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHBhcnNlUG9zaXRpdmVGbG9hdChpZCkgewogICAgICAgICAgICB2YXIgZWwgPSBnZXRFbChpZCk7CiAgICAgICAgICAgIGlmICghZWwpIHJldHVybiBOYU47CiAgICAgICAgICAgIHZhciB2YWwgPSBwYXJzZUZsb2F0KGVsLnZhbHVlLnJlcGxhY2UoJywnLCAnLicpKTsKICAgICAgICAgICAgcmV0dXJuIHZhbDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHBhcnNlUG9zaXRpdmVJbnQoaWQpIHsKICAgICAgICAgICAgdmFyIGVsID0gZ2V0RWwoaWQpOwogICAgICAgICAgICBpZiAoIWVsKSByZXR1cm4gTmFOOwogICAgICAgICAgICB2YXIgdmFsID0gcGFyc2VJbnQoZWwudmFsdWUsIDEwKTsKICAgICAgICAgICAgcmV0dXJuIHZhbDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlKCkgewogICAgICAgICAgICBoaWRlQWxsRXJyb3JzKCk7CiAgICAgICAgICAgIHZhciB2YWxpZCA9IHRydWU7CgogICAgICAgICAgICB2YXIgbWFnTGVuID0gcGFyc2VQb3NpdGl2ZUZsb2F0KCdtYWdpc3RyYWwtbGVuZ3RoJyk7CiAgICAgICAgICAgIGlmIChpc05hTihtYWdMZW4pIHx8IG1hZ0xlbiA8PSAwKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoJ2Vycm9yLW1hZ2lzdHJhbC1sZW5ndGgnLCAn0JLQstC10LTQuNGC0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUg0YfQuNGB0LvQviAo0L3QsNC/0YDQuNC80LXRgDogMzApJyk7CiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgcGlwZURpYSA9IHBhcnNlUG9zaXRpdmVJbnQoJ3BpcGUtZGlhbWV0ZXInKTsKICAgICAgICAgICAgaWYgKGlzTmFOKHBpcGVEaWEpIHx8IFsxNiwgMjAsIDI1LCAzMl0uaW5kZXhPZihwaXBlRGlhKSA9PT0gLTEpIHsKICAgICAgICAgICAgICAgIHNob3dFcnJvcignZXJyb3ItcGlwZS1kaWFtZXRlcicsICfQktGL0LHQtdGA0LjRgtC1INC00LjQsNC80LXRgtGAINGC0YDRg9Cx0YsnKTsKICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBsaW5lc0NvdW50ID0gcGFyc2VQb3NpdGl2ZUludCgnbGluZXMtY291bnQnKTsKICAgICAgICAgICAgaWYgKGlzTmFOKGxpbmVzQ291bnQpIHx8IGxpbmVzQ291bnQgPCAxKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoJ2Vycm9yLWxpbmVzLWNvdW50JywgJ9CS0LLQtdC00LjRgtC1INGG0LXQu9C+0LUg0YfQuNGB0LvQviDQvtGCIDEgKNC90LDQv9GA0LjQvNC10YA6IDEwKScpOwogICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGxpbmVMZW4gPSBwYXJzZVBvc2l0aXZlRmxvYXQoJ2xpbmUtbGVuZ3RoJyk7CiAgICAgICAgICAgIGlmIChpc05hTihsaW5lTGVuKSB8fCBsaW5lTGVuIDw9IDApIHsKICAgICAgICAgICAgICAgIHNob3dFcnJvcignZXJyb3ItbGluZS1sZW5ndGgnLCAn0JLQstC10LTQuNGC0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUg0YfQuNGB0LvQviAo0L3QsNC/0YDQuNC80LXRgDogMTUpJyk7CiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgZHJpcFNwYWNpbmcgPSBwYXJzZVBvc2l0aXZlRmxvYXQoJ2RyaXBwZXItc3BhY2luZycpOwogICAgICAgICAgICBpZiAoaXNOYU4oZHJpcFNwYWNpbmcpIHx8IGRyaXBTcGFjaW5nIDwgMSkgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKCdlcnJvci1kcmlwcGVyLXNwYWNpbmcnLCAn0KDQsNGB0YHRgtC+0Y/QvdC40LUg0LTQvtC70LbQvdC+INCx0YvRgtGMINC90LUg0LzQtdC90LXQtSAxINGB0LwgKNC90LDQv9GA0LjQvNC10YA6IDMwKScpOwogICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGRyaXBGbG93ID0gcGFyc2VQb3NpdGl2ZUZsb2F0KCdkcmlwcGVyLWZsb3cnKTsKICAgICAgICAgICAgaWYgKGlzTmFOKGRyaXBGbG93KSB8fCBkcmlwRmxvdyA8PSAwKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoJ2Vycm9yLWRyaXBwZXItZmxvdycsICfQktCy0LXQtNC40YLQtSDQv9C+0LvQvtC20LjRgtC10LvRjNC90L7QtSDRh9C40YHQu9C+ICjQvdCw0L/RgNC40LzQtdGAOiAyKScpOwogICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHdvcmtQcmVzcyA9IHBhcnNlUG9zaXRpdmVGbG9hdCgnd29ya2luZy1wcmVzc3VyZScpOwogICAgICAgICAgICBpZiAoaXNOYU4od29ya1ByZXNzKSB8fCB3b3JrUHJlc3MgPD0gMCkgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKCdlcnJvci13b3JraW5nLXByZXNzdXJlJywgJ9CS0LLQtdC00LjRgtC1INC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3QvtC1INGH0LjRgdC70L4gKNC90LDQv9GA0LjQvNC10YA6IDEuNSknKTsKICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBoZWlnaHREaWZmID0gcGFyc2VQb3NpdGl2ZUZsb2F0KCdoZWlnaHQtZGlmZicpOwogICAgICAgICAgICBpZiAoaXNOYU4oaGVpZ2h0RGlmZikgfHwgaGVpZ2h0RGlmZiA8IDApIHsKICAgICAgICAgICAgICAgIHNob3dFcnJvcignZXJyb3ItaGVpZ2h0LWRpZmYnLCAn0JLQstC10LTQuNGC0LUg0L3QtdC+0YLRgNC40YbQsNGC0LXQu9GM0L3QvtC1INGH0LjRgdC70L4gKNC90LDQv9GA0LjQvNC10YA6IDIpJyk7CiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gdmFsaWQ7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjYWxjUGlwZUxvc3MobGVuZ3RoTSwgZGlhbWV0ZXJNTSwgZmxvd0xQTSkgewogICAgICAgICAgICBpZiAoZmxvd0xQTSA8PSAwIHx8IGxlbmd0aE0gPD0gMCB8fCBkaWFtZXRlck1NIDw9IDApIHJldHVybiAwOwogICAgICAgICAgICB2YXIgY0ZhY3RvciA9IDE0MDsKICAgICAgICAgICAgdmFyIGxvc3NCYXJQZXIxMDBtID0gKDEwLjY3ICogTWF0aC5wb3coZmxvd0xQTSAvIDYwICogMTAwMCwgMS44NTIpKSAvIChNYXRoLnBvdyhjRmFjdG9yLCAxLjg1MikgKiBNYXRoLnBvdyhkaWFtZXRlck1NIC8gMTAwMCwgNC44NykpIC8gMTAwMDAwOwogICAgICAgICAgICB2YXIgbG9zc0JhciA9IGxvc3NCYXJQZXIxMDBtICogKGxlbmd0aE0gLyAxMDApOwogICAgICAgICAgICBsb3NzQmFyID0gbG9zc0JhciAqIDEuMjsKICAgICAgICAgICAgaWYgKGxvc3NCYXIgPCAwLjAwMSkgbG9zc0JhciA9IDA7CiAgICAgICAgICAgIHJldHVybiBsb3NzQmFyOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgICAgICAgICBpZiAoIXZhbGlkYXRlKCkpIHJldHVybjsKCiAgICAgICAgICAgIHZhciBtYWdMZW4gPSBwYXJzZVBvc2l0aXZlRmxvYXQoJ21hZ2lzdHJhbC1sZW5ndGgnKTsKICAgICAgICAgICAgdmFyIHBpcGVEaWEgPSBwYXJzZVBvc2l0aXZlSW50KCdwaXBlLWRpYW1ldGVyJyk7CiAgICAgICAgICAgIHZhciBsaW5lc0NvdW50ID0gcGFyc2VQb3NpdGl2ZUludCgnbGluZXMtY291bnQnKTsKICAgICAgICAgICAgdmFyIGxpbmVMZW4gPSBwYXJzZVBvc2l0aXZlRmxvYXQoJ2xpbmUtbGVuZ3RoJyk7CiAgICAgICAgICAgIHZhciBkcmlwU3BhY2luZyA9IHBhcnNlUG9zaXRpdmVGbG9hdCgnZHJpcHBlci1zcGFjaW5nJyk7CiAgICAgICAgICAgIHZhciBkcmlwRmxvdyA9IHBhcnNlUG9zaXRpdmVGbG9hdCgnZHJpcHBlci1mbG93Jyk7CiAgICAgICAgICAgIHZhciB3b3JrUHJlc3MgPSBwYXJzZVBvc2l0aXZlRmxvYXQoJ3dvcmtpbmctcHJlc3N1cmUnKTsKICAgICAgICAgICAgdmFyIGhlaWdodERpZmYgPSBwYXJzZVBvc2l0aXZlRmxvYXQoJ2hlaWdodC1kaWZmJyk7CgogICAgICAgICAgICB2YXIgZHJpcFNwYWNpbmdNID0gZHJpcFNwYWNpbmcgLyAxMDA7CiAgICAgICAgICAgIHZhciB0b3RhbERyaXBwZXJzID0gTWF0aC5yb3VuZCgobGluZUxlbiAqIGxpbmVzQ291bnQpIC8gZHJpcFNwYWNpbmdNKTsKICAgICAgICAgICAgaWYgKHRvdGFsRHJpcHBlcnMgPCAxKSB0b3RhbERyaXBwZXJzID0gMTsKCiAgICAgICAgICAgIHZhciB0b3RhbEZsb3dMUEggPSB0b3RhbERyaXBwZXJzICogZHJpcEZsb3c7CiAgICAgICAgICAgIHZhciB0b3RhbEZsb3dMUE0gPSB0b3RhbEZsb3dMUEggLyA2MDsKCiAgICAgICAgICAgIHZhciBwaXBlTG9zcyA9IGNhbGNQaXBlTG9zcyhtYWdMZW4sIHBpcGVEaWEsIHRvdGFsRmxvd0xQTSk7CiAgICAgICAgICAgIHZhciBoZWlnaHRMb3NzID0gaGVpZ2h0RGlmZiAqIDAuMDk4OwogICAgICAgICAgICB2YXIgbWluUHJlc3N1cmUgPSB3b3JrUHJlc3MgKyBwaXBlTG9zcyArIGhlaWdodExvc3M7CiAgICAgICAgICAgIHZhciByZWNQcmVzc3VyZSA9IG1pblByZXNzdXJlICogMS4xNTsKCiAgICAgICAgICAgIG1pblByZXNzdXJlID0gTWF0aC5yb3VuZChtaW5QcmVzc3VyZSAqIDEwMCkgLyAxMDA7CiAgICAgICAgICAgIHJlY1ByZXNzdXJlID0gTWF0aC5yb3VuZChyZWNQcmVzc3VyZSAqIDEwMCkgLyAxMDA7CiAgICAgICAgICAgIHBpcGVMb3NzID0gTWF0aC5yb3VuZChwaXBlTG9zcyAqIDEwMCkgLyAxMDA7CiAgICAgICAgICAgIGhlaWdodExvc3MgPSBNYXRoLnJvdW5kKGhlaWdodExvc3MgKiAxMDApIC8gMTAwOwogICAgICAgICAgICB0b3RhbEZsb3dMUEggPSBNYXRoLnJvdW5kKHRvdGFsRmxvd0xQSCAqIDEwKSAvIDEwOwogICAgICAgICAgICB0b3RhbEZsb3dMUE0gPSBNYXRoLnJvdW5kKHRvdGFsRmxvd0xQTSAqIDEwKSAvIDEwOwoKICAgICAgICAgICAgZnVuY3Rpb24gc2V0UmVzKGlkLCB2YWwpIHsKICAgICAgICAgICAgICAgIHZhciBlbCA9IGdldEVsKGlkKTsKICAgICAgICAgICAgICAgIGlmIChlbCkgZWwudGV4dENvbnRlbnQgPSB2YWw7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNldFJlcygncmVzLXRvdGFsLWZsb3ctbHBoJywgdG90YWxGbG93TFBIKTsKICAgICAgICAgICAgc2V0UmVzKCdyZXMtdG90YWwtZmxvdy1scG0nLCB0b3RhbEZsb3dMUE0pOwogICAgICAgICAgICBzZXRSZXMoJ3Jlcy10b3RhbC1kcmlwcGVycycsIHRvdGFsRHJpcHBlcnMpOwogICAgICAgICAgICBzZXRSZXMoJ3Jlcy1waXBlLWxvc3MnLCBwaXBlTG9zcyk7CiAgICAgICAgICAgIHNldFJlcygncmVzLWhlaWdodC1sb3NzJywgaGVpZ2h0TG9zcyk7CiAgICAgICAgICAgIHNldFJlcygncmVzLW1pbi1wcmVzc3VyZScsIG1pblByZXNzdXJlKTsKICAgICAgICAgICAgc2V0UmVzKCdyZXMtcmVjLXByZXNzdXJlJywgcmVjUHJlc3N1cmUpOwoKICAgICAgICAgICAgaGlkZUVycm9yKCdlcnJvci1nZW5lcmFsJyk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICAgICAgICAgIGhpZGVBbGxFcnJvcnMoKTsKICAgICAgICAgICAgdmFyIGRlZmF1bHRzID0gewogICAgICAgICAgICAgICAgJ21hZ2lzdHJhbC1sZW5ndGgnOiAnMzAnLAogICAgICAgICAgICAgICAgJ3BpcGUtZGlhbWV0ZXInOiAnMjUnLAogICAgICAgICAgICAgICAgJ2xpbmVzLWNvdW50JzogJzEwJywKICAgICAgICAgICAgICAgICdsaW5lLWxlbmd0aCc6ICcxNScsCiAgICAgICAgICAgICAgICAnZHJpcHBlci1zcGFjaW5nJzogJzMwJywKICAgICAgICAgICAgICAgICdkcmlwcGVyLWZsb3cnOiAnMicsCiAgICAgICAgICAgICAgICAnZHJpcHBlci10eXBlJzogJ2NvbXBlbnNhdGVkJywKICAgICAgICAgICAgICAgICd3b3JraW5nLXByZXNzdXJlJzogJzEuNScsCiAgICAgICAgICAgICAgICAnaGVpZ2h0LWRpZmYnOiAnMicKICAgICAgICAgICAgfTsKICAgICAgICAgICAgT2JqZWN0LmtleXMoZGVmYXVsdHMpLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgICAgIHZhciBlbCA9IGdldEVsKGlkKTsKICAgICAgICAgICAgICAgIGlmIChlbCkgZWwudmFsdWUgPSBkZWZhdWx0c1tpZF07CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgemVyb0lkcyA9IFsKICAgICAgICAgICAgICAgICdyZXMtdG90YWwtZmxvdy1scGgnLCAncmVzLXRvdGFsLWZsb3ctbHBtJywgJ3Jlcy10b3RhbC1kcmlwcGVycycsCiAgICAgICAgICAgICAgICAncmVzLXBpcGUtbG9zcycsICdyZXMtaGVpZ2h0LWxvc3MnLCAncmVzLW1pbi1wcmVzc3VyZScsICdyZXMtcmVjLXByZXNzdXJlJwogICAgICAgICAgICBdOwogICAgICAgICAgICB6ZXJvSWRzLmZvckVhY2goZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgICAgIHZhciBlbCA9IGdldEVsKGlkKTsKICAgICAgICAgICAgICAgIGlmIChlbCkgZWwudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBoaWRlRXJyb3IoJ2Vycm9yLWdlbmVyYWwnKTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIG9uRHJpcHBlclR5cGVDaGFuZ2UoKSB7CiAgICAgICAgICAgIHZhciB0eXBlRWwgPSBnZXRFbCgnZHJpcHBlci10eXBlJyk7CiAgICAgICAgICAgIHZhciBwcmVzc0VsID0gZ2V0RWwoJ3dvcmtpbmctcHJlc3N1cmUnKTsKICAgICAgICAgICAgaWYgKCF0eXBlRWwgfHwgIXByZXNzRWwpIHJldHVybjsKICAgICAgICAgICAgaWYgKHR5cGVFbC52YWx1ZSA9PT0gJ2NvbXBlbnNhdGVkJykgewogICAgICAgICAgICAgICAgaWYgKHBhcnNlRmxvYXQocHJlc3NFbC52YWx1ZSkgPCAwLjgpIHByZXNzRWwudmFsdWUgPSAnMS41JzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChwYXJzZUZsb2F0KHByZXNzRWwudmFsdWUpID4gMS41KSBwcmVzc0VsLnZhbHVlID0gJzEuMCc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBjYWxjQnRuID0gZ2V0RWwoJ2NhbGMtYnRuJyk7CiAgICAgICAgdmFyIHJlc2V0QnRuID0gZ2V0RWwoJ3Jlc2V0LWJ0bicpOwogICAgICAgIHZhciBkcmlwcGVyVHlwZSA9IGdldEVsKCdkcmlwcGVyLXR5cGUnKTsKCiAgICAgICAgaWYgKGNhbGNCdG4pIGNhbGNCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxjdWxhdGUpOwogICAgICAgIGlmIChyZXNldEJ0bikgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEZvcm0pOwogICAgICAgIGlmIChkcmlwcGVyVHlwZSkgZHJpcHBlclR5cGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25EcmlwcGVyVHlwZUNoYW5nZSk7CgogICAgICAgIHZhciBhbGxOdW1iZXJJbnB1dHMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT0ibnVtYmVyIl0nKTsKICAgICAgICBhbGxOdW1iZXJJbnB1dHMuZm9yRWFjaChmdW5jdGlvbihpbnApIHsKICAgICAgICAgICAgaW5wLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSkoKTsK