Калькулятор площади полива дождевателя
Рассчитайте эффективную площадь полива одного или нескольких дождевателей с учётом сектора, радиуса и перекрытия зон — для сада, огорода или газона.
—
Площадь одного дождевателя
м²
—
Суммарная площадь без перекрытия
м²
—
Эффективная площадь с перекрытием
м²
—
Нужно дождевателей на участок
шт
Как пользоваться калькулятором
1
Укажите радиус действия дождевателя в метрах — эту цифру можно найти в паспорте изделия или измерить на участке. Например, для роторного дождевателя это может быть 8–12 м, для веерного — 3–6 м.
2
Выберите угол сектора полива: 90° для угловых зон, 180° для полива вдоль забора или стены, 360° для кругового полива открытых участков. Можно ввести своё значение.
3
Задайте количество дождевателей и коэффициент перекрытия (обычно 15–30%). Перекрытие нужно, чтобы не оставалось сухих пятен на стыках зон — это стандартная практика при проектировании систем полива.
4
Если знаете площадь участка — укажите её. Калькулятор подскажет, сколько дождевателей потребуется для полного покрытия, и какой процент участка вы закроете.
Примеры расчёта
Газон перед домом — 60 м², дождеватель радиусом 5 м, 360°
Один дождеватель покрывает π × 5² = 78,5 м². С перекрытием 20% эффективная площадь — 62,8 м². Одного дождевателя хватит на весь газон с запасом. Покрытие участка: 105%.
Длинный цветник вдоль забора — 30 м², дождеватель радиусом 3 м, 180°
Один дождеватель покрывает π × 3² × (180 / 360) = 14,1 м². С перекрытием 25% — 10,6 м². Нужно 3 дождевателя (30 / 10,6 ≈ 2,8, округляем вверх).
Огород 3 сотки (300 м²), роторные дождеватели радиусом 10 м, 360°
Один дождеватель: π × 10² = 314 м². С перекрытием 15% — 267 м². Для 300 м² достаточно 2 дождевателей, они обеспечат покрытие 178% — участок будет полит с хорошим запасом.
Формулы расчёта
Площадь полива дождевателя зависит от радиуса и угла сектора. Базовые формулы:
Площадь одного дождевателя = π × R² × (α / 360°)
где R — радиус действия (м), α — угол сектора полива в градусах.
Суммарная площадь = S₁ × N
где S₁ — площадь одного дождевателя, N — количество дождевателей.
Эффективная площадь = S_сумм × (1 − K / 100)
где K — коэффициент перекрытия в процентах (15–30%).
Нужное количество = ceil(S_участка / S_эфф₁)
где S_эфф₁ — эффективная площадь одного дождевателя с учётом перекрытия; округление вверх до целого.
Радиус в метрах подставляется как есть. Угол — в градусах от 1° до 360°. Для кругового дождевателя α = 360°, и формула упрощается до π × R².
Нормы и ориентиры
- Веерные (статические) дождеватели: радиус 2–6 м, угол обычно регулируется от 0° до 360°. Подходят для небольших клумб, цветников и узких полос вдоль дорожек.
- Роторные дождеватели: радиус 6–15 м, угол 40–360°. Хороши для газонов и открытых участков средней площади.
- Импульсные дождеватели: радиус до 20–25 м, угол обычно 20–360°. Применяются на больших участках, спортивных полях, в садах с крупными деревьями.
- Перекрытие зон: 15–20% для равномерного полива без «сухих треугольников» на стыках. При сильном ветре перекрытие увеличивают до 25–30%.
- Давление воды: радиус в паспорте указан для номинального давления (обычно 2–3 бара). При падении давления реальный радиус уменьшается на 10–25%.
- Все нормы ориентировочные — реальные показатели зависят от давления в системе, высоты установки, ветра и рельефа участка.
Что влияет на результат
- Давление воды: главный фактор. При давлении ниже номинала радиус падает, при избыточном — растёт распыление и теряется равномерность. Проверьте давление в точке подключения до расчёта.
- Тип почвы: на песчаных почвах вода впитывается быстро — перекрытие можно уменьшить до 10–15%. На глинистых почвах вода задерживается — перекрытие лучше увеличить до 25–30% для предотвращения стока.
- Рельеф: на склонах радиус полива вниз по склону увеличивается, вверх — уменьшается. При уклоне более 10° стоит разбить зону на несколько дождевателей с меньшим радиусом.
- Ветер: даже слабый ветер (3–5 м/с) сносит струи и искажает зону покрытия. При постоянном ветре перекрытие поднимают до 25–35% и уменьшают расстояние между дождевателями.
- Высота установки: дождеватель на штанге 30–50 см над землёй даёт больший радиус, чем установленный вровень с грунтом, но сильнее подвержен ветру.
- Тип дождевателя: у разных моделей разная диаграмма распыления — одни льют равномерно по кругу, другие концентрируют поток у дальнего края. Паспортные данные всегда точнее расчётных.
Важные нюансы
- Всегда проектируйте систему полива с перекрытием зон — без него стыки останутся сухими, а газон или грядки будут в пятнах.
- Калькулятор считает геометрическую площадь по формуле кругового сектора. Реальная форма пятна полива зависит от форсунки и может быть не идеальным сектором.
- При проектировании системы для участка сложной формы разбейте его на прямоугольные или круговые зоны и считайте каждую отдельно.
- Не размещайте дождеватели вплотную к стенам, заборам и стволам деревьев — отражённая вода не попадает в зону полива, а стены мокнут.
- Для деревьев и кустарников с глубокой корневой системой площадь полива — не единственный параметр. Важнее норма расхода воды в литрах на растение.
- Результат расчёта — ориентировочный. Для сложных ландшафтных проектов сверьтесь со специалистом по системам автополива.
Частые ошибки
- Ставить дождеватели без перекрытия. На стыке двух кругов всегда остаётся сухая зона. Минимум 15% перекрытия — обязательное правило.
- Использовать паспортный радиус без поправки на давление. Если насос или водопровод не дают номинальных 3 бар, реальный радиус будет меньше на 1–3 метра.
- Не учитывать форму участка. Для узкой полосы шириной 2 метра дождеватель с радиусом 5 метров будет бесполезно поливать забор. Выбирайте секторные модели с малым радиусом.
- Поливать в жару днём. Потери на испарение в полуденный зной достигают 30–40%. Лучшее время — раннее утро или вечер, когда ветер стихает и вода успевает впитаться.
- Забывать про растения-конкуренты. Крупные деревья и кусты перехватывают воду из зоны полива газона или цветника. Учитывайте это при расстановке дождевателей.
- Считать площадь «на глаз». Ошибка в 2–3 метра радиуса меняет площадь круга на десятки квадратных метров. Пользуйтесь рулеткой или лазерным дальномером.
Ответы на частые вопросы
- Сколько дождевателей нужно на участок 6 соток? При радиусе 8 м (ротор) и перекрытии 20% один дождеватель покрывает около 160 м². На 600 м² нужно 4–5 дождевателей с учётом перекрытий и формы участка.
- Какой радиус выбрать для полива грядок? Для грядок шириной 1–1,5 м берите веерные дождеватели с радиусом 2–3 м и сектором 180°. Слишком большой радиус — лишний расход воды на дорожки.
- Можно ли совмещать дождеватели с разным радиусом? Можно, если они подключены к разным линиям или имеют разное время полива. На одной линии дождеватели с разным расходом воды дадут неравномерный полив.
- Зачем нужно перекрытие? У любого дождевателя интенсивность полива падает к краю зоны. Перекрытие компенсирует этот спад и обеспечивает равномерную норму расхода по всей площади.
- Влияет ли форма форсунки на площадь? Да. Форсунки с узкой струёй дают больший радиус при том же давлении. Форсунки с широким веером — меньший радиус, но более равномерное распределение.
- Как проверить реальный радиус на участке? Включите дождеватель на 5–10 минут в безветренную погоду и расставьте по периметру зоны полива пустые консервные банки — по ним будет видно границу и равномерность.
Источники и справочные данные
- Расчёт основан на геометрической формуле площади кругового сектора — стандартном методе, применяемом в проектировании систем орошения.
- Агрономические справочные нормы перекрытия зон полива: 15–30% в зависимости от типа почвы, рельефа и погодных условий.
- Инструкции производителей дождевателей — радиус и угол всегда берите из паспорта конкретной модели.
- Практические нормы расхода воды и расстановки дождевателей — рекомендации по выращиванию газонных, овощных и декоративных культур.
- Для сложных участков с перепадом высот, сильными ветрами или нестандартной геометрией рекомендуется проект автополива у специалиста.
Калькулятор площади полива дождевателя помогает быстро рассчитать, сколько квадратных метров покроет один или несколько дождевателей, и подобрать их количество для участка любой формы. Инструмент учитывает радиус действия, угол сектора и коэффициент перекрытия зон — три ключевых параметра, от которых зависит равномерность полива газона, грядок и цветников. Расчёт подходит для веерных, роторных и импульсных моделей — достаточно знать паспортный радиус и угол распыления.
CiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgcmFkaXVzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJhZGl1cycpOwogICAgdmFyIGFuZ2xlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWFuZ2xlJyk7CiAgICB2YXIgY291bnRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tY291bnQnKTsKICAgIHZhciBvdmVybGFwSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLW92ZXJsYXAnKTsKICAgIHZhciBhcmVhSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWFyZWEnKTsKICAgIHZhciBjYWxjQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1jYWxjLWJ0bicpOwogICAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXNldC1idG4nKTsKICAgIHZhciBhbmdsZUJ0bnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubm4tZ2VuLWNhbC1hbmdsZS1idG4nKTsKCiAgICB2YXIgcmVzdWx0U2luZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXN1bHQtc2luZ2xlJyk7CiAgICB2YXIgcmVzdWx0VG90YWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlc3VsdC10b3RhbCcpOwogICAgdmFyIHJlc3VsdEVmZmVjdGl2ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzdWx0LWVmZmVjdGl2ZScpOwogICAgdmFyIHJlc3VsdE5lZWRlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzdWx0LW5lZWRlZCcpOwogICAgdmFyIHJlc3VsdENvdmVyYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXN1bHQtY292ZXJhZ2UnKTsKICAgIHZhciByZXN1bHROb3RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXN1bHQtbm90ZScpOwogICAgdmFyIG5lZWRlZFJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzdWx0LW5lZWRlZC1yb3cnKTsKICAgIHZhciBjb3ZlcmFnZVJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzdWx0LWNvdmVyYWdlLXJvdycpOwoKICAgIGZ1bmN0aW9uIHNob3dFcnJvcihpZCwgbXNnKSB7CiAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tZXJyb3ItJyArIGlkKTsKICAgICAgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IG1zZyB8fCAnJzsKICAgIH0KCiAgICBmdW5jdGlvbiBjbGVhckVycm9ycygpIHsKICAgICAgc2hvd0Vycm9yKCdyYWRpdXMnLCAnJyk7CiAgICAgIHNob3dFcnJvcignYW5nbGUnLCAnJyk7CiAgICAgIHNob3dFcnJvcignY291bnQnLCAnJyk7CiAgICAgIHNob3dFcnJvcignb3ZlcmxhcCcsICcnKTsKICAgICAgc2hvd0Vycm9yKCdhcmVhJywgJycpOwogICAgfQoKICAgIGZ1bmN0aW9uIHZhbGlkYXRlKCkgewogICAgICBjbGVhckVycm9ycygpOwogICAgICB2YXIgdmFsaWQgPSB0cnVlOwogICAgICB2YXIgcmFkaXVzID0gcGFyc2VGbG9hdChyYWRpdXNJbnB1dC52YWx1ZSk7CiAgICAgIHZhciBhbmdsZSA9IHBhcnNlRmxvYXQoYW5nbGVJbnB1dC52YWx1ZSk7CiAgICAgIHZhciBjb3VudCA9IHBhcnNlSW50KGNvdW50SW5wdXQudmFsdWUsIDEwKTsKICAgICAgdmFyIG92ZXJsYXAgPSBwYXJzZUZsb2F0KG92ZXJsYXBJbnB1dC52YWx1ZSk7CiAgICAgIHZhciBhcmVhVmFsID0gYXJlYUlucHV0LnZhbHVlLnRyaW0oKTsKCiAgICAgIGlmIChpc05hTihyYWRpdXMpIHx8IHJhZGl1cyA8PSAwKSB7CiAgICAgICAgc2hvd0Vycm9yKCdyYWRpdXMnLCAn0JLQstC10LTQuNGC0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdGL0Lkg0YDQsNC00LjRg9GBLicpOwogICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgIH0gZWxzZSBpZiAocmFkaXVzID4gNTApIHsKICAgICAgICBzaG93RXJyb3IoJ3JhZGl1cycsICfQoNCw0LTQuNGD0YEg0LTQvtC70LbQtdC9INCx0YvRgtGMINC90LUg0LHQvtC70LXQtSA1MCDQvC4nKTsKICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICB9CgogICAgICBpZiAoaXNOYU4oYW5nbGUpIHx8IGFuZ2xlIDwgMSB8fCBhbmdsZSA+IDM2MCkgewogICAgICAgIHNob3dFcnJvcignYW5nbGUnLCAn0KPQs9C+0Lsg0LTQvtC70LbQtdC9INCx0YvRgtGMINC+0YIgMcKwINC00L4gMzYwwrAuJyk7CiAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgfQoKICAgICAgaWYgKGlzTmFOKGNvdW50KSB8fCBjb3VudCA8IDEpIHsKICAgICAgICBzaG93RXJyb3IoJ2NvdW50JywgJ9Ca0L7Qu9C40YfQtdGB0YLQstC+INC00L7Qu9C20L3QviDQsdGL0YLRjCDRhtC10LvRi9C8INGH0LjRgdC70L7QvCDQvtGCIDEuJyk7CiAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgfSBlbHNlIGlmIChjb3VudCA+IDUwMCkgewogICAgICAgIHNob3dFcnJvcignY291bnQnLCAn0JrQvtC70LjRh9C10YHRgtCy0L4g0L3QtSDQtNC+0LvQttC90L4g0L/RgNC10LLRi9GI0LDRgtGMIDUwMC4nKTsKICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICB9CgogICAgICBpZiAoaXNOYU4ob3ZlcmxhcCkgfHwgb3ZlcmxhcCA8IDAgfHwgb3ZlcmxhcCA+IDkwKSB7CiAgICAgICAgc2hvd0Vycm9yKCdvdmVybGFwJywgJ9Cf0LXRgNC10LrRgNGL0YLQuNC1INC+0YIgMCDQtNC+IDkwJS4nKTsKICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICB9CgogICAgICBpZiAoYXJlYVZhbCAhPT0gJycpIHsKICAgICAgICB2YXIgYXJlYU51bSA9IHBhcnNlRmxvYXQoYXJlYVZhbCk7CiAgICAgICAgaWYgKGlzTmFOKGFyZWFOdW0pIHx8IGFyZWFOdW0gPCAwKSB7CiAgICAgICAgICBzaG93RXJyb3IoJ2FyZWEnLCAn0J/Qu9C+0YnQsNC00Ywg0LTQvtC70LbQvdCwINCx0YvRgtGMINC90LXQvtGC0YDQuNGG0LDRgtC10LvRjNC90YvQvCDRh9C40YHQu9C+0LwuJyk7CiAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgIH0gZWxzZSBpZiAoYXJlYU51bSA+IDEwMDAwMCkgewogICAgICAgICAgc2hvd0Vycm9yKCdhcmVhJywgJ9Cf0LvQvtGJ0LDQtNGMINC90LUg0LTQvtC70LbQvdCwINC/0YDQtdCy0YvRiNCw0YLRjCAxMDAgMDAwINC8wrIuJyk7CiAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHZhbGlkOwogICAgfQoKICAgIGZ1bmN0aW9uIGZvcm1hdE51bWJlcih2YWwpIHsKICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCB8fCBpc05hTih2YWwpIHx8ICFpc0Zpbml0ZSh2YWwpKSByZXR1cm4gJ+KAlCc7CiAgICAgIGlmIChNYXRoLmFicyh2YWwpID49IDEwMDApIHsKICAgICAgICByZXR1cm4gdmFsLnRvRml4ZWQoMCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZywgJyAnKTsKICAgICAgfQogICAgICBpZiAoTWF0aC5hYnModmFsKSA+PSAxMCkgewogICAgICAgIHJldHVybiB2YWwudG9GaXhlZCgxKTsKICAgICAgfQogICAgICByZXR1cm4gdmFsLnRvRml4ZWQoMik7CiAgICB9CgogICAgZnVuY3Rpb24gZm9ybWF0SW50ZWdlcih2YWwpIHsKICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCB8fCBpc05hTih2YWwpIHx8ICFpc0Zpbml0ZSh2YWwpKSByZXR1cm4gJ+KAlCc7CiAgICAgIHJldHVybiBNYXRoLmNlaWwodmFsKS50b1N0cmluZygpOwogICAgfQoKICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHsKICAgICAgaWYgKCF2YWxpZGF0ZSgpKSB7CiAgICAgICAgcmVzdWx0U2luZ2xlLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgcmVzdWx0VG90YWwudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHRFZmZlY3RpdmUudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHROZWVkZWQudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHRDb3ZlcmFnZS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICBuZWVkZWRSb3cuc2V0QXR0cmlidXRlKCdkYXRhLWhpZGRlbicsICd0cnVlJyk7CiAgICAgICAgY292ZXJhZ2VSb3cuc2V0QXR0cmlidXRlKCdkYXRhLWhpZGRlbicsICd0cnVlJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgcmFkaXVzID0gcGFyc2VGbG9hdChyYWRpdXNJbnB1dC52YWx1ZSk7CiAgICAgIHZhciBhbmdsZSA9IHBhcnNlRmxvYXQoYW5nbGVJbnB1dC52YWx1ZSk7CiAgICAgIHZhciBjb3VudCA9IHBhcnNlSW50KGNvdW50SW5wdXQudmFsdWUsIDEwKTsKICAgICAgdmFyIG92ZXJsYXAgPSBwYXJzZUZsb2F0KG92ZXJsYXBJbnB1dC52YWx1ZSk7CiAgICAgIHZhciBhcmVhVmFsID0gYXJlYUlucHV0LnZhbHVlLnRyaW0oKTsKICAgICAgdmFyIGFyZWFOdW0gPSBhcmVhVmFsICE9PSAnJyA/IHBhcnNlRmxvYXQoYXJlYVZhbCkgOiBudWxsOwoKICAgICAgdmFyIHNpbmdsZUFyZWEgPSBNYXRoLlBJICogcmFkaXVzICogcmFkaXVzICogKGFuZ2xlIC8gMzYwKTsKICAgICAgdmFyIHRvdGFsQXJlYSA9IHNpbmdsZUFyZWEgKiBjb3VudDsKICAgICAgdmFyIGVmZmVjdGl2ZUFyZWEgPSB0b3RhbEFyZWEgKiAoMSAtIG92ZXJsYXAgLyAxMDApOwogICAgICB2YXIgZWZmZWN0aXZlU2luZ2xlID0gc2luZ2xlQXJlYSAqICgxIC0gb3ZlcmxhcCAvIDEwMCk7CgogICAgICByZXN1bHRTaW5nbGUudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIoc2luZ2xlQXJlYSk7CiAgICAgIHJlc3VsdFRvdGFsLnRleHRDb250ZW50ID0gZm9ybWF0TnVtYmVyKHRvdGFsQXJlYSk7CiAgICAgIHJlc3VsdEVmZmVjdGl2ZS50ZXh0Q29udGVudCA9IGZvcm1hdE51bWJlcihlZmZlY3RpdmVBcmVhKTsKCiAgICAgIGlmIChhcmVhTnVtICE9PSBudWxsICYmIGFyZWFOdW0gPiAwICYmIGVmZmVjdGl2ZVNpbmdsZSA+IDApIHsKICAgICAgICB2YXIgbmVlZGVkQ291bnQgPSBNYXRoLmNlaWwoYXJlYU51bSAvIGVmZmVjdGl2ZVNpbmdsZSk7CiAgICAgICAgdmFyIGNvdmVyYWdlUGVyY2VudCA9IChlZmZlY3RpdmVBcmVhIC8gYXJlYU51bSkgKiAxMDA7CiAgICAgICAgcmVzdWx0TmVlZGVkLnRleHRDb250ZW50ID0gZm9ybWF0SW50ZWdlcihuZWVkZWRDb3VudCk7CiAgICAgICAgcmVzdWx0Q292ZXJhZ2UudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIoY292ZXJhZ2VQZXJjZW50KTsKICAgICAgICBuZWVkZWRSb3cucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWhpZGRlbicpOwogICAgICAgIGNvdmVyYWdlUm93LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1oaWRkZW4nKTsKICAgICAgICBpZiAoY292ZXJhZ2VQZXJjZW50ID49IDk1ICYmIGNvdmVyYWdlUGVyY2VudCA8PSAxMzApIHsKICAgICAgICAgIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAn0J7RgtC70LjRh9C90L7QtSDQv9C+0LrRgNGL0YLQuNC1ISDQo9GH0LDRgdGC0L7QuiDQsdGD0LTQtdGCINC/0L7Qu9C40YIg0YDQsNCy0L3QvtC80LXRgNC90L4g0YEg0LTQvtGB0YLQsNGC0L7Rh9C90YvQvCDQt9Cw0L/QsNGB0L7QvC4nOwogICAgICAgIH0gZWxzZSBpZiAoY292ZXJhZ2VQZXJjZW50IDwgOTUpIHsKICAgICAgICAgIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAn0J/QvtC60YDRi9GC0LjQtSDQvNC10L3RjNGI0LUgOTUlIOKAlCDQtNC+0LHQsNCy0YzRgtC1INC00L7QttC00LXQstCw0YLQtdC70Lgg0LjQu9C4INGD0LLQtdC70LjRh9GM0YLQtSDRgNCw0LTQuNGD0YEg0LTQu9GPINC/0L7Qu9C90L7Qs9C+INC+0YXQstCw0YLQsCDRg9GH0LDRgdGC0LrQsC4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXN1bHROb3RlLnRleHRDb250ZW50ID0gJ9Cf0L7QutGA0YvRgtC40LUg0LLRi9GI0LUgMTMwJSDigJQg0LLQvtC30LzQvtC20L3Qviwg0LTQvtC20LTQtdCy0LDRgtC10LvQtdC5INCx0L7Qu9GM0YjQtSwg0YfQtdC8INC90YPQttC90L4uINCf0L7QtNGD0LzQsNC50YLQtSDQvtCxINGD0LzQtdC90YzRiNC10L3QuNC4INC40YUg0LrQvtC70LjRh9C10YHRgtCy0LAg0LTQu9GPINGN0LrQvtC90L7QvNC40Lgg0LLQvtC00YsuJzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVzdWx0TmVlZGVkLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgcmVzdWx0Q292ZXJhZ2UudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHROb3RlLnRleHRDb250ZW50ID0gYXJlYU51bSA9PT0gMCA/ICfQn9C70L7RidCw0LTRjCDRg9GH0LDRgdGC0LrQsCDRgNCw0LLQvdCwINC90YPQu9GOIOKAlCDQv9GA0L7QstC10YDRjNGC0LUg0LfQvdCw0YfQtdC90LjQtS4nIDogJyc7CiAgICAgICAgbmVlZGVkUm93LnNldEF0dHJpYnV0ZSgnZGF0YS1oaWRkZW4nLCAndHJ1ZScpOwogICAgICAgIGNvdmVyYWdlUm93LnNldEF0dHJpYnV0ZSgnZGF0YS1oaWRkZW4nLCAndHJ1ZScpOwogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIHJhZGl1c0lucHV0LnZhbHVlID0gJyc7CiAgICAgIGFuZ2xlSW5wdXQudmFsdWUgPSAnMzYwJzsKICAgICAgY291bnRJbnB1dC52YWx1ZSA9ICcxJzsKICAgICAgb3ZlcmxhcElucHV0LnZhbHVlID0gJzIwJzsKICAgICAgYXJlYUlucHV0LnZhbHVlID0gJyc7CiAgICAgIGNsZWFyRXJyb3JzKCk7CiAgICAgIHJlc3VsdFNpbmdsZS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICByZXN1bHRUb3RhbC50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICByZXN1bHRFZmZlY3RpdmUudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgcmVzdWx0TmVlZGVkLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgIHJlc3VsdENvdmVyYWdlLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAnJzsKICAgICAgbmVlZGVkUm93LnNldEF0dHJpYnV0ZSgnZGF0YS1oaWRkZW4nLCAndHJ1ZScpOwogICAgICBjb3ZlcmFnZVJvdy5zZXRBdHRyaWJ1dGUoJ2RhdGEtaGlkZGVuJywgJ3RydWUnKTsKICAgICAgc2V0QWN0aXZlQW5nbGVCdG4oMzYwKTsKICAgIH0KCiAgICBmdW5jdGlvbiBzZXRBY3RpdmVBbmdsZUJ0bihhbmdsZVZhbCkgewogICAgICBhbmdsZUJ0bnMuZm9yRWFjaChmdW5jdGlvbihidG4pIHsKICAgICAgICB2YXIgYnRuQW5nbGUgPSBwYXJzZUludChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFuZ2xlJyksIDEwKTsKICAgICAgICBpZiAoYnRuQW5nbGUgPT09IGFuZ2xlVmFsKSB7CiAgICAgICAgICBidG4uY2xhc3NMaXN0LmFkZCgnbm4tZ2VuLWNhbC1hbmdsZS1idG4tLWFjdGl2ZScpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBidG4uY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLWNhbC1hbmdsZS1idG4tLWFjdGl2ZScpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CgogICAgY2FsY0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGN1bGF0ZSk7CgogICAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldCk7CgogICAgYW5nbGVCdG5zLmZvckVhY2goZnVuY3Rpb24oYnRuKSB7CiAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBhbmdsZVZhbCA9IHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWFuZ2xlJyksIDEwKTsKICAgICAgICBhbmdsZUlucHV0LnZhbHVlID0gYW5nbGVWYWw7CiAgICAgICAgc2V0QWN0aXZlQW5nbGVCdG4oYW5nbGVWYWwpOwogICAgICAgIGNhbGN1bGF0ZSgpOwogICAgICB9KTsKICAgIH0pOwoKICAgIGFuZ2xlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgdmFyIHZhbCA9IHBhcnNlSW50KGFuZ2xlSW5wdXQudmFsdWUsIDEwKTsKICAgICAgaWYgKCFpc05hTih2YWwpKSB7CiAgICAgICAgc2V0QWN0aXZlQW5nbGVCdG4odmFsKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBhbmdsZUJ0bnMuZm9yRWFjaChmdW5jdGlvbihiKSB7IGIuY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLWNhbC1hbmdsZS1idG4tLWFjdGl2ZScpOyB9KTsKICAgICAgfQogICAgfSk7CgogICAgbmVlZGVkUm93LnNldEF0dHJpYnV0ZSgnZGF0YS1oaWRkZW4nLCAndHJ1ZScpOwogICAgY292ZXJhZ2VSb3cuc2V0QXR0cmlidXRlKCdkYXRhLWhpZGRlbicsICd0cnVlJyk7CiAgfSkoKTsK