# SPF проверка домена: как полностью защитить от спуфинга
### Введение
В 2024 году рост спуфинг‑инцидентов в России превысил 30 % – данные Kaspersky и Mail.ru подтверждают тревожную динамику. Ошибки в SPF‑записи снижают открываемость писем в среднем на 15 % и ухудшают репутацию домена, что приводит к потере доходов и росту расходов на восстановление доверия. Специалисты по email‑маркетингу и IT‑администраторы ищут практические инструменты, позволяющие быстро диагностировать и исправлять SPF‑записи; в этом контексте платформа [ Полный материал] ( https: //r...content-available-to-author-only...y.co/mzibaqdp) предлагает онлайн‑сервис для мгновенного анализа записей.
** По оценкам экспертов, каждая неверно настроенная SPF‑запись обходится бизнесу в среднем от 5 000 до 20 000 USD в виде упущенной выгоды и расходов на репутационный ремонт. ! [ SPF проверка домена: как полностью защитить от спуфинга] ( https: //p...content-available-to-author-only...t.link/uploads/generated-images/2026/03/1773163997114-ec620e6e.jpg) Целевая аудитория – компании, использующие несколько почтовых сервисов (Google Workspace, Yandex 360, сторонние ESP), а также маркетологи, которым важна доставляемость рассылок. В статье рассматриваются фундаментальные принципы SPF, типичные ошибки и практические методики их устранения, а также примеры реальных проектов, где корректировка записи привела к измеримому росту репутации. Полный материал: SPF проверка домена – фундаментальные принципы и типичные ошибки Глубокий разбор механизмов SPF‑записи Расширенный чеклист внедрения и аудита SPF Кейсы из практики: исправление SPF‑записей в крупных проектах Методики повышения эффективности SPF‑защиты в сочетании с DMARC и DKIM Полный материал: SPF проверка домена – фундаментальные принципы и типичные ошибки Запись SPF начинается с префикса v=spf1 и содержит набор механизмов, проверяющих IP‑адрес отправителя. Основные элементы – ip4 , ip6 , include , redirect и завершающий all с модификатором ( ~all , -all , ?all ). При получении письма сервер‑получатель последовательно проверяет каждый механизм, пока не найдёт совпадение. Ключевые ошибки включают отсутствие записи (permerror), превышение лимита в 10 DNS‑запросов и конфликтные политики ( ~all против -all ). Превышение лимита приводит к отклонению сообщения получателем, а неправильный модификатор может позволить спуфинг‑атаки пройти проверку. По данным Kaspersky, домены без корректного SPF теряют до 20 % доставляемости, а компании, исправившие запись, наблюдают рост открываемости на 10 %. Статистика Mail.ru показывает, что более 80 % крупных почтовых сервисов требуют валидный SPF; иначе письма автоматически попадают в спам‑категорию. Поэтому первая задача – убедиться, что запись существует, укладывается в ограничения и правильно отражает все отправляющие источники. Глубокий разбор механизмов SPF‑записи ip4 / ip6.** Диапазоны задаются в CIDR‑нотации, например ip4:192.0.2.0/24 или ip6:2001:db8::/32. Важно указывать только те подсети, которые действительно используют ваши серверы, иначе открывается возможность для злоумышленников. При добавлении новых серверов рекомендуется обновлять запись в рамках принципа «минимальный доступ».
** include.** Механизм позволяет вложить чужую SPF‑запись, что удобно при работе с сервисами Google Workspace ( include: _spf.google .com ) или SendGrid. Однако каждый include генерирует отдельный DNS‑запрос; цепочки из нескольких include могут быстро превысить лимит в 10 запросов. Для оптимизации используют «flattening» – замену вложенных записей прямыми ip4/ ip6 диапазонами.
** redirect и exp.
** redirect передаёт проверку полностью другому домену, что удобно при управлении несколькими субдоменами через одну политику.
exp задаёт
URL с объяснением причины отказа, но его использование ограничено и редко требуется. При комбинировании redirect и include необходимо тщательно проверять отсутствие дублирования IP‑адресов, иначе возникнет конфликт «permerror».
### Расширенный чеклист внедрения и аудита SPF
1 . ** Подготовка.** Составьте инвентарь всех сервисов, отправляющих письма от имени домена: собственный SMTP‑relay, ESP ( Mailchimp, SendPulse) , CRM‑системы, сервисы уведомлений. Сохраните их IP‑адреса и диапазоны, а также список субдоменов ( mail.example .com , newsletter.example .com ) , которые могут использовать отдельные записи.
2 . ** Конфигурация.** На основе инвентаря сформируйте запись, придерживаясь принципа «least privilege»: включайте только необходимые IP‑диапазоны и минимальное количество include . При необходимости выполните flattening, чтобы не превышать 10 DNS‑запросов. Пример оптимизированной записи: v= spf1 ip4: 203.0.113.0/ 24 ip6: 2001 : db8: abcd::/ 48 include: _spf.google .com - all .
3 . ** Верификация.** Запустите проверку через онлайн‑валидаторы, такие как MXToolbox, а также через собственный скрипт dig + short TXT example.com . Сравните результаты с DMARC‑отчетами, чтобы убедиться, что SPF‑провалы не приводят к «softfail».
4 . ** Мониторинг.** Настройте автоматический сбор SPF‑отчетов в SIEM‑системе ( Splunk, Elastic) и оповещения о превышении лимита запросов. Регулярно ( раз в квартал) обновляйте IP‑списки и проверяйте новые субдомены, чтобы запись оставалась актуальной.
### Кейсы из практики: исправление SPF‑записей в крупных проектах
** Кейс 1 .** Интернет‑магазин использовал 12 разных почтовых сервисов, что привело к 8 вложенным include и частым ошибкам «permerror». После анализа было решено заменить 5 include на прямые ip4 диапазоны, сократив общее количество запросов до 4 . В результате отказов SPF упал на 22 % , а показатель Sender Score вырос на 12 пунктов.
** Кейс 2 .** Корпоративный домен с дата‑центрами в Европе и Азии имел распределённые IP‑блоки. Вместо использования include: _spf.mailchimp .com для каждого региона команда внедрила единые ip4 диапазоны, покрывающие все серверы. Это позволило уменьшить количество DNS‑запросов до 3 и повысить репутацию в Sender Score на 15 баллов, что отразилось на росте открываемости писем на 9 % .
** Кейс 3 .** При миграции на облачную почту была изменена политика с ~all на - all без корректировки списка IP‑адресов. В результате доставляемость упала до 45 % . После возврата к ~all и добавления недостающих IP‑диапазонов в запись, уровень доставляемости восстановился за три дня, а количество жалоб в DMARC‑отчётах сократилось вдвое.
### Методики повышения эффективности SPF‑защиты в сочетании с DMARC и DKIM
Синергия SPF + DMARC позволяет задавать строгую политику ( p= reject ) после подтверждения корректности SPF. При этом DKIM‑подпись служит резервным механизмом: если SPF‑провал, но DKIM‑проверка проходит, письмо всё равно может быть доставлено, что повышает устойчивость к ошибкам конфигурации.
Регулярный аудит записей, включающий квартальный пересмотр IP‑списков и проверку новых субдоменов, минимизирует риск «permerror». Интеграция с SIEM‑платформами обеспечивает автоматическое обнаружение отклонений и быстрый отклик на инциденты. По данным исследования [ Wikipedia] ( https: //e...content-available-to-author-only...a.org/wiki/Sender_Policy_Framework), более 80 % крупных почтовых сервисов требуют валидный SPF, а совместное использование SPF, DKIM и DMARC сокращает спуфинг‑атаки более чем на 90 %.
Для дальнейшего усиления защиты рекомендуется внедрять BIMI ( Brand Indicators for Message Identification) – отображение логотипа в почтовом клиенте, которое требует строгой DMARC‑политики и корректного SPF. AI ‑поддержка уже помогает предсказывать аномалии в цепочках include и автоматически предлагать flattening, что упрощает поддержание записи в актуальном состоянии.
### Заключение
Корректный SPF‑запись – фундаментальная защита от подделки адреса, повышающая доставляемость и репутацию бренда. Применяя описанный чеклист, регулярно проводя аудит и используя автоматизацию через SIEM и AI‑инструменты, организации могут снизить финансовые потери от спуфинга и обеспечить стабильный рост открываемости писем. Для получения более детального руководства и практических рекомендаций обратитесь к [ детальный разбор] ( https: //r...content-available-to-author-only...y.co/mzibaqdp), где собраны шаблоны записей, примеры flattening и инструкции по интеграции с DMARC‑политиками. Регулярные обновления IP‑списков, мониторинг лимита DNS‑запросов и совместное использование SPF, DKIM и DMARC создают надёжный барьер против спуфинг‑угроз в 2024 году и в дальнейшем.
### Ключевые выводы
- Корректно сконфигурированная SPF‑запись повышает доставляемость писем в среднем на 10 ‑15 % .
- Необходимо соблюдать лимит в 10 DNS‑запросов; при превышении происходит «permerror» и письма отклоняются.
- Flattening — эффективный способ уменьшить количество запросов без потери точности.
- Сочетание SPF, DKIM и DMARC обеспечивает более 90 % защиту от спуфинг‑атак.
- Регулярный мониторинг через SIEM и автоматические оповещения позволяют быстро реагировать на изменения в инфраструктуре./* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
IyBTUEYg0L/RgNC+0LLQtdGA0LrQsCDQtNC+0LzQtdC90LA6INC60LDQuiDQv9C+0LvQvdC+0YHRgtGM0Y4g0LfQsNGJ0LjRgtC40YLRjCDQvtGCINGB0L/Rg9GE0LjQvdCz0LAKCiMjIyDQktCy0LXQtNC10L3QuNC1CgrQkiAyMDI0INCz0L7QtNGDINGA0L7RgdGCINGB0L/Rg9GE0LjQvdCz4oCR0LjQvdGG0LjQtNC10L3RgtC+0LIg0LIg0KDQvtGB0YHQuNC4INC/0YDQtdCy0YvRgdC40LsgMzAgJSDigJMg0LTQsNC90L3Ri9C1IEthc3BlcnNreSDQuCBNYWlsLnJ1INC/0L7QtNGC0LLQtdGA0LbQtNCw0Y7RgiDRgtGA0LXQstC+0LbQvdGD0Y4g0LTQuNC90LDQvNC40LrRgy4g0J7RiNC40LHQutC4INCyIFNQRuKAkdC30LDQv9C40YHQuCDRgdC90LjQttCw0Y7RgiDQvtGC0LrRgNGL0LLQsNC10LzQvtGB0YLRjCDQv9C40YHQtdC8INCyINGB0YDQtdC00L3QtdC8INC90LAgMTUgJSDQuCDRg9GF0YPQtNGI0LDRjtGCINGA0LXQv9GD0YLQsNGG0LjRjiDQtNC+0LzQtdC90LAsINGH0YLQviDQv9GA0LjQstC+0LTQuNGCINC6INC/0L7RgtC10YDQtSDQtNC+0YXQvtC00L7QsiDQuCDRgNC+0YHRgtGDINGA0LDRgdGF0L7QtNC+0LIg0L3QsCDQstC+0YHRgdGC0LDQvdC+0LLQu9C10L3QuNC1INC00L7QstC10YDQuNGPLiDQodC/0LXRhtC40LDQu9C40YHRgtGLINC/0L4gZW1haWzigJHQvNCw0YDQutC10YLQuNC90LPRgyDQuCBJVOKAkdCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0Ysg0LjRidGD0YIg0L/RgNCw0LrRgtC40YfQtdGB0LrQuNC1INC40L3RgdGC0YDRg9C80LXQvdGC0YssINC/0L7Qt9Cy0L7Qu9GP0Y7RidC40LUg0LHRi9GB0YLRgNC+INC00LjQsNCz0L3QvtGB0YLQuNGA0L7QstCw0YLRjCDQuCDQuNGB0L/RgNCw0LLQu9GP0YLRjCBTUEbigJHQt9Cw0L/QuNGB0Lg7INCyINGN0YLQvtC8INC60L7QvdGC0LXQutGB0YLQtSDQv9C70LDRgtGE0L7RgNC80LAgW9Cf0L7Qu9C90YvQuSDQvNCw0YLQtdGA0LjQsNC7XShodHRwczovL3IuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnkuY28vbXppYmFxZHApINC/0YDQtdC00LvQsNCz0LDQtdGCINC+0L3Qu9Cw0LnQveKAkdGB0LXRgNCy0LjRgSDQtNC70Y8g0LzQs9C90L7QstC10L3QvdC+0LPQviDQsNC90LDQu9C40LfQsCDQt9Cw0L/QuNGB0LXQuS4KCioq0J/QviDQvtGG0LXQvdC60LDQvCDRjdC60YHQv9C10YDRgtC+0LIsINC60LDQttC00LDRjyDQvdC10LLQtdGA0L3QviDQvdCw0YHRgtGA0L7QtdC90L3QsNGPIFNQRuKAkdC30LDQv9C40YHRjCDQvtCx0YXQvtC00LjRgtGB0Y8g0LHQuNC30L3QtdGB0YMg0LIg0YHRgNC10LTQvdC10Lwg0L7RgiA1IDAwMCDQtNC+IDIwIDAwMCBVU0Qg0LIg0LLQuNC00LUg0YPQv9GD0YnQtdC90L3QvtC5INCy0YvQs9C+0LTRiyDQuCDRgNCw0YHRhdC+0LTQvtCyINC90LAg0YDQtdC/0YPRgtCw0YbQuNC+0L3QvdGL0Lkg0YDQtdC80L7QvdGCLiAhW1NQRiDQv9GA0L7QstC10YDQutCwINC00L7QvNC10L3QsDog0LrQsNC6INC/0L7Qu9C90L7RgdGC0YzRjiDQt9Cw0YnQuNGC0LjRgtGMINC+0YIg0YHQv9GD0YTQuNC90LPQsF0oaHR0cHM6Ly9wLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi50LmxpbmsvdXBsb2Fkcy9nZW5lcmF0ZWQtaW1hZ2VzLzIwMjYvMDMvMTc3MzE2Mzk5NzExNC1lYzYyMGU2ZS5qcGcpINCm0LXQu9C10LLQsNGPINCw0YPQtNC40YLQvtGA0LjRjyDigJMg0LrQvtC80L/QsNC90LjQuCwg0LjRgdC/0L7Qu9GM0LfRg9GO0YnQuNC1INC90LXRgdC60L7Qu9GM0LrQviDQv9C+0YfRgtC+0LLRi9GFINGB0LXRgNCy0LjRgdC+0LIgKEdvb2dsZSBXb3Jrc3BhY2UsIFlhbmRleCAzNjAsINGB0YLQvtGA0L7QvdC90LjQtSBFU1ApLCDQsCDRgtCw0LrQttC1INC80LDRgNC60LXRgtC+0LvQvtCz0LgsINC60L7RgtC+0YDRi9C8INCy0LDQttC90LAg0LTQvtGB0YLQsNCy0LvRj9C10LzQvtGB0YLRjCDRgNCw0YHRgdGL0LvQvtC6LiDQkiDRgdGC0LDRgtGM0LUg0YDQsNGB0YHQvNCw0YLRgNC40LLQsNGO0YLRgdGPINGE0YPQvdC00LDQvNC10L3RgtCw0LvRjNC90YvQtSDQv9GA0LjQvdGG0LjQv9GLIFNQRiwg0YLQuNC/0LjRh9C90YvQtSDQvtGI0LjQsdC60Lgg0Lgg0L/RgNCw0LrRgtC40YfQtdGB0LrQuNC1INC80LXRgtC+0LTQuNC60Lgg0LjRhSDRg9GB0YLRgNCw0L3QtdC90LjRjywg0LAg0YLQsNC60LbQtSDQv9GA0LjQvNC10YDRiyDRgNC10LDQu9GM0L3Ri9GFINC/0YDQvtC10LrRgtC+0LIsINCz0LTQtSDQutC+0YDRgNC10LrRgtC40YDQvtCy0LrQsCDQt9Cw0L/QuNGB0Lgg0L/RgNC40LLQtdC70LAg0Log0LjQt9C80LXRgNC40LzQvtC80YMg0YDQvtGB0YLRgyDRgNC10L/Rg9GC0LDRhtC40LguINCf0L7Qu9C90YvQuSDQvNCw0YLQtdGA0LjQsNC7OiBTUEYg0L/RgNC+0LLQtdGA0LrQsCDQtNC+0LzQtdC90LAg4oCTINGE0YPQvdC00LDQvNC10L3RgtCw0LvRjNC90YvQtSDQv9GA0LjQvdGG0LjQv9GLINC4INGC0LjQv9C40YfQvdGL0LUg0L7RiNC40LHQutC4INCT0LvRg9Cx0L7QutC40Lkg0YDQsNC30LHQvtGAINC80LXRhdCw0L3QuNC30LzQvtCyIFNQRuKAkdC30LDQv9C40YHQuCDQoNCw0YHRiNC40YDQtdC90L3Ri9C5INGH0LXQutC70LjRgdGCINCy0L3QtdC00YDQtdC90LjRjyDQuCDQsNGD0LTQuNGC0LAgU1BGINCa0LXQudGB0Ysg0LjQtyDQv9GA0LDQutGC0LjQutC4OiDQuNGB0L/RgNCw0LLQu9C10L3QuNC1IFNQRuKAkdC30LDQv9C40YHQtdC5INCyINC60YDRg9C/0L3Ri9GFINC/0YDQvtC10LrRgtCw0YUg0JzQtdGC0L7QtNC40LrQuCDQv9C+0LLRi9GI0LXQvdC40Y8g0Y3RhNGE0LXQutGC0LjQstC90L7RgdGC0LggU1BG4oCR0LfQsNGJ0LjRgtGLINCyINGB0L7Rh9C10YLQsNC90LjQuCDRgSBETUFSQyDQuCBES0lNINCf0L7Qu9C90YvQuSDQvNCw0YLQtdGA0LjQsNC7OiBTUEYg0L/RgNC+0LLQtdGA0LrQsCDQtNC+0LzQtdC90LAg4oCTINGE0YPQvdC00LDQvNC10L3RgtCw0LvRjNC90YvQtSDQv9GA0LjQvdGG0LjQv9GLINC4INGC0LjQv9C40YfQvdGL0LUg0L7RiNC40LHQutC4INCX0LDQv9C40YHRjCBTUEYg0L3QsNGH0LjQvdCw0LXRgtGB0Y8g0YEg0L/RgNC10YTQuNC60YHQsCB2PXNwZjEg0Lgg0YHQvtC00LXRgNC20LjRgiDQvdCw0LHQvtGAINC80LXRhdCw0L3QuNC30LzQvtCyLCDQv9GA0L7QstC10YDRj9GO0YnQuNGFIElQ4oCR0LDQtNGA0LXRgSDQvtGC0L/RgNCw0LLQuNGC0LXQu9GPLiDQntGB0L3QvtCy0L3Ri9C1INGN0LvQtdC80LXQvdGC0Ysg4oCTIGlwNCAsIGlwNiAsIGluY2x1ZGUgLCByZWRpcmVjdCDQuCDQt9Cw0LLQtdGA0YjQsNGO0YnQuNC5IGFsbCDRgSDQvNC+0LTQuNGE0LjQutCw0YLQvtGA0L7QvCAoIH5hbGwgLCAtYWxsICwgP2FsbCApLiDQn9GA0Lgg0L/QvtC70YPRh9C10L3QuNC4INC/0LjRgdGM0LzQsCDRgdC10YDQstC10YDigJHQv9C+0LvRg9GH0LDRgtC10LvRjCDQv9C+0YHQu9C10LTQvtCy0LDRgtC10LvRjNC90L4g0L/RgNC+0LLQtdGA0Y/QtdGCINC60LDQttC00YvQuSDQvNC10YXQsNC90LjQt9C8LCDQv9C+0LrQsCDQvdC1INC90LDQudC00ZHRgiDRgdC+0LLQv9Cw0LTQtdC90LjQtS4g0JrQu9GO0YfQtdCy0YvQtSDQvtGI0LjQsdC60Lgg0LLQutC70Y7Rh9Cw0Y7RgiDQvtGC0YHRg9GC0YHRgtCy0LjQtSDQt9Cw0L/QuNGB0LggKHBlcm1lcnJvciksINC/0YDQtdCy0YvRiNC10L3QuNC1INC70LjQvNC40YLQsCDQsiAxMCBETlPigJHQt9Cw0L/RgNC+0YHQvtCyINC4INC60L7QvdGE0LvQuNC60YLQvdGL0LUg0L/QvtC70LjRgtC40LrQuCAoIH5hbGwg0L/RgNC+0YLQuNCyIC1hbGwgKS4g0J/RgNC10LLRi9GI0LXQvdC40LUg0LvQuNC80LjRgtCwINC/0YDQuNCy0L7QtNC40YIg0Log0L7RgtC60LvQvtC90LXQvdC40Y4g0YHQvtC+0LHRidC10L3QuNGPINC/0L7Qu9GD0YfQsNGC0LXQu9C10LwsINCwINC90LXQv9GA0LDQstC40LvRjNC90YvQuSDQvNC+0LTQuNGE0LjQutCw0YLQvtGAINC80L7QttC10YIg0L/QvtC30LLQvtC70LjRgtGMINGB0L/Rg9GE0LjQvdCz4oCR0LDRgtCw0LrQuCDQv9GA0L7QudGC0Lgg0L/RgNC+0LLQtdGA0LrRgy4g0J/QviDQtNCw0L3QvdGL0LwgS2FzcGVyc2t5LCDQtNC+0LzQtdC90Ysg0LHQtdC3INC60L7RgNGA0LXQutGC0L3QvtCz0L4gU1BGINGC0LXRgNGP0Y7RgiDQtNC+IDIwICUg0LTQvtGB0YLQsNCy0LvRj9C10LzQvtGB0YLQuCwg0LAg0LrQvtC80L/QsNC90LjQuCwg0LjRgdC/0YDQsNCy0LjQstGI0LjQtSDQt9Cw0L/QuNGB0YwsINC90LDQsdC70Y7QtNCw0Y7RgiDRgNC+0YHRgiDQvtGC0LrRgNGL0LLQsNC10LzQvtGB0YLQuCDQvdCwIDEwICUuINCh0YLQsNGC0LjRgdGC0LjQutCwIE1haWwucnUg0L/QvtC60LDQt9GL0LLQsNC10YIsINGH0YLQviDQsdC+0LvQtdC1IDgwICUg0LrRgNGD0L/QvdGL0YUg0L/QvtGH0YLQvtCy0YvRhSDRgdC10YDQstC40YHQvtCyINGC0YDQtdCx0YPRjtGCINCy0LDQu9C40LTQvdGL0LkgU1BGOyDQuNC90LDRh9C1INC/0LjRgdGM0LzQsCDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQv9C+0L/QsNC00LDRjtGCINCyINGB0L/QsNC84oCR0LrQsNGC0LXQs9C+0YDQuNGOLiDQn9C+0Y3RgtC+0LzRgyDQv9C10YDQstCw0Y8g0LfQsNC00LDRh9CwIOKAkyDRg9Cx0LXQtNC40YLRjNGB0Y8sINGH0YLQviDQt9Cw0L/QuNGB0Ywg0YHRg9GJ0LXRgdGC0LLRg9C10YIsINGD0LrQu9Cw0LTRi9Cy0LDQtdGC0YHRjyDQsiDQvtCz0YDQsNC90LjRh9C10L3QuNGPINC4INC/0YDQsNCy0LjQu9GM0L3QviDQvtGC0YDQsNC20LDQtdGCINCy0YHQtSDQvtGC0L/RgNCw0LLQu9GP0Y7RidC40LUg0LjRgdGC0L7Rh9C90LjQutC4LiDQk9C70YPQsdC+0LrQuNC5INGA0LDQt9Cx0L7RgCDQvNC10YXQsNC90LjQt9C80L7QsiBTUEbigJHQt9Cw0L/QuNGB0LggaXA0IC8gaXA2LioqINCU0LjQsNC/0LDQt9C+0L3RiyDQt9Cw0LTQsNGO0YLRgdGPINCyIENJRFLigJHQvdC+0YLQsNGG0LjQuCwg0L3QsNC/0YDQuNC80LXRgCBpcDQ6MTkyLjAuMi4wLzI0INC40LvQuCBpcDY6MjAwMTpkYjg6Oi8zMi4g0JLQsNC20L3QviDRg9C60LDQt9GL0LLQsNGC0Ywg0YLQvtC70YzQutC+INGC0LUg0L/QvtC00YHQtdGC0LgsINC60L7RgtC+0YDRi9C1INC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INC40YHQv9C+0LvRjNC30YPRjtGCINCy0LDRiNC4INGB0LXRgNCy0LXRgNGLLCDQuNC90LDRh9C1INC+0YLQutGA0YvQstCw0LXRgtGB0Y8g0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQtNC70Y8g0LfQu9C+0YPQvNGL0YjQu9C10L3QvdC40LrQvtCyLiDQn9GA0Lgg0LTQvtCx0LDQstC70LXQvdC40Lgg0L3QvtCy0YvRhSDRgdC10YDQstC10YDQvtCyINGA0LXQutC+0LzQtdC90LTRg9C10YLRgdGPINC+0LHQvdC+0LLQu9GP0YLRjCDQt9Cw0L/QuNGB0Ywg0LIg0YDQsNC80LrQsNGFINC/0YDQuNC90YbQuNC/0LAgwqvQvNC40L3QuNC80LDQu9GM0L3Ri9C5INC00L7RgdGC0YPQv8K7LgoKKippbmNsdWRlLioqINCc0LXRhdCw0L3QuNC30Lwg0L/QvtC30LLQvtC70Y/QtdGCINCy0LvQvtC20LjRgtGMINGH0YPQttGD0Y4gU1BG4oCR0LfQsNC/0LjRgdGMLCDRh9GC0L4g0YPQtNC+0LHQvdC+INC/0YDQuCDRgNCw0LHQvtGC0LUg0YEg0YHQtdGA0LLQuNGB0LDQvNC4IEdvb2dsZSBXb3Jrc3BhY2UgKCBpbmNsdWRlOl9zcGYuZ29vZ2xlLmNvbSApINC40LvQuCBTZW5kR3JpZC4g0J7QtNC90LDQutC+INC60LDQttC00YvQuSBpbmNsdWRlINCz0LXQvdC10YDQuNGA0YPQtdGCINC+0YLQtNC10LvRjNC90YvQuSBETlPigJHQt9Cw0L/RgNC+0YE7INGG0LXQv9C+0YfQutC4INC40Lcg0L3QtdGB0LrQvtC70YzQutC40YUgaW5jbHVkZSDQvNC+0LPRg9GCINCx0YvRgdGC0YDQviDQv9GA0LXQstGL0YHQuNGC0Ywg0LvQuNC80LjRgiDQsiAxMCDQt9Cw0L/RgNC+0YHQvtCyLiDQlNC70Y8g0L7Qv9GC0LjQvNC40LfQsNGG0LjQuCDQuNGB0L/QvtC70YzQt9GD0Y7RgiDCq2ZsYXR0ZW5pbmfCuyDigJMg0LfQsNC80LXQvdGDINCy0LvQvtC20LXQvdC90YvRhSDQt9Cw0L/QuNGB0LXQuSDQv9GA0Y/QvNGL0LzQuCBpcDQvaXA2INC00LjQsNC/0LDQt9C+0L3QsNC80LguCgoqKnJlZGlyZWN0INC4IGV4cC4qKiByZWRpcmVjdCDQv9C10YDQtdC00LDRkdGCINC/0YDQvtCy0LXRgNC60YMg0L/QvtC70L3QvtGB0YLRjNGOINC00YDRg9Cz0L7QvNGDINC00L7QvNC10L3Rgywg0YfRgtC+INGD0LTQvtCx0L3QviDQv9GA0Lgg0YPQv9GA0LDQstC70LXQvdC40Lgg0L3QtdGB0LrQvtC70YzQutC40LzQuCDRgdGD0LHQtNC+0LzQtdC90LDQvNC4INGH0LXRgNC10Lcg0L7QtNC90YMg0L/QvtC70LjRgtC40LrRgy4gZXhwINC30LDQtNCw0ZHRgiBVUkwg0YEg0L7QsdGK0Y/RgdC90LXQvdC40LXQvCDQv9GA0LjRh9C40L3RiyDQvtGC0LrQsNC30LAsINC90L4g0LXQs9C+INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INC+0LPRgNCw0L3QuNGH0LXQvdC+INC4INGA0LXQtNC60L4g0YLRgNC10LHRg9C10YLRgdGPLiDQn9GA0Lgg0LrQvtC80LHQuNC90LjRgNC+0LLQsNC90LjQuCByZWRpcmVjdCDQuCBpbmNsdWRlINC90LXQvtCx0YXQvtC00LjQvNC+INGC0YnQsNGC0LXQu9GM0L3QviDQv9GA0L7QstC10YDRj9GC0Ywg0L7RgtGB0YPRgtGB0YLQstC40LUg0LTRg9Cx0LvQuNGA0L7QstCw0L3QuNGPIElQ4oCR0LDQtNGA0LXRgdC+0LIsINC40L3QsNGH0LUg0LLQvtC30L3QuNC60L3QtdGCINC60L7QvdGE0LvQuNC60YIgwqtwZXJtZXJyb3LCuy4KCiMjIyDQoNCw0YHRiNC40YDQtdC90L3Ri9C5INGH0LXQutC70LjRgdGCINCy0L3QtdC00YDQtdC90LjRjyDQuCDQsNGD0LTQuNGC0LAgU1BGCgoxLiAqKtCf0L7QtNCz0L7RgtC+0LLQutCwLioqINCh0L7RgdGC0LDQstGM0YLQtSDQuNC90LLQtdC90YLQsNGA0Ywg0LLRgdC10YUg0YHQtdGA0LLQuNGB0L7Qsiwg0L7RgtC/0YDQsNCy0LvRj9GO0YnQuNGFINC/0LjRgdGM0LzQsCDQvtGCINC40LzQtdC90Lgg0LTQvtC80LXQvdCwOiDRgdC+0LHRgdGC0LLQtdC90L3Ri9C5IFNNVFDigJFyZWxheSwgRVNQIChNYWlsY2hpbXAsIFNlbmRQdWxzZSksIENSTeKAkdGB0LjRgdGC0LXQvNGLLCDRgdC10YDQstC40YHRiyDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5LiDQodC+0YXRgNCw0L3QuNGC0LUg0LjRhSBJUOKAkdCw0LTRgNC10YHQsCDQuCDQtNC40LDQv9Cw0LfQvtC90YssINCwINGC0LDQutC20LUg0YHQv9C40YHQvtC6INGB0YPQsdC00L7QvNC10L3QvtCyIChtYWlsLmV4YW1wbGUuY29tLCBuZXdzbGV0dGVyLmV4YW1wbGUuY29tKSwg0LrQvtGC0L7RgNGL0LUg0LzQvtCz0YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L7RgtC00LXQu9GM0L3Ri9C1INC30LDQv9C40YHQuC4KCjIuICoq0JrQvtC90YTQuNCz0YPRgNCw0YbQuNGPLioqINCd0LAg0L7RgdC90L7QstC1INC40L3QstC10L3RgtCw0YDRjyDRgdGE0L7RgNC80LjRgNGD0LnRgtC1INC30LDQv9C40YHRjCwg0L/RgNC40LTQtdGA0LbQuNCy0LDRj9GB0Ywg0L/RgNC40L3RhtC40L/QsCDCq2xlYXN0IHByaXZpbGVnZcK7OiDQstC60LvRjtGH0LDQudGC0LUg0YLQvtC70YzQutC+INC90LXQvtCx0YXQvtC00LjQvNGL0LUgSVDigJHQtNC40LDQv9Cw0LfQvtC90Ysg0Lgg0LzQuNC90LjQvNCw0LvRjNC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviBpbmNsdWRlIC4g0J/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4INCy0YvQv9C+0LvQvdC40YLQtSBmbGF0dGVuaW5nLCDRh9GC0L7QsdGLINC90LUg0L/RgNC10LLRi9GI0LDRgtGMIDEwIEROU+KAkdC30LDQv9GA0L7RgdC+0LIuINCf0YDQuNC80LXRgCDQvtC/0YLQuNC80LjQt9C40YDQvtCy0LDQvdC90L7QuSDQt9Cw0L/QuNGB0Lg6IHY9c3BmMSBpcDQ6MjAzLjAuMTEzLjAvMjQgaXA2OjIwMDE6ZGI4OmFiY2Q6Oi80OCBpbmNsdWRlOl9zcGYuZ29vZ2xlLmNvbSAtYWxsIC4KCjMuICoq0JLQtdGA0LjRhNC40LrQsNGG0LjRjy4qKiDQl9Cw0L/Rg9GB0YLQuNGC0LUg0L/RgNC+0LLQtdGA0LrRgyDRh9C10YDQtdC3INC+0L3Qu9Cw0LnQveKAkdCy0LDQu9C40LTQsNGC0L7RgNGLLCDRgtCw0LrQuNC1INC60LDQuiBNWFRvb2xib3gsINCwINGC0LDQutC20LUg0YfQtdGA0LXQtyDRgdC+0LHRgdGC0LLQtdC90L3Ri9C5INGB0LrRgNC40L/RgiBkaWcgK3Nob3J0IFRYVCBleGFtcGxlLmNvbSAuINCh0YDQsNCy0L3QuNGC0LUg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0YEgRE1BUkPigJHQvtGC0YfQtdGC0LDQvNC4LCDRh9GC0L7QsdGLINGD0LHQtdC00LjRgtGM0YHRjywg0YfRgtC+IFNQRuKAkdC/0YDQvtCy0LDQu9GLINC90LUg0L/RgNC40LLQvtC00Y/RgiDQuiDCq3NvZnRmYWlswrsuCgo0LiAqKtCc0L7QvdC40YLQvtGA0LjQvdCzLioqINCd0LDRgdGC0YDQvtC50YLQtSDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuNC5INGB0LHQvtGAIFNQRuKAkdC+0YLRh9C10YLQvtCyINCyIFNJRU3igJHRgdC40YHRgtC10LzQtSAoU3BsdW5rLCBFbGFzdGljKSDQuCDQvtC/0L7QstC10YnQtdC90LjRjyDQviDQv9GA0LXQstGL0YjQtdC90LjQuCDQu9C40LzQuNGC0LAg0LfQsNC/0YDQvtGB0L7Qsi4g0KDQtdCz0YPQu9GP0YDQvdC+ICjRgNCw0Lcg0LIg0LrQstCw0YDRgtCw0LspINC+0LHQvdC+0LLQu9GP0LnRgtC1IElQ4oCR0YHQv9C40YHQutC4INC4INC/0YDQvtCy0LXRgNGP0LnRgtC1INC90L7QstGL0LUg0YHRg9Cx0LTQvtC80LXQvdGLLCDRh9GC0L7QsdGLINC30LDQv9C40YHRjCDQvtGB0YLQsNCy0LDQu9Cw0YHRjCDQsNC60YLRg9Cw0LvRjNC90L7QuS4KCiMjIyDQmtC10LnRgdGLINC40Lcg0L/RgNCw0LrRgtC40LrQuDog0LjRgdC/0YDQsNCy0LvQtdC90LjQtSBTUEbigJHQt9Cw0L/QuNGB0LXQuSDQsiDQutGA0YPQv9C90YvRhSDQv9GA0L7QtdC60YLQsNGFCgoqKtCa0LXQudGBIDEuKiog0JjQvdGC0LXRgNC90LXRguKAkdC80LDQs9Cw0LfQuNC9INC40YHQv9C+0LvRjNC30L7QstCw0LsgMTIg0YDQsNC30L3Ri9GFINC/0L7Rh9GC0L7QstGL0YUg0YHQtdGA0LLQuNGB0L7Qsiwg0YfRgtC+INC/0YDQuNCy0LXQu9C+INC6IDgg0LLQu9C+0LbQtdC90L3Ri9C8IGluY2x1ZGUg0Lgg0YfQsNGB0YLRi9C8INC+0YjQuNCx0LrQsNC8IMKrcGVybWVycm9ywrsuINCf0L7RgdC70LUg0LDQvdCw0LvQuNC30LAg0LHRi9C70L4g0YDQtdGI0LXQvdC+INC30LDQvNC10L3QuNGC0YwgNSBpbmNsdWRlINC90LAg0L/RgNGP0LzRi9C1IGlwNCDQtNC40LDQv9Cw0LfQvtC90YssINGB0L7QutGA0LDRgtC40LIg0L7QsdGJ0LXQtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQt9Cw0L/RgNC+0YHQvtCyINC00L4gNC4g0JIg0YDQtdC30YPQu9GM0YLQsNGC0LUg0L7RgtC60LDQt9C+0LIgU1BGINGD0L/QsNC7INC90LAgMjIgJSwg0LAg0L/QvtC60LDQt9Cw0YLQtdC70YwgU2VuZGVyIFNjb3JlINCy0YvRgNC+0YEg0L3QsCAxMiDQv9GD0L3QutGC0L7Qsi4KCioq0JrQtdC50YEgMi4qKiDQmtC+0YDQv9C+0YDQsNGC0LjQstC90YvQuSDQtNC+0LzQtdC9INGBINC00LDRgtCw4oCR0YbQtdC90YLRgNCw0LzQuCDQsiDQldCy0YDQvtC/0LUg0Lgg0JDQt9C40Lgg0LjQvNC10Lsg0YDQsNGB0L/RgNC10LTQtdC70ZHQvdC90YvQtSBJUOKAkdCx0LvQvtC60LguINCS0LzQtdGB0YLQviDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyBpbmNsdWRlOl9zcGYubWFpbGNoaW1wLmNvbSDQtNC70Y8g0LrQsNC20LTQvtCz0L4g0YDQtdCz0LjQvtC90LAg0LrQvtC80LDQvdC00LAg0LLQvdC10LTRgNC40LvQsCDQtdC00LjQvdGL0LUgaXA0INC00LjQsNC/0LDQt9C+0L3Riywg0L/QvtC60YDRi9Cy0LDRjtGJ0LjQtSDQstGB0LUg0YHQtdGA0LLQtdGA0YsuINCt0YLQviDQv9C+0LfQstC+0LvQuNC70L4g0YPQvNC10L3RjNGI0LjRgtGMINC60L7Qu9C40YfQtdGB0YLQstC+IEROU+KAkdC30LDQv9GA0L7RgdC+0LIg0LTQviAzINC4INC/0L7QstGL0YHQuNGC0Ywg0YDQtdC/0YPRgtCw0YbQuNGOINCyIFNlbmRlciBTY29yZSDQvdCwIDE1INCx0LDQu9C70L7Qsiwg0YfRgtC+INC+0YLRgNCw0LfQuNC70L7RgdGMINC90LAg0YDQvtGB0YLQtSDQvtGC0LrRgNGL0LLQsNC10LzQvtGB0YLQuCDQv9C40YHQtdC8INC90LAgOSAlLgoKKirQmtC10LnRgSAzLioqINCf0YDQuCDQvNC40LPRgNCw0YbQuNC4INC90LAg0L7QsdC70LDRh9C90YPRjiDQv9C+0YfRgtGDINCx0YvQu9CwINC40LfQvNC10L3QtdC90LAg0L/QvtC70LjRgtC40LrQsCDRgSB+YWxsINC90LAgLWFsbCDQsdC10Lcg0LrQvtGA0YDQtdC60YLQuNGA0L7QstC60Lgg0YHQv9C40YHQutCwIElQ4oCR0LDQtNGA0LXRgdC+0LIuINCSINGA0LXQt9GD0LvRjNGC0LDRgtC1INC00L7RgdGC0LDQstC70Y/QtdC80L7RgdGC0Ywg0YPQv9Cw0LvQsCDQtNC+IDQ1ICUuINCf0L7RgdC70LUg0LLQvtC30LLRgNCw0YLQsCDQuiB+YWxsINC4INC00L7QsdCw0LLQu9C10L3QuNGPINC90LXQtNC+0YHRgtCw0Y7RidC40YUgSVDigJHQtNC40LDQv9Cw0LfQvtC90L7QsiDQsiDQt9Cw0L/QuNGB0YwsINGD0YDQvtCy0LXQvdGMINC00L7RgdGC0LDQstC70Y/QtdC80L7RgdGC0Lgg0LLQvtGB0YHRgtCw0L3QvtCy0LjQu9GB0Y8g0LfQsCDRgtGA0Lgg0LTQvdGPLCDQsCDQutC+0LvQuNGH0LXRgdGC0LLQviDQttCw0LvQvtCxINCyIERNQVJD4oCR0L7RgtGH0ZHRgtCw0YUg0YHQvtC60YDQsNGC0LjQu9C+0YHRjCDQstC00LLQvtC1LgoKIyMjINCc0LXRgtC+0LTQuNC60Lgg0L/QvtCy0YvRiNC10L3QuNGPINGN0YTRhNC10LrRgtC40LLQvdC+0YHRgtC4IFNQRuKAkdC30LDRidC40YLRiyDQsiDRgdC+0YfQtdGC0LDQvdC40Lgg0YEgRE1BUkMg0LggREtJTQoK0KHQuNC90LXRgNCz0LjRjyBTUEYgKyBETUFSQyDQv9C+0LfQstC+0LvRj9C10YIg0LfQsNC00LDQstCw0YLRjCDRgdGC0YDQvtCz0YPRjiDQv9C+0LvQuNGC0LjQutGDICggcD1yZWplY3QgKSDQv9C+0YHQu9C1INC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPINC60L7RgNGA0LXQutGC0L3QvtGB0YLQuCBTUEYuINCf0YDQuCDRjdGC0L7QvCBES0lN4oCR0L/QvtC00L/QuNGB0Ywg0YHQu9GD0LbQuNGCINGA0LXQt9C10YDQstC90YvQvCDQvNC10YXQsNC90LjQt9C80L7QvDog0LXRgdC70LggU1BG4oCR0L/RgNC+0LLQsNC7LCDQvdC+IERLSU3igJHQv9GA0L7QstC10YDQutCwINC/0YDQvtGF0L7QtNC40YIsINC/0LjRgdGM0LzQviDQstGB0ZEg0YDQsNCy0L3QviDQvNC+0LbQtdGCINCx0YvRgtGMINC00L7RgdGC0LDQstC70LXQvdC+LCDRh9GC0L4g0L/QvtCy0YvRiNCw0LXRgiDRg9GB0YLQvtC50YfQuNCy0L7RgdGC0Ywg0Log0L7RiNC40LHQutCw0Lwg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4LgoK0KDQtdCz0YPQu9GP0YDQvdGL0Lkg0LDRg9C00LjRgiDQt9Cw0L/QuNGB0LXQuSwg0LLQutC70Y7Rh9Cw0Y7RidC40Lkg0LrQstCw0YDRgtCw0LvRjNC90YvQuSDQv9C10YDQtdGB0LzQvtGC0YAgSVDigJHRgdC/0LjRgdC60L7QsiDQuCDQv9GA0L7QstC10YDQutGDINC90L7QstGL0YUg0YHRg9Cx0LTQvtC80LXQvdC+0LIsINC80LjQvdC40LzQuNC30LjRgNGD0LXRgiDRgNC40YHQuiDCq3Blcm1lcnJvcsK7LiDQmNC90YLQtdCz0YDQsNGG0LjRjyDRgSBTSUVN4oCR0L/Qu9Cw0YLRhNC+0YDQvNCw0LzQuCDQvtCx0LXRgdC/0LXRh9C40LLQsNC10YIg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60L7QtSDQvtCx0L3QsNGA0YPQttC10L3QuNC1INC+0YLQutC70L7QvdC10L3QuNC5INC4INCx0YvRgdGC0YDRi9C5INC+0YLQutC70LjQuiDQvdCwINC40L3RhtC40LTQtdC90YLRiy4g0J/QviDQtNCw0L3QvdGL0Lwg0LjRgdGB0LvQtdC00L7QstCw0L3QuNGPIFtXaWtpcGVkaWFdKGh0dHBzOi8vZS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uYS5vcmcvd2lraS9TZW5kZXJfUG9saWN5X0ZyYW1ld29yayksINCx0L7Qu9C10LUgODAgJSDQutGA0YPQv9C90YvRhSDQv9C+0YfRgtC+0LLRi9GFINGB0LXRgNCy0LjRgdC+0LIg0YLRgNC10LHRg9GO0YIg0LLQsNC70LjQtNC90YvQuSBTUEYsINCwINGB0L7QstC80LXRgdGC0L3QvtC1INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IFNQRiwgREtJTSDQuCBETUFSQyDRgdC+0LrRgNCw0YnQsNC10YIg0YHQv9GD0YTQuNC90LPigJHQsNGC0LDQutC4INCx0L7Qu9C10LUg0YfQtdC8INC90LAgOTAgJS4KCtCU0LvRjyDQtNCw0LvRjNC90LXQudGI0LXQs9C+INGD0YHQuNC70LXQvdC40Y8g0LfQsNGJ0LjRgtGLINGA0LXQutC+0LzQtdC90LTRg9C10YLRgdGPINCy0L3QtdC00YDRj9GC0YwgQklNSSAoQnJhbmQgSW5kaWNhdG9ycyBmb3IgTWVzc2FnZSBJZGVudGlmaWNhdGlvbikg4oCTINC+0YLQvtCx0YDQsNC20LXQvdC40LUg0LvQvtCz0L7RgtC40L/QsCDQsiDQv9C+0YfRgtC+0LLQvtC8INC60LvQuNC10L3RgtC1LCDQutC+0YLQvtGA0L7QtSDRgtGA0LXQsdGD0LXRgiDRgdGC0YDQvtCz0L7QuSBETUFSQ+KAkdC/0L7Qu9C40YLQuNC60Lgg0Lgg0LrQvtGA0YDQtdC60YLQvdC+0LPQviBTUEYuIEFJ4oCR0L/QvtC00LTQtdGA0LbQutCwINGD0LbQtSDQv9C+0LzQvtCz0LDQtdGCINC/0YDQtdC00YHQutCw0LfRi9Cy0LDRgtGMINCw0L3QvtC80LDQu9C40Lgg0LIg0YbQtdC/0L7Rh9C60LDRhSBpbmNsdWRlINC4INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC/0YDQtdC00LvQsNCz0LDRgtGMIGZsYXR0ZW5pbmcsINGH0YLQviDRg9C/0YDQvtGJ0LDQtdGCINC/0L7QtNC00LXRgNC20LDQvdC40LUg0LfQsNC/0LjRgdC4INCyINCw0LrRgtGD0LDQu9GM0L3QvtC8INGB0L7RgdGC0L7Rj9C90LjQuC4KCiMjIyDQl9Cw0LrQu9GO0YfQtdC90LjQtQoK0JrQvtGA0YDQtdC60YLQvdGL0LkgU1BG4oCR0LfQsNC/0LjRgdGMIOKAkyDRhNGD0L3QtNCw0LzQtdC90YLQsNC70YzQvdCw0Y8g0LfQsNGJ0LjRgtCwINC+0YIg0L/QvtC00LTQtdC70LrQuCDQsNC00YDQtdGB0LAsINC/0L7QstGL0YjQsNGO0YnQsNGPINC00L7RgdGC0LDQstC70Y/QtdC80L7RgdGC0Ywg0Lgg0YDQtdC/0YPRgtCw0YbQuNGOINCx0YDQtdC90LTQsC4g0J/RgNC40LzQtdC90Y/RjyDQvtC/0LjRgdCw0L3QvdGL0Lkg0YfQtdC60LvQuNGB0YIsINGA0LXQs9GD0LvRj9GA0L3QviDQv9GA0L7QstC+0LTRjyDQsNGD0LTQuNGCINC4INC40YHQv9C+0LvRjNC30YPRjyDQsNCy0YLQvtC80LDRgtC40LfQsNGG0LjRjiDRh9C10YDQtdC3IFNJRU0g0LggQUnigJHQuNC90YHRgtGA0YPQvNC10L3RgtGLLCDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4INC80L7Qs9GD0YIg0YHQvdC40LfQuNGC0Ywg0YTQuNC90LDQvdGB0L7QstGL0LUg0L/QvtGC0LXRgNC4INC+0YIg0YHQv9GD0YTQuNC90LPQsCDQuCDQvtCx0LXRgdC/0LXRh9C40YLRjCDRgdGC0LDQsdC40LvRjNC90YvQuSDRgNC+0YHRgiDQvtGC0LrRgNGL0LLQsNC10LzQvtGB0YLQuCDQv9C40YHQtdC8LiDQlNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINCx0L7Qu9C10LUg0LTQtdGC0LDQu9GM0L3QvtCz0L4g0YDRg9C60L7QstC+0LTRgdGC0LLQsCDQuCDQv9GA0LDQutGC0LjRh9C10YHQutC40YUg0YDQtdC60L7QvNC10L3QtNCw0YbQuNC5INC+0LHRgNCw0YLQuNGC0LXRgdGMINC6IFvQtNC10YLQsNC70YzQvdGL0Lkg0YDQsNC30LHQvtGAXShodHRwczovL3IuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnkuY28vbXppYmFxZHApLCDQs9C00LUg0YHQvtCx0YDQsNC90Ysg0YjQsNCx0LvQvtC90Ysg0LfQsNC/0LjRgdC10LksINC/0YDQuNC80LXRgNGLIGZsYXR0ZW5pbmcg0Lgg0LjQvdGB0YLRgNGD0LrRhtC40Lgg0L/QviDQuNC90YLQtdCz0YDQsNGG0LjQuCDRgSBETUFSQ+KAkdC/0L7Qu9C40YLQuNC60LDQvNC4LiDQoNC10LPRg9C70Y/RgNC90YvQtSDQvtCx0L3QvtCy0LvQtdC90LjRjyBJUOKAkdGB0L/QuNGB0LrQvtCyLCDQvNC+0L3QuNGC0L7RgNC40L3QsyDQu9C40LzQuNGC0LAgRE5T4oCR0LfQsNC/0YDQvtGB0L7QsiDQuCDRgdC+0LLQvNC10YHRgtC90L7QtSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtSBTUEYsIERLSU0g0LggRE1BUkMg0YHQvtC30LTQsNGO0YIg0L3QsNC00ZHQttC90YvQuSDQsdCw0YDRjNC10YAg0L/RgNC+0YLQuNCyINGB0L/Rg9GE0LjQvdCz4oCR0YPQs9GA0L7QtyDQsiAyMDI0INCz0L7QtNGDINC4INCyINC00LDQu9GM0L3QtdC50YjQtdC8LgoKIyMjINCa0LvRjtGH0LXQstGL0LUg0LLRi9Cy0L7QtNGLCgotINCa0L7RgNGA0LXQutGC0L3QviDRgdC60L7QvdGE0LjQs9GD0YDQuNGA0L7QstCw0L3QvdCw0Y8gU1BG4oCR0LfQsNC/0LjRgdGMINC/0L7QstGL0YjQsNC10YIg0LTQvtGB0YLQsNCy0LvRj9C10LzQvtGB0YLRjCDQv9C40YHQtdC8INCyINGB0YDQtdC00L3QtdC8INC90LAgMTDigJExNSAlLgoKLSDQndC10L7QsdGF0L7QtNC40LzQviDRgdC+0LHQu9GO0LTQsNGC0Ywg0LvQuNC80LjRgiDQsiAxMCBETlPigJHQt9Cw0L/RgNC+0YHQvtCyOyDQv9GA0Lgg0L/RgNC10LLRi9GI0LXQvdC40Lgg0L/RgNC+0LjRgdGF0L7QtNC40YIgwqtwZXJtZXJyb3LCuyDQuCDQv9C40YHRjNC80LAg0L7RgtC60LvQvtC90Y/RjtGC0YHRjy4KCi0gRmxhdHRlbmluZyDigJQg0Y3RhNGE0LXQutGC0LjQstC90YvQuSDRgdC/0L7RgdC+0LEg0YPQvNC10L3RjNGI0LjRgtGMINC60L7Qu9C40YfQtdGB0YLQstC+INC30LDQv9GA0L7RgdC+0LIg0LHQtdC3INC/0L7RgtC10YDQuCDRgtC+0YfQvdC+0YHRgtC4LgoKLSDQodC+0YfQtdGC0LDQvdC40LUgU1BGLCBES0lNINC4IERNQVJDINC+0LHQtdGB0L/QtdGH0LjQstCw0LXRgiDQsdC+0LvQtdC1IDkwICUg0LfQsNGJ0LjRgtGDINC+0YIg0YHQv9GD0YTQuNC90LPigJHQsNGC0LDQui4KCi0g0KDQtdCz0YPQu9GP0YDQvdGL0Lkg0LzQvtC90LjRgtC+0YDQuNC90LMg0YfQtdGA0LXQtyBTSUVNINC4INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC40LUg0L7Qv9C+0LLQtdGJ0LXQvdC40Y8g0L/QvtC30LLQvtC70Y/RjtGCINCx0YvRgdGC0YDQviDRgNC10LDQs9C40YDQvtCy0LDRgtGMINC90LAg0LjQt9C80LXQvdC10L3QuNGPINCyINC40L3RhNGA0LDRgdGC0YDRg9C60YLRg9GA0LUuLyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQ==
compilation info
Main.java:1: error: illegal character: '#'
# SPF ???????? ??????: ??? ????????? ???????? ?? ????????
^
Main.java:1: error: class, interface, or enum expected
# SPF ???????? ??????: ??? ????????? ???????? ?? ????????
^
Main.java:3: error: illegal character: '#'
### ????????
^
Main.java:3: error: illegal character: '#'
### ????????
^
Main.java:3: error: illegal character: '#'
### ????????
^
Main.java:5: error: illegal character: '\u2011'
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:5: error: illegal character: '\u2013'
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:5: error: illegal character: '\u2011'
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:5: error: illegal character: '\u2011'
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:5: error: illegal character: '\u2011'
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:5: error: illegal character: '\u2011'
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:5: error: class, interface, or enum expected
? 2024 ???? ???? ?????????????????? ? ?????? ???????? 30 % ? ?????? Kaspersky ? Mail.ru ???????????? ????????? ????????. ?????? ? SPF??????? ??????? ????????????? ????? ? ??????? ?? 15 % ? ???????? ????????? ??????, ??? ???????? ? ?????? ??????? ? ????? ???????? ?? ?????????????? ???????. ??????????? ?? email??????????? ? IT??????????????? ???? ???????????? ???????????, ??????????? ?????? ??????????????? ? ?????????? SPF???????; ? ???? ????????? ????????? [?????? ????????](https://rentry.co/mzibaqdp) ?????????? ????????????? ??? ??????????? ??????? ???????.
^
Main.java:7: error: illegal character: '\u2011'
**?? ??????? ?????????, ?????? ??????? ??????????? SPF??????? ????????? ??????? ? ??????? ?? 5 000 ?? 20 000 USD ? ???? ????????? ?????? ? ???????? ?? ????????????? ??????.  ??????? ????????? ? ????????, ???????????? ????????? ???????? ???????? (Google Workspace, Yandex 360, ????????? ESP), ? ????? ???????????, ??????? ????? ?????????????? ????????. ? ?????? ??????????????? ??????????????? ???????? SPF, ???????? ?????? ? ???????????? ???????? ?? ??????????, ? ????? ??????? ???????? ????????, ??? ????????????? ?????? ??????? ? ?????????? ????? ?????????. ?????? ????????: SPF ???????? ?????? ? ??????????????? ???????? ? ???????? ?????? ???????? ?????? ?????????? SPF??????? ??????????? ??????? ????????? ? ?????? SPF ????? ?? ????????: ??????????? SPF???????? ? ??????? ???????? ???????? ????????? ????????????? SPF??????? ? ????????? ? DMARC ? DKIM ?????? ????????: SPF ???????? ?????? ? ??????????????? ???????? ? ???????? ?????? ?????? SPF ?????????? ? ???????? v=spf1 ? ???????? ????? ??????????, ??????????? IP?????? ???????????. ???????? ???????? ? ip4 , ip6 , include , redirect ? ??????????? all ? ????????????? ( ~all , -all , ?all ). ??? ????????? ?????? ????????????????? ??????????????? ????????? ?????? ????????, ???? ?? ?????? ??????????. ???????? ?????? ???????? ?????????? ?????? (permerror), ?????????? ?????? ? 10 DNS????????? ? ??????????? ???????? ( ~all ?????? -all ). ?????????? ?????? ???????? ? ?????????? ????????? ???????????, ? ???????????? ??????????? ????? ????????? ????????????? ?????? ????????. ?? ?????? Kaspersky, ?????? ??? ??????????? SPF ?????? ?? 20 % ??????????????, ? ????????, ??????????? ??????, ????????? ???? ????????????? ?? 10 %. ?????????? Mail.ru ??????????, ??? ????? 80 % ??????? ???????? ???????? ??????? ???????? SPF; ????? ?????? ????????????? ???????? ? ??????????????. ??????? ?????? ?????? ? ?????????, ??? ?????? ??????????, ???????????? ? ??????????? ? ????????? ???????? ??? ???????????? ?????????. ???????? ?????? ?????????? SPF??????? ip4 / ip6.** ????????? ???????? ? CIDR????????, ???????? ip4:192.0.2.0/24 ??? ip6:2001:db8::/32. ????? ????????? ?????? ?? ???????, ??????? ????????????? ?????????? ???? ???????, ????? ??????????? ??????????? ??? ???????????????. ??? ?????????? ????? ???????? ????????????? ????????? ?????? ? ?????? ???????? ???????????? ???????.
^
Main.java:9: error: illegal character: '\u2011'
**include.** ???????? ????????? ??????? ????? SPF???????, ??? ?????? ??? ?????? ? ????????? Google Workspace ( include:_spf.google.com ) ??? SendGrid. ?????? ?????? include ?????????? ????????? DNS???????; ??????? ?? ?????????? include ????? ?????? ????????? ????? ? 10 ????????. ??? ??????????? ?????????? ?flattening? ? ?????? ????????? ??????? ??????? ip4/ip6 ???????????.
^
Main.java:9: error: illegal character: '\u2011'
**include.** ???????? ????????? ??????? ????? SPF???????, ??? ?????? ??? ?????? ? ????????? Google Workspace ( include:_spf.google.com ) ??? SendGrid. ?????? ?????? include ?????????? ????????? DNS???????; ??????? ?? ?????????? include ????? ?????? ????????? ????? ? 10 ????????. ??? ??????????? ?????????? ?flattening? ? ?????? ????????? ??????? ??????? ip4/ip6 ???????????.
^
Main.java:9: error: class, interface, or enum expected
**include.** ???????? ????????? ??????? ????? SPF???????, ??? ?????? ??? ?????? ? ????????? Google Workspace ( include:_spf.google.com ) ??? SendGrid. ?????? ?????? include ?????????? ????????? DNS???????; ??????? ?? ?????????? include ????? ?????? ????????? ????? ? 10 ????????. ??? ??????????? ?????????? ?flattening? ? ?????? ????????? ??????? ??????? ip4/ip6 ???????????.
^
Main.java:9: error: illegal character: '\u00ab'
**include.** ???????? ????????? ??????? ????? SPF???????, ??? ?????? ??? ?????? ? ????????? Google Workspace ( include:_spf.google.com ) ??? SendGrid. ?????? ?????? include ?????????? ????????? DNS???????; ??????? ?? ?????????? include ????? ?????? ????????? ????? ? 10 ????????. ??? ??????????? ?????????? ?flattening? ? ?????? ????????? ??????? ??????? ip4/ip6 ???????????.
^
Main.java:9: error: illegal character: '\u00bb'
**include.** ???????? ????????? ??????? ????? SPF???????, ??? ?????? ??? ?????? ? ????????? Google Workspace ( include:_spf.google.com ) ??? SendGrid. ?????? ?????? include ?????????? ????????? DNS???????; ??????? ?? ?????????? include ????? ?????? ????????? ????? ? 10 ????????. ??? ??????????? ?????????? ?flattening? ? ?????? ????????? ??????? ??????? ip4/ip6 ???????????.
^
Main.java:9: error: illegal character: '\u2013'
**include.** ???????? ????????? ??????? ????? SPF???????, ??? ?????? ??? ?????? ? ????????? Google Workspace ( include:_spf.google.com ) ??? SendGrid. ?????? ?????? include ?????????? ????????? DNS???????; ??????? ?? ?????????? include ????? ?????? ????????? ????? ? 10 ????????. ??? ??????????? ?????????? ?flattening? ? ?????? ????????? ??????? ??????? ip4/ip6 ???????????.
^
Main.java:11: error: illegal character: '\u2011'
**redirect ? exp.** redirect ???????? ???????? ????????? ??????? ??????, ??? ?????? ??? ?????????? ??????????? ??????????? ????? ???? ????????. exp ?????? URL ? ??????????? ??????? ??????, ?? ??? ????????????? ?????????? ? ????? ?????????. ??? ?????????????? redirect ? include ?????????? ????????? ????????? ?????????? ???????????? IP????????, ????? ????????? ???????? ?permerror?.
^
Main.java:11: error: illegal character: '\u00ab'
**redirect ? exp.** redirect ???????? ???????? ????????? ??????? ??????, ??? ?????? ??? ?????????? ??????????? ??????????? ????? ???? ????????. exp ?????? URL ? ??????????? ??????? ??????, ?? ??? ????????????? ?????????? ? ????? ?????????. ??? ?????????????? redirect ? include ?????????? ????????? ????????? ?????????? ???????????? IP????????, ????? ????????? ???????? ?permerror?.
^
Main.java:11: error: illegal character: '\u00bb'
**redirect ? exp.** redirect ???????? ???????? ????????? ??????? ??????, ??? ?????? ??? ?????????? ??????????? ??????????? ????? ???? ????????. exp ?????? URL ? ??????????? ??????? ??????, ?? ??? ????????????? ?????????? ? ????? ?????????. ??? ?????????????? redirect ? include ?????????? ????????? ????????? ?????????? ???????????? IP????????, ????? ????????? ???????? ?permerror?.
^
Main.java:13: error: illegal character: '#'
### ??????????? ??????? ????????? ? ?????? SPF
^
Main.java:13: error: illegal character: '#'
### ??????????? ??????? ????????? ? ?????? SPF
^
Main.java:13: error: illegal character: '#'
### ??????????? ??????? ????????? ? ?????? SPF
^
Main.java:15: error: illegal character: '\u2011'
1. **??????????.** ????????? ????????? ???? ????????, ???????????? ?????? ?? ????? ??????: ??????????? SMTP?relay, ESP (Mailchimp, SendPulse), CRM????????, ??????? ???????????. ????????? ?? IP??????? ? ?????????, ? ????? ?????? ?????????? (mail.example.com, newsletter.example.com), ??????? ????? ???????????? ????????? ??????.
^
Main.java:15: error: illegal character: '\u2011'
1. **??????????.** ????????? ????????? ???? ????????, ???????????? ?????? ?? ????? ??????: ??????????? SMTP?relay, ESP (Mailchimp, SendPulse), CRM????????, ??????? ???????????. ????????? ?? IP??????? ? ?????????, ? ????? ?????? ?????????? (mail.example.com, newsletter.example.com), ??????? ????? ???????????? ????????? ??????.
^
Main.java:15: error: illegal character: '\u2011'
1. **??????????.** ????????? ????????? ???? ????????, ???????????? ?????? ?? ????? ??????: ??????????? SMTP?relay, ESP (Mailchimp, SendPulse), CRM????????, ??????? ???????????. ????????? ?? IP??????? ? ?????????, ? ????? ?????? ?????????? (mail.example.com, newsletter.example.com), ??????? ????? ???????????? ????????? ??????.
^
Main.java:17: error: illegal character: '\u00ab'
2. **????????????.** ?? ?????? ????????? ??????????? ??????, ????????????? ???????? ?least privilege?: ????????? ?????? ??????????? IP?????????? ? ??????????? ?????????? include . ??? ????????????? ????????? flattening, ????? ?? ????????? 10 DNS?????????. ?????? ???????????????? ??????: v=spf1 ip4:203.0.113.0/24 ip6:2001:db8:abcd::/48 include:_spf.google.com -all .
^
Main.java:17: error: illegal character: '\u00bb'
2. **????????????.** ?? ?????? ????????? ??????????? ??????, ????????????? ???????? ?least privilege?: ????????? ?????? ??????????? IP?????????? ? ??????????? ?????????? include . ??? ????????????? ????????? flattening, ????? ?? ????????? 10 DNS?????????. ?????? ???????????????? ??????: v=spf1 ip4:203.0.113.0/24 ip6:2001:db8:abcd::/48 include:_spf.google.com -all .
^
Main.java:17: error: illegal character: '\u2011'
2. **????????????.** ?? ?????? ????????? ??????????? ??????, ????????????? ???????? ?least privilege?: ????????? ?????? ??????????? IP?????????? ? ??????????? ?????????? include . ??? ????????????? ????????? flattening, ????? ?? ????????? 10 DNS?????????. ?????? ???????????????? ??????: v=spf1 ip4:203.0.113.0/24 ip6:2001:db8:abcd::/48 include:_spf.google.com -all .
^
Main.java:17: error: illegal character: '\u2011'
2. **????????????.** ?? ?????? ????????? ??????????? ??????, ????????????? ???????? ?least privilege?: ????????? ?????? ??????????? IP?????????? ? ??????????? ?????????? include . ??? ????????????? ????????? flattening, ????? ?? ????????? 10 DNS?????????. ?????? ???????????????? ??????: v=spf1 ip4:203.0.113.0/24 ip6:2001:db8:abcd::/48 include:_spf.google.com -all .
^
Main.java:19: error: illegal character: '\u2011'
3. **???????????.** ????????? ???????? ????? ?????????????????, ????? ??? MXToolbox, ? ????? ????? ??????????? ?????? dig +short TXT example.com . ???????? ?????????? ? DMARC?????????, ????? ?????????, ??? SPF???????? ?? ???????? ? ?softfail?.
^
Main.java:19: error: illegal character: '\u2011'
3. **???????????.** ????????? ???????? ????? ?????????????????, ????? ??? MXToolbox, ? ????? ????? ??????????? ?????? dig +short TXT example.com . ???????? ?????????? ? DMARC?????????, ????? ?????????, ??? SPF???????? ?? ???????? ? ?softfail?.
^
Main.java:19: error: illegal character: '\u2011'
3. **???????????.** ????????? ???????? ????? ?????????????????, ????? ??? MXToolbox, ? ????? ????? ??????????? ?????? dig +short TXT example.com . ???????? ?????????? ? DMARC?????????, ????? ?????????, ??? SPF???????? ?? ???????? ? ?softfail?.
^
Main.java:19: error: illegal character: '\u00ab'
3. **???????????.** ????????? ???????? ????? ?????????????????, ????? ??? MXToolbox, ? ????? ????? ??????????? ?????? dig +short TXT example.com . ???????? ?????????? ? DMARC?????????, ????? ?????????, ??? SPF???????? ?? ???????? ? ?softfail?.
^
Main.java:19: error: illegal character: '\u00bb'
3. **???????????.** ????????? ???????? ????? ?????????????????, ????? ??? MXToolbox, ? ????? ????? ??????????? ?????? dig +short TXT example.com . ???????? ?????????? ? DMARC?????????, ????? ?????????, ??? SPF???????? ?? ???????? ? ?softfail?.
^
Main.java:21: error: illegal character: '\u2011'
4. **??????????.** ????????? ?????????????? ???? SPF???????? ? SIEM???????? (Splunk, Elastic) ? ?????????? ? ?????????? ?????? ????????. ????????? (??? ? ???????) ?????????? IP??????? ? ?????????? ????? ?????????, ????? ?????? ?????????? ??????????.
^
Main.java:21: error: illegal character: '\u2011'
4. **??????????.** ????????? ?????????????? ???? SPF???????? ? SIEM???????? (Splunk, Elastic) ? ?????????? ? ?????????? ?????? ????????. ????????? (??? ? ???????) ?????????? IP??????? ? ?????????? ????? ?????????, ????? ?????? ?????????? ??????????.
^
Main.java:21: error: illegal character: '\u2011'
4. **??????????.** ????????? ?????????????? ???? SPF???????? ? SIEM???????? (Splunk, Elastic) ? ?????????? ? ?????????? ?????? ????????. ????????? (??? ? ???????) ?????????? IP??????? ? ?????????? ????? ?????????, ????? ?????? ?????????? ??????????.
^
Main.java:23: error: illegal character: '#'
### ????? ?? ????????: ??????????? SPF???????? ? ??????? ????????
^
Main.java:23: error: illegal character: '#'
### ????? ?? ????????: ??????????? SPF???????? ? ??????? ????????
^
Main.java:23: error: illegal character: '#'
### ????? ?? ????????: ??????????? SPF???????? ? ??????? ????????
^
Main.java:23: error: illegal character: '\u2011'
### ????? ?? ????????: ??????????? SPF???????? ? ??????? ????????
^
Main.java:25: error: illegal character: '\u2011'
**???? 1.** ???????????????? ??????????? 12 ?????? ???????? ????????, ??? ??????? ? 8 ????????? include ? ?????? ??????? ?permerror?. ????? ??????? ???? ?????? ???????? 5 include ?? ?????? ip4 ?????????, ???????? ????? ?????????? ???????? ?? 4. ? ?????????? ??????? SPF ???? ?? 22 %, ? ?????????? Sender Score ????? ?? 12 ???????.
^
Main.java:25: error: illegal character: '\u00ab'
**???? 1.** ???????????????? ??????????? 12 ?????? ???????? ????????, ??? ??????? ? 8 ????????? include ? ?????? ??????? ?permerror?. ????? ??????? ???? ?????? ???????? 5 include ?? ?????? ip4 ?????????, ???????? ????? ?????????? ???????? ?? 4. ? ?????????? ??????? SPF ???? ?? 22 %, ? ?????????? Sender Score ????? ?? 12 ???????.
^
Main.java:25: error: illegal character: '\u00bb'
**???? 1.** ???????????????? ??????????? 12 ?????? ???????? ????????, ??? ??????? ? 8 ????????? include ? ?????? ??????? ?permerror?. ????? ??????? ???? ?????? ???????? 5 include ?? ?????? ip4 ?????????, ???????? ????? ?????????? ???????? ?? 4. ? ?????????? ??????? SPF ???? ?? 22 %, ? ?????????? Sender Score ????? ?? 12 ???????.
^
Main.java:27: error: illegal character: '\u2011'
**???? 2.** ????????????? ????? ? ????????????? ? ?????? ? ???? ???? ?????????????? IP??????. ?????? ????????????? include:_spf.mailchimp.com ??? ??????? ??????? ??????? ???????? ?????? ip4 ?????????, ??????????? ??? ???????. ??? ????????? ????????? ?????????? DNS????????? ?? 3 ? ???????? ????????? ? Sender Score ?? 15 ??????, ??? ?????????? ?? ????? ????????????? ????? ?? 9 %.
^
Main.java:27: error: illegal character: '\u2011'
**???? 2.** ????????????? ????? ? ????????????? ? ?????? ? ???? ???? ?????????????? IP??????. ?????? ????????????? include:_spf.mailchimp.com ??? ??????? ??????? ??????? ???????? ?????? ip4 ?????????, ??????????? ??? ???????. ??? ????????? ????????? ?????????? DNS????????? ?? 3 ? ???????? ????????? ? Sender Score ?? 15 ??????, ??? ?????????? ?? ????? ????????????? ????? ?? 9 %.
^
Main.java:27: error: illegal character: '\u2011'
**???? 2.** ????????????? ????? ? ????????????? ? ?????? ? ???? ???? ?????????????? IP??????. ?????? ????????????? include:_spf.mailchimp.com ??? ??????? ??????? ??????? ???????? ?????? ip4 ?????????, ??????????? ??? ???????. ??? ????????? ????????? ?????????? DNS????????? ?? 3 ? ???????? ????????? ? Sender Score ?? 15 ??????, ??? ?????????? ?? ????? ????????????? ????? ?? 9 %.
^
Main.java:29: error: illegal character: '\u2011'
**???? 3.** ??? ???????? ?? ???????? ????? ???? ???????? ???????? ? ~all ?? -all ??? ????????????? ?????? IP????????. ? ?????????? ?????????????? ????? ?? 45 %. ????? ???????? ? ~all ? ?????????? ??????????? IP??????????? ? ??????, ??????? ?????????????? ????????????? ?? ??? ???, ? ?????????? ????? ? DMARC???????? ??????????? ?????.
^
Main.java:29: error: illegal character: '\u2011'
**???? 3.** ??? ???????? ?? ???????? ????? ???? ???????? ???????? ? ~all ?? -all ??? ????????????? ?????? IP????????. ? ?????????? ?????????????? ????? ?? 45 %. ????? ???????? ? ~all ? ?????????? ??????????? IP??????????? ? ??????, ??????? ?????????????? ????????????? ?? ??? ???, ? ?????????? ????? ? DMARC???????? ??????????? ?????.
^
Main.java:29: error: illegal character: '\u2011'
**???? 3.** ??? ???????? ?? ???????? ????? ???? ???????? ???????? ? ~all ?? -all ??? ????????????? ?????? IP????????. ? ?????????? ?????????????? ????? ?? 45 %. ????? ???????? ? ~all ? ?????????? ??????????? IP??????????? ? ??????, ??????? ?????????????? ????????????? ?? ??? ???, ? ?????????? ????? ? DMARC???????? ??????????? ?????.
^
Main.java:31: error: illegal character: '#'
### ???????? ????????? ????????????? SPF??????? ? ????????? ? DMARC ? DKIM
^
Main.java:31: error: illegal character: '#'
### ???????? ????????? ????????????? SPF??????? ? ????????? ? DMARC ? DKIM
^
Main.java:31: error: illegal character: '#'
### ???????? ????????? ????????????? SPF??????? ? ????????? ? DMARC ? DKIM
^
Main.java:31: error: illegal character: '\u2011'
### ???????? ????????? ????????????? SPF??????? ? ????????? ? DMARC ? DKIM
^
Main.java:33: error: illegal character: '\u2011'
???????? SPF + DMARC ????????? ???????? ??????? ???????? ( p=reject ) ????? ????????????? ???????????? SPF. ??? ???? DKIM???????? ?????? ????????? ??????????: ???? SPF???????, ?? DKIM????????? ????????, ?????? ??? ????? ????? ???? ??????????, ??? ???????? ???????????? ? ??????? ????????????.
^
Main.java:33: error: illegal character: '\u2011'
???????? SPF + DMARC ????????? ???????? ??????? ???????? ( p=reject ) ????? ????????????? ???????????? SPF. ??? ???? DKIM???????? ?????? ????????? ??????????: ???? SPF???????, ?? DKIM????????? ????????, ?????? ??? ????? ????? ???? ??????????, ??? ???????? ???????????? ? ??????? ????????????.
^
Main.java:33: error: illegal character: '\u2011'
???????? SPF + DMARC ????????? ???????? ??????? ???????? ( p=reject ) ????? ????????????? ???????????? SPF. ??? ???? DKIM???????? ?????? ????????? ??????????: ???? SPF???????, ?? DKIM????????? ????????, ?????? ??? ????? ????? ???? ??????????, ??? ???????? ???????????? ? ??????? ????????????.
^
Main.java:35: error: illegal character: '\u2011'
?????????? ????? ???????, ?????????? ??????????? ????????? IP???????? ? ???????? ????? ??????????, ???????????? ???? ?permerror?. ?????????? ? SIEM???????????? ???????????? ?????????????? ??????????? ?????????? ? ??????? ?????? ?? ?????????. ?? ?????? ???????????? [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework), ????? 80 % ??????? ???????? ???????? ??????? ???????? SPF, ? ?????????? ????????????? SPF, DKIM ? DMARC ????????? ????????????? ????? ??? ?? 90 %.
^
Main.java:35: error: illegal character: '\u00ab'
?????????? ????? ???????, ?????????? ??????????? ????????? IP???????? ? ???????? ????? ??????????, ???????????? ???? ?permerror?. ?????????? ? SIEM???????????? ???????????? ?????????????? ??????????? ?????????? ? ??????? ?????? ?? ?????????. ?? ?????? ???????????? [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework), ????? 80 % ??????? ???????? ???????? ??????? ???????? SPF, ? ?????????? ????????????? SPF, DKIM ? DMARC ????????? ????????????? ????? ??? ?? 90 %.
^
Main.java:35: error: illegal character: '\u00bb'
?????????? ????? ???????, ?????????? ??????????? ????????? IP???????? ? ???????? ????? ??????????, ???????????? ???? ?permerror?. ?????????? ? SIEM???????????? ???????????? ?????????????? ??????????? ?????????? ? ??????? ?????? ?? ?????????. ?? ?????? ???????????? [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework), ????? 80 % ??????? ???????? ???????? ??????? ???????? SPF, ? ?????????? ????????????? SPF, DKIM ? DMARC ????????? ????????????? ????? ??? ?? 90 %.
^
Main.java:35: error: illegal character: '\u2011'
?????????? ????? ???????, ?????????? ??????????? ????????? IP???????? ? ???????? ????? ??????????, ???????????? ???? ?permerror?. ?????????? ? SIEM???????????? ???????????? ?????????????? ??????????? ?????????? ? ??????? ?????? ?? ?????????. ?? ?????? ???????????? [Wikipedia](https://en.wikipedia.org/wiki/Sender_Policy_Framework), ????? 80 % ??????? ???????? ???????? ??????? ???????? SPF, ? ?????????? ????????????? SPF, DKIM ? DMARC ????????? ????????????? ????? ??? ?? 90 %.
^
Main.java:37: error: illegal character: '\u2013'
??? ??????????? ???????? ?????? ????????????? ???????? BIMI (Brand Indicators for Message Identification) ? ??????????? ???????? ? ???????? ???????, ??????? ??????? ??????? DMARC????????? ? ??????????? SPF. AI?????????? ??? ???????? ????????????? ???????? ? ???????? include ? ????????????? ?????????? flattening, ??? ???????? ??????????? ?????? ? ?????????? ?????????.
^
Main.java:37: error: illegal character: '\u2011'
??? ??????????? ???????? ?????? ????????????? ???????? BIMI (Brand Indicators for Message Identification) ? ??????????? ???????? ? ???????? ???????, ??????? ??????? ??????? DMARC????????? ? ??????????? SPF. AI?????????? ??? ???????? ????????????? ???????? ? ???????? include ? ????????????? ?????????? flattening, ??? ???????? ??????????? ?????? ? ?????????? ?????????.
^
Main.java:37: error: illegal character: '\u2011'
??? ??????????? ???????? ?????? ????????????? ???????? BIMI (Brand Indicators for Message Identification) ? ??????????? ???????? ? ???????? ???????, ??????? ??????? ??????? DMARC????????? ? ??????????? SPF. AI?????????? ??? ???????? ????????????? ???????? ? ???????? include ? ????????????? ?????????? flattening, ??? ???????? ??????????? ?????? ? ?????????? ?????????.
^
Main.java:39: error: illegal character: '#'
### ??????????
^
Main.java:39: error: illegal character: '#'
### ??????????
^
Main.java:39: error: illegal character: '#'
### ??????????
^
Main.java:41: error: illegal character: '\u2011'
?????????? SPF??????? ? ??????????????? ?????? ?? ???????? ??????, ?????????? ?????????????? ? ????????? ??????. ???????? ????????? ???????, ????????? ??????? ????? ? ????????? ????????????? ????? SIEM ? AI????????????, ??????????? ????? ??????? ?????????? ?????? ?? ???????? ? ?????????? ?????????? ???? ????????????? ?????. ??? ????????? ????? ?????????? ??????????? ? ???????????? ???????????? ?????????? ? [????????? ??????](https://rentry.co/mzibaqdp), ??? ??????? ??????? ???????, ??????? flattening ? ?????????? ?? ?????????? ? DMARC???????????. ?????????? ?????????? IP????????, ?????????? ?????? DNS????????? ? ?????????? ????????????? SPF, DKIM ? DMARC ??????? ???????? ?????? ?????? ????????????? ? 2024 ???? ? ? ??????????.
^
Main.java:41: error: illegal character: '\u2013'
?????????? SPF??????? ? ??????????????? ?????? ?? ???????? ??????, ?????????? ?????????????? ? ????????? ??????. ???????? ????????? ???????, ????????? ??????? ????? ? ????????? ????????????? ????? SIEM ? AI????????????, ??????????? ????? ??????? ?????????? ?????? ?? ???????? ? ?????????? ?????????? ???? ????????????? ?????. ??? ????????? ????? ?????????? ??????????? ? ???????????? ???????????? ?????????? ? [????????? ??????](https://rentry.co/mzibaqdp), ??? ??????? ??????? ???????, ??????? flattening ? ?????????? ?? ?????????? ? DMARC???????????. ?????????? ?????????? IP????????, ?????????? ?????? DNS????????? ? ?????????? ????????????? SPF, DKIM ? DMARC ??????? ???????? ?????? ?????? ????????????? ? 2024 ???? ? ? ??????????.
^
Main.java:41: error: illegal character: '\u2011'
?????????? SPF??????? ? ??????????????? ?????? ?? ???????? ??????, ?????????? ?????????????? ? ????????? ??????. ???????? ????????? ???????, ????????? ??????? ????? ? ????????? ????????????? ????? SIEM ? AI????????????, ??????????? ????? ??????? ?????????? ?????? ?? ???????? ? ?????????? ?????????? ???? ????????????? ?????. ??? ????????? ????? ?????????? ??????????? ? ???????????? ???????????? ?????????? ? [????????? ??????](https://rentry.co/mzibaqdp), ??? ??????? ??????? ???????, ??????? flattening ? ?????????? ?? ?????????? ? DMARC???????????. ?????????? ?????????? IP????????, ?????????? ?????? DNS????????? ? ?????????? ????????????? SPF, DKIM ? DMARC ??????? ???????? ?????? ?????? ????????????? ? 2024 ???? ? ? ??????????.
^
Main.java:43: error: illegal character: '#'
### ???????? ??????
^
Main.java:43: error: illegal character: '#'
### ???????? ??????
^
Main.java:43: error: illegal character: '#'
### ???????? ??????
^
Main.java:45: error: illegal character: '\u2011'
- ????????? ?????????????????? SPF??????? ???????? ?????????????? ????? ? ??????? ?? 10?15 %.
^
Main.java:45: error: illegal character: '\u2011'
- ????????? ?????????????????? SPF??????? ???????? ?????????????? ????? ? ??????? ?? 10?15 %.
^
Main.java:47: error: illegal character: '\u2011'
- ?????????? ????????? ????? ? 10 DNS?????????; ??? ?????????? ?????????? ?permerror? ? ?????? ???????????.
^
Main.java:47: error: class, interface, or enum expected
- ?????????? ????????? ????? ? 10 DNS?????????; ??? ?????????? ?????????? ?permerror? ? ?????? ???????????.
^
Main.java:47: error: illegal character: '\u00ab'
- ?????????? ????????? ????? ? 10 DNS?????????; ??? ?????????? ?????????? ?permerror? ? ?????? ???????????.
^
Main.java:47: error: illegal character: '\u00bb'
- ?????????? ????????? ????? ? 10 DNS?????????; ??? ?????????? ?????????? ?permerror? ? ?????? ???????????.
^
Main.java:49: error: illegal character: '\u2014'
- Flattening ? ??????????? ?????? ????????? ?????????? ???????? ??? ?????? ????????.
^
Main.java:51: error: illegal character: '\u2011'
- ????????? SPF, DKIM ? DMARC ???????????? ????? 90 % ?????? ?? ????????????.
^
84 errors
stdout