Plugin Directory

Changeset 3771550


Ignore:
Timestamp:
10/28/2026 08:21:49 PM (4 days ago)
Author:
ja1me4
Message:

1.0.26

Location:
waf-manager-for-cloudflare
Files:
533 added
15 edited

Legend:

Unmodified
Added
Removed
  • waf-manager-for-cloudflare/trunk/README.md

    r3760078 r3771550  
    11# WAF Manager for Cloudflare
    22
    3 > Deploy five battle-tested Cloudflare WAF rules to any zone in one click — directly from WordPress. No Cloudflare dashboard or expression language required.
     3> Deploy five battle-tested Cloudflare WAF rules to any zone in one click, right from WordPress. No Cloudflare dashboard or expression language required.
    44
    55## What it does
    … …  
    99### WAF Rules Builder
    1010
    11 Deploy five pre-configured, battle-tested security rules to any Cloudflare zone in one click, based on the open-source [wafrules.com](https://wafrules.com) ruleset:
     11Deploy five pre-configured, battle-tested security rules to any Cloudflare zone in one click, based on the open-source [wafrules.com](https://wafrules.com) ruleset (last updated October 24, 2026):
    1212
    13 - **Allow Good Bots** — verified bots (Googlebot, Bingbot, uptime monitors, payment processors) plus custom IP / user-agent allowlists
    14 - **Block Aggressive Crawlers** — SEO scrapers, exploit scanners (SQLMap, Nikto, Masscan, Nmap), and sensitive WordPress paths
    15 - **Block Web Hosts & TOR** — cloud hosting ASNs (DigitalOcean, Vultr, Hetzner, OVH, Contabo, …) and TOR exit nodes
    16 - **Challenge Large Cloud Providers** — managed challenge for AWS EC2, Google Cloud, Azure
    17 - **Challenge VPN & wp-login** — managed challenge for major VPN providers plus the WordPress login page
     13- **Allow Good Bots**: every Cloudflare verified bot or the categories you pick, services matched by their published IP lists (ManageWP, WP Umbrella, ShortPixel, Patchstack and more), Let's Encrypt, your server IPs, plus custom IP, user agent and expression allowlists
     14- **Block Aggressive Crawlers & WordPress Paths**: aggressive crawlers, exploit scanners (SQLMap, Nikto, Masscan, Nmap), curl scripts (with hostname exceptions) and sensitive WordPress paths
     15- **Block or Challenge Web Hosts / TOR & Exploit URIs**: cloud hosting ASNs (DigitalOcean, Vultr, Hetzner, OVH, Contabo and more), three attack hosting networks, TOR exit nodes and six groups of exploit URIs
     16- **Challenge Large Providers / Country**: managed challenge for AWS, Google Cloud and Azure, and optionally visitors from outside the countries you pick
     17- **Challenge VPN Connections & wp-login**: managed challenge for major VPN providers plus the WordPress login page
    1818
    1919Each rule is fully customizable with checkboxes. Additional features:
    2020
    21 - Live Cloudflare expression preview as you toggle options
    22 - Custom Allow Expressions — add your own Cloudflare rules language expressions to Rule 1 to always skip the WAF
    23 - Deploy to any single Cloudflare zone, or select multiple zones at once
     21- Live Cloudflare expression preview as you toggle options, with a 4,096-character length check
     22- Custom Allow Expressions: add your own Cloudflare rules language expressions to Rule 1 to always skip the WAF
     23- Deploy to any single Cloudflare zone, or select multiple zones at once. Your other custom rules on the zone are kept
    2424- Automatic Cloudflare Free plan compatibility (restricted phases are stripped and retried)
    2525
    2626### Settings
    2727
    28 - Access control — minimum role picker
    29 - User access allowlist — restrict the plugin to specific administrators
     28- Access control: minimum role picker
     29- User access allowlist: restrict the plugin to specific administrators
    3030- Keep-data-on-uninstall toggle
    3131- Test Connection
  • waf-manager-for-cloudflare/trunk/assets/css/about.css

    r3620800 r3771550  
    22.wpwaf-about-hero{background:#111111;border-radius:12px;padding:36px 40px;margin-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
    33.wpwaf-about-hero-left{display:flex;align-items:center;gap:18px;}
    4 .wpwaf-about-hero-icon{font-size:48px;width:48px;height:48px;color:#FF6A00;flex-shrink:0;}
     4.wpwaf-about-hero-icon{width:48px;height:48px;color:#FF6A00;flex-shrink:0;display:inline-flex;}
    55.wpwaf-about-hero-title{margin:0;font-size:26px;font-weight:800;color:#fff;line-height:1.2;}
    66.wpwaf-about-hero-sub{margin:4px 0 0;font-size:13px;color:#9ca3af;}
    … …  
    4141.wpwaf-about-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px;}
    4242.wpwaf-about-feature{background:#fff;border:1px solid #e2e6ea;border-radius:8px;padding:16px 18px;}
    43 .wpwaf-about-feature-icon{font-size:22px;margin-bottom:8px;display:block;}
     43.wpwaf-about-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:#fff4ec;color:#FF6A00;margin-bottom:10px;}
     44.wpwaf-about-card h2 .wmfc-about-svg{color:#FF6A00;flex-shrink:0;}
     45.wpwaf-about-btn .wmfc-about-svg{width:16px;height:16px;flex-shrink:0;fill:none !important;color:inherit !important;}
     46.wpwaf-about-yes{color:#059669;display:inline-flex;vertical-align:middle;}
     47.wpwaf-about-no{color:#c3c2b7;}
    4448.wpwaf-about-feature-title{font-size:13px;font-weight:700;color:#1a1a2e;margin:0 0 4px;}
    4549.wpwaf-about-feature-desc{font-size:12px;color:#6b7280;margin:0;line-height:1.6;}
  • waf-manager-for-cloudflare/trunk/assets/css/admin.css

    r3762681 r3771550  
    306306.cfwaf-cpicker-list li:hover { background: #f5f5f5; }
    307307.cfwaf-cpicker-list li.selected { background: #fff4ee; color: #111111; font-weight: 600; }
    308 .cfwaf-cpicker-list li.selected::before { content: '✓'; color: #FF6A00; font-weight: 800; margin-right: 8px; flex-shrink: 0; }
     308.cfwaf-cpicker-list li.selected::before { content: ''; width: 14px; height: 14px; background: #FF6A00; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; margin-right: 8px; flex-shrink: 0; }
    309309.cfwaf-cpicker-list li:not(.selected)::before { content: ''; width: 13px; margin-right: 8px; display: inline-block; flex-shrink: 0; }
    310310.cfwaf-cpicker-list li span { font-size: 10px; font-weight: 700; color: #6b7280; background: #f0f2f5; padding: 1px 5px; border-radius: 3px; flex-shrink: 0; }
    … …  
    408408.cfwaf-check-label > span { display: block; min-width: 0; }
    409409.cfwaf-check-strong { align-items: flex-start; padding: 8px 6px; }
    410 .cfwaf-check-strong input[type="checkbox"], .cfwaf-service-row input[type="checkbox"], .cfwaf-service-sub input[type="checkbox"] { margin-top: 2px !important; }
     410.cfwaf-check-strong input[type="checkbox"], .cfwaf-service-row input[type="checkbox"] { margin-top: 2px !important; }
    411411.cfwaf-check-desc { display: block; font-size: 12px; color: #6b7280; line-height: 1.45; margin-top: 2px; font-weight: normal; }
    412412.cfwaf-check-meta { display: block; font-size: 11px; color: #9ca3af; margin-top: 2px; }
    413413.cfwaf-service-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2px 16px; }
    414414.cfwaf-service-row { align-items: flex-start; }
    415 .cfwaf-service-sub { align-items: flex-start; margin-left: 28px; }
    416 .cfwaf-service-sub input[type="checkbox"]:disabled + span { opacity: .5; }
    417415.cfwaf-cat-card.is-disabled { opacity: .5; cursor: default; }
    418416.cfwaf-cat-card.is-disabled input[type="checkbox"] { cursor: default; }
    … …  
    436434}
    437435.cfwaf-notice-info { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e3a8a; }
     436
     437/* Country picker: the card's gap already spaces the flag. */
     438body.wmfc-admin .cfwaf-zone-item .wmfc-flag { margin-right: 0; }
     439/* Quick Pick region maps: the region in orange on a transparent background; white on the orange hover/active state. */
     440.cfwaf-region-btn { display: inline-flex; align-items: center; gap: 6px; }
     441.cfwaf-region-btn .wmfc-rg { flex-shrink: 0; display: block; }
     442.cfwaf-region-btn:hover .wmfc-rg-area,
     443.cfwaf-region-btn.active .wmfc-rg-area { fill: #fff; }
     444/* Rule 2: hostnames where curl is not blocked. */
     445.cfwaf-curl-hosts { margin: 8px 0 0 28px; max-width: 520px; }
     446.cfwaf-curl-hosts .cfwaf-field-label { display: block; font-size: 12px; font-weight: 600; color: #1a1a2e; margin-bottom: 4px; }
     447.cfwaf-curl-hosts.is-disabled { opacity: .5; }
  • waf-manager-for-cloudflare/trunk/assets/css/layout.css

    r3760078 r3771550  
    6767        }
    6868}
     69
     70/* ── Country flags (assets/flags, shown at 20 x 15) ───────────────────────── */
     71body.wmfc-admin .wmfc-flag {
     72        display: inline-block;
     73        flex: 0 0 auto;
     74        width: 20px;
     75        height: 15px;
     76        margin-right: 6px;
     77        vertical-align: -2px;
     78        border-radius: 2px;
     79        object-fit: cover;
     80        box-shadow: 0 0 0 1px rgba(15, 23, 42, .12);
     81}
     82body.wmfc-admin .wmfc-flag--none {
     83        box-shadow: none;
     84}
     85
     86/* ── Search fields: magnifier icon (SVG) instead of an emoji in the placeholder ── */
     87body.wmfc-admin .cfwaf-search-input,
     88body.wmfc-admin .cfwaf-zones-search {
     89        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
     90        background-repeat: no-repeat;
     91        background-position: 10px 50%;
     92        background-size: 15px 15px;
     93        padding-left: 32px;
     94}
     95
     96/* ── Inline SVG icons (replace emoji) ──────────────────────────────────────── */
     97body.wmfc-admin .wmfc-ic {
     98        display: inline-block;
     99        flex-shrink: 0;
     100        vertical-align: -0.125em;
     101}
  • waf-manager-for-cloudflare/trunk/assets/css/settings.css

    r3620800 r3771550  
    1010.wpwaf-st-section-header{padding:14px 20px;border-bottom:1px solid var(--st-border);display:flex;align-items:center;gap:10px;}
    1111.wpwaf-st-section-header h2{margin:0;font-size:14px;font-weight:700;color:var(--st-dark);}
    12 .wpwaf-st-section-icon{font-size:18px;line-height:1;}
     12.wpwaf-st-section-icon{font-size:18px;line-height:1;display:inline-flex;color:#FF6A00;}
    1313.wpwaf-st-section-body{padding:0;}
    1414.wpwaf-st-row{display:grid;grid-template-columns:240px 1fr;align-items:start;gap:16px;padding:16px 20px;border-bottom:1px solid #f1f3f5;}
    … …  
    5656.wpwaf-st-role-option:has(input:checked){border-color:var(--st-orange);background:#fff8f5;}
    5757.wpwaf-st-role-option input{margin-top:3px;accent-color:var(--st-orange);flex-shrink:0;width:16px;height:16px;}
    58 .wpwaf-st-role-icon{font-size:18px;line-height:1;flex-shrink:0;margin-top:1px;}
     58.wpwaf-st-role-icon{font-size:18px;line-height:1;flex-shrink:0;margin-top:1px;display:inline-flex;color:#6b7280;}
    5959.wpwaf-st-role-info{display:flex;flex-direction:column;gap:2px;}
    6060.wpwaf-st-role-info strong{font-size:13px;color:var(--st-dark);}
  • waf-manager-for-cloudflare/trunk/assets/js/admin.js

    r3762681 r3771550  
    6565
    6666        // ── Toast ──────────────────────────────────────────────────────────────────
    67         function toast(msg, type) {
     67        function toast(msg, type, icon) {
    6868                const el = document.createElement('div');
    6969                el.className = 'cfwaf-toast cfwaf-toast-' + (type === 'error' ? 'error' : 'success');
    70                 el.textContent = msg;
     70                el.innerHTML = window.wmfcToastBody ? window.wmfcToastBody(msg, type !== 'error', icon) : escHtml(msg);
    7171                document.body.appendChild(el);
    7272                setTimeout(function () {
    … …  
    9191                        const uas = uaTA.value.split('\n').map(function(s){ return s.trim(); }).filter(function(s){ return s !== ''; });
    9292                        setVal(settings, 'rule1.allow_user_agents', uas);
     93                }
     94
     95                const curlTA = document.getElementById('cfwaf-curl-hosts');
     96                if (curlTA) {
     97                        const hosts = curlTA.value.split(/[\s,]+/).map(function(s){ return s.trim(); }).filter(function(s){ return s !== ''; });
     98                        setVal(settings, 'rule2.curl_host_exceptions', hosts);
    9399                }
    94100
    … …  
    130136                        uaTA2.value = savedUAs.join('\n');
    131137                        updateUACount();
     138                }
     139
     140                const curlTA2 = document.getElementById('cfwaf-curl-hosts');
     141                if (curlTA2) {
     142                        const savedHosts = getVal(settings, 'rule2.curl_host_exceptions') || [];
     143                        curlTA2.value = Array.isArray(savedHosts) ? savedHosts.join('\n') : '';
    132144                }
    133145
    … …  
    153165                updateRule1State();
    154166                updateHostState();
     167                updateCurlState();
    155168        }
    156169
    … …  
    187200                        const state = row.querySelector('.cfwaf-covered-state');
    188201                        row.classList.toggle('is-covered', on);
    189                         if (state) state.textContent = on ? '\u2713 Covered' : 'Not covered';
    190                 });
    191                 const wpu = qs('#cfwaf-wpu-monitors');
    192                 if (wpu) wpu.disabled = !getVal(settings, 'rule1.allow_wpumbrella');
     202                        if (state) state.innerHTML = on ? window.wmfcIconText('check', 'Covered') : 'Not covered';
     203                });
    193204        }
    194205
    … …  
    199210                const grid = qs('#cfwaf-host-grid');
    200211                if (grid) grid.classList.toggle('is-disabled', !on);
     212        }
     213
     214        // Rule 2: the curl hostname exceptions only count while curl blocking is on.
     215        function updateCurlState() {
     216                const on = Boolean(getVal(settings, 'rule2.block_curl'));
     217                const ta = qs('#cfwaf-curl-hosts');
     218                if (ta) ta.disabled = !on;
     219                const box = qs('.cfwaf-curl-hosts');
     220                if (box) box.classList.toggle('is-disabled', !on);
    201221        }
    202222
    … …  
    252272                        if (key.indexOf('rule1.') === 0)       updateRule1State();
    253273                        if (key === 'rule3.block_hosts')       updateHostState();
     274                        if (key === 'rule2.block_curl')        updateCurlState();
    254275                        if (key === 'rule2.block_wpcron') {
    255276                                const warn = qs('#cfwaf-wpcron-warning');
    … …  
    308329                                loadZones();
    309330                        } else {
    310                                 toast('\u2717 ' + ((res.data && res.data.message) || 'Token invalid'), 'error');
     331                                toast(((res.data && res.data.message) || 'Token invalid'), 'error');
    311332                                const badge = qs('#cfwaf-token-status');
    312333                                if (badge) { badge.textContent = 'Error'; badge.classList.remove('connected'); }
    … …  
    345366                                loadZones();
    346367                        } else {
    347                                 toast('\u2717 ' + ((res.data && res.data.message) || 'Credentials invalid'), 'error');
     368                                toast(((res.data && res.data.message) || 'Credentials invalid'), 'error');
    348369                        }
    349370                });
    … …  
    353374                const badge = qs('#cfwaf-token-status');
    354375                if (badge) { badge.textContent = 'Connected'; badge.classList.add('connected'); }
    355                 toast('\u2713 ' + msg);
     376                toast(msg);
    356377        }
    357378
    … …  
    413434                                        loadingEl.innerHTML =
    414435                                                '<div class="cfwaf-zone-load-error">' +
    415                                                 '<strong>\u2717 Could not load zones.</strong><br>' +
     436                                                '<strong>' + window.wmfcIcon('x') + ' Could not load zones.</strong><br>' +
    416437                                                ( isAuthError
    417438                                                        ? 'Cloudflare rejected your credentials (<code>' + msg + '</code>). Your API token or API key &amp; email appear to be invalid or expired. Check the <strong>Accounts</strong> section at the top of this page and re-enter your credentials.'
    … …  
    511532                        if (!res.success) {
    512533                                const msg = (res.data && res.data.message) ? res.data.message : 'Deploy failed.';
    513                                 resultsEl.innerHTML = '<div class="cfwaf-result-item fail">\u2717 ' + escHtml(msg) + '</div>';
    514                                 toast('\u2717 ' + msg, 'error');
     534                                resultsEl.innerHTML = '<div class="cfwaf-result-item fail">' + window.wmfcIconText('x', msg) + '</div>';
     535                                toast(msg, 'error');
    515536                                return;
    516537                        }
    … …  
    522543                                const name = escHtml(zone ? zone.name : zid);
    523544                                const cls  = r.success ? 'ok' : 'fail';
    524                                 const icon = r.success ? '\u2713' : '\u2717';
     545                                const icon = window.wmfcIcon(r.success ? 'check' : 'x');
    525546                                const detail = escHtml(r.message || (r.success ? 'Rules deployed successfully' : 'Unknown error'));
    526547                                html += '<div class="cfwaf-result-item ' + cls + '">' + icon + ' <strong>' + name + '</strong>: ' + detail + '</div>';
    … …  
    530551                        const rc = (res.data && res.data.rule_count)    || 0;
    531552                        const fc = (res.data && res.data.fail_count)    || 0;
    532                         if (sc > 0) toast('\u2713 Deployed ' + rc + ' rules to ' + sc + ' zone(s)!');
    533                         if (fc > 0) toast('\u2717 ' + fc + ' zone(s) failed. See the results below.', 'error');
     553                        if (sc > 0) toast('Deployed ' + rc + ' rules to ' + sc + ' zone(s)!');
     554                        if (fc > 0) toast(fc + ' zone(s) failed. See the results below.', 'error');
    534555                });
    535556        });
    … …  
    546567                        btn.disabled  = false;
    547568                        btn.innerHTML = '<span class="dashicons dashicons-saved"></span> Save Settings';
    548                         res.success ? toast('\u2713 Settings saved!') : toast('\u2717 Save failed', 'error');
     569                        res.success ? toast('Settings saved!') : toast('Save failed', 'error');
    549570                });
    550571        });
    … …  
    698719                        activeId = res.data.active_id;
    699720                        renderAccountsList();
    700                         toast('\u2713 Account removed');
     721                        toast('Account removed');
    701722                        if (!accounts.length) {
    702723                                const badge = qs('#cfwaf-token-status');
    … …  
    9801001                a.remove();
    9811002                URL.revokeObjectURL(url);
    982                 toast('\u2713 Settings exported');
     1003                toast('Settings exported');
    9831004        });
    9841005
    … …  
    9931014                                input.value = '';
    9941015                                if (!res.success) {
    995                                         toast('\u2717 Import failed: ' + ((res.data && res.data.message) || 'unknown error'), 'error');
     1016                                        toast('Import failed: ' + ((res.data && res.data.message) || 'unknown error'), 'error');
    9961017                                        return;
    9971018                                }
    9981019                                settings = res.data.settings;
    9991020                                syncToUI();
    1000                                 toast('\u2713 ' + res.data.message);
     1021                                toast(res.data.message);
    10011022                        });
    10021023                };
    1003                 reader.onerror = function () { input.value = ''; toast('\u2717 Could not read that file.', 'error'); };
     1024                reader.onerror = function () { input.value = ''; toast('Could not read that file.', 'error'); };
    10041025                reader.readAsText(file);
    10051026        });
  • waf-manager-for-cloudflare/trunk/assets/js/settings.js

    r3760078 r3771550  
    4646    if (r.success) {
    4747      res.style.color = '#059669';
    48       res.textContent = '✓ Connected: ' + r.data.account + ' · ' + r.data.zone_count + ' zone' + (r.data.zone_count !== 1 ? 's' : '');
     48      wmfcSetText(res, 'check', 'Connected: ' + r.data.account + ' · ' + r.data.zone_count + ' zone' + (r.data.zone_count !== 1 ? 's' : ''));
    4949    } else {
    5050      res.style.color = '#dc2626';
    51       res.textContent = '✗ ' + (r.data?.message || 'Connection failed');
     51      wmfcSetText(res, 'x', (r.data?.message || 'Connection failed'));
    5252    }
    5353  });
    … …  
    6464    btn.disabled = false; btn.textContent = 'Save Access Settings';
    6565    if (res.success){
    66       msg.textContent = '✓ Access settings saved'; msg.className = 'wpwaf-st-save-msg ok';
     66      wmfcSetText(msg, 'check', 'Access settings saved'); msg.className = 'wpwaf-st-save-msg ok';
    6767    } else {
    68       msg.textContent = '✗ ' + (res.data?.message || 'Save failed'); msg.className = 'wpwaf-st-save-msg err';
     68      wmfcSetText(msg, 'x', (res.data?.message || 'Save failed')); msg.className = 'wpwaf-st-save-msg err';
    6969    }
    7070  });
    … …  
    9090    btn.textContent = 'Save Settings';
    9191    if (res.success){
    92       msg.textContent = '✓ Settings saved';
     92      wmfcSetText(msg, 'check', 'Settings saved');
    9393      msg.className   = 'wpwaf-st-save-msg ok';
    9494      // Reload after short delay so admin bar / menu changes take effect
    9595      setTimeout(() => window.location.reload(), 800);
    9696    } else {
    97       msg.textContent = '✗ ' + (res.data?.message || 'Save failed');
     97      wmfcSetText(msg, 'x', (res.data?.message || 'Save failed'));
    9898      msg.className   = 'wpwaf-st-save-msg err';
    9999    }
  • waf-manager-for-cloudflare/trunk/includes/class-admin.php

    r3762681 r3771550  
    172172                                'before'
    173173                        );
     174                        // Icon helpers (SVG icons instead of emoji).
     175                        wp_add_inline_script( 'wmfc-admin', WMFC_Icons::script(), 'before' );
    174176                }
    175177
    … …  
    200202                                'before'
    201203                        );
     204                        wp_add_inline_script( 'wmfc-settings', WMFC_Icons::script(), 'before' );
    202205                }
    203206
  • waf-manager-for-cloudflare/trunk/includes/class-rule-builder.php

    r3762681 r3771550  
    77 * Builds the five Cloudflare WAF rule expressions.
    88 *
    9  * Matches the wafrules.com ruleset of October 21, 2026 (WMFC_Service_IPs::RULES_DATE).
     9 * Matches the wafrules.com ruleset of October 24, 2026 (WMFC_Service_IPs::RULES_DATE).
    1010 * Plugin extras on top of that ruleset: custom user agents and custom
    1111 * expressions in Rule 1, the optional wp-cron.php block in Rule 2, and a
    … …  
    6767
    6868        private const LETS_ENCRYPT  = '(starts_with(http.request.uri.path, "/.well-known/acme-challenge/"))';
    69         private const WPU_MONITORS  = '(ip.src.asnum eq 14061 and http.user_agent contains "WPUmbrella+" and http.request.method in {"GET" "HEAD"} and not http.request.uri.path contains "." and http.request.uri.query eq "")';
    7069        private const FLYINGPRESS   = '(http.user_agent contains "FlyingPress (+https://flyingpress.com)" and http.request.method eq "GET")';
    7170        private const APPLE_PREVIEW = '(http.user_agent contains "facebookexternalhit" and http.request.method eq "GET")';
    … …  
    131130                                'allow_managewp'               => false,
    132131                                'allow_wpumbrella'             => false,
    133                                 'allow_wpumbrella_do_monitors' => true,
    134132                                'allow_gosweetspot'            => false,
    135133                                // Narrow expression matches.
    … …  
    160158                                'block_nmap'            => true,
    161159                                'block_xmlrpc'          => true,
    162                                 'block_wpconfig'        => false,
     160                                'block_wpconfig'        => true,
    163161                                // wp-json is needed by the block editor, WooCommerce and mobile apps.
    164162                                'block_wpjson'          => false,
    165                                 'block_wpinstall'       => false,
     163                                'block_wpinstall'       => true,
    166164                                'block_wlwmanifest'     => true,
    167165                                'block_readme'          => true,
    168166                                'block_license'         => true,
    169167                                'block_sensitive_paths' => true,
     168                                // curl user agents, except on the hostnames listed (for API and webhook hosts).
     169                                'block_curl'            => true,
     170                                'curl_host_exceptions'  => [],
    170171                                // Plugin extra, off by default: breaks sites whose server cron calls wp-cron.php over HTTP.
    171172                                'block_wpcron'          => false,
    … …  
    188189                                'block_hostroyale'      => true,
    189190                                'block_cloudvider'      => true,
     191                                // Attack hosting networks: stay in the rule even when the host list is off.
     192                                'block_techoff'         => true,
     193                                'block_bucklog'         => true,
     194                                'block_tcdatacenter'    => true,
    190195                                'block_tor'             => true,
    191196                                'action'                => 'block',
    … …  
    268273                        $s['rule1'] = $r1;
    269274                }
     275                // October 24, 2026: the interim WP Umbrella DigitalOcean clause was removed.
     276                if ( isset( $s['rule1'] ) && is_array( $s['rule1'] ) ) unset( $s['rule1']['allow_wpumbrella_do_monitors'] );
    270277
    271278                $r2 = isset( $s['rule2'] ) && is_array( $s['rule2'] ) ? $s['rule2'] : null;
    … …  
    314321
    315322        /**
    316          * True when settings still use the shape from before the October 2026 ruleset.
     323         * True when settings are older than the current ruleset: the shape from
     324         * before October 2026, or saved before the October 24, 2026 options (curl
     325         * blocking and the attack hosting networks, which start on, as on wafrules.com).
    317326         */
    318327        public static function needs_migration( array $s ): bool {
    319                 if ( isset( $s['rule1'] ) && is_array( $s['rule1'] ) && ! array_key_exists( 'include_client_bot', $s['rule1'] ) ) return true;
    320                 if ( isset( $s['rule2'] ) && is_array( $s['rule2'] ) && ( array_key_exists( 'block_sqli_sleep', $s['rule2'] ) || array_key_exists( 'block_path_traversal', $s['rule2'] ) ) ) return true;
     328                if ( isset( $s['rule1'] ) && is_array( $s['rule1'] ) && ( ! array_key_exists( 'include_client_bot', $s['rule1'] ) || array_key_exists( 'allow_wpumbrella_do_monitors', $s['rule1'] ) ) ) return true;
     329                if ( isset( $s['rule2'] ) && is_array( $s['rule2'] ) && ( array_key_exists( 'block_sqli_sleep', $s['rule2'] ) || array_key_exists( 'block_path_traversal', $s['rule2'] ) || ! array_key_exists( 'block_curl', $s['rule2'] ) ) ) return true;
     330                if ( isset( $s['rule3'] ) && is_array( $s['rule3'] ) && ! array_key_exists( 'block_techoff', $s['rule3'] ) ) return true;
    321331                return false;
    322332        }
    … …  
    364374                ) );
    365375
     376                $out['rule2']['curl_host_exceptions'] = self::normalize_hostnames( $out['rule2']['curl_host_exceptions'] );
     377
    366378                $out['rule3']['action'] = $out['rule3']['action'] === 'managed_challenge' ? 'managed_challenge' : 'block';
    367379
    … …  
    459471
    460472                if ( ! empty( $s['allow_letsencrypt'] ) ) $parts[] = self::LETS_ENCRYPT;
    461                 if ( ! empty( $s['allow_wpumbrella'] ) && ! empty( $s['allow_wpumbrella_do_monitors'] ) ) $parts[] = self::WPU_MONITORS;
    462473                if ( ! empty( $s['allow_flyingpress'] ) ) $parts[] = self::FLYINGPRESS;
    463474                if ( ! empty( $s['allow_apple_messages'] ) ) $parts[] = self::APPLE_PREVIEW;
    … …  
    516527                        foreach ( [ '/.env', '/.git', 'composer.json', 'composer.lock', 'debug.log', 'phpunit', 'server-status' ] as $t ) $p[] = self::lc( $path, $t );
    517528                }
     529                if ( ! empty( $s['block_curl'] ) ) {
     530                        $curl  = 'lower(http.user_agent) contains "curl/"';
     531                        $hosts = self::normalize_hostnames( (array) ( $s['curl_host_exceptions'] ?? [] ) );
     532                        $p[]   = $hosts
     533                                ? '(' . $curl . ' and not http.host in {' . implode( ' ', array_map( static fn( $h ) => '"' . $h . '"', $hosts ) ) . '})'
     534                                : '(' . $curl . ')';
     535                }
    518536                if ( ! empty( $s['block_wpcron'] ) ) $p[] = self::lc( $path, 'wp-cron.php' );
    519537
    … …  
    522540
    523541        private static function build_rule3_expr( array $s ): string {
    524                 $p = [];
     542                $p    = [];
     543                $asns = [];
    525544
    526545                if ( ! empty( $s['block_hosts'] ) ) {
    … …  
    541560                                'block_cloudvider' => [ 62240 ],
    542561                        ];
    543                         $asns = [];
    544562                        foreach ( $asn_map as $key => $nums ) {
    545563                                if ( ! empty( $s[ $key ] ) ) $asns = array_merge( $asns, $nums );
    546564                        }
    547                         if ( $asns ) {
    548                                 $p[] = '(ip.src.asnum in {' . implode( ' ', $asns ) . '} and not cf.client.bot and not http.request.uri.path contains "acme-challenge")';
    549                         }
     565                }
     566                // Attack hosting networks apply even when the main host list is off.
     567                foreach ( [ 'block_techoff' => 48090, 'block_bucklog' => 211590, 'block_tcdatacenter' => 218785 ] as $key => $num ) {
     568                        if ( ! empty( $s[ $key ] ) ) $asns[] = $num;
     569                }
     570                $asns = array_values( array_unique( $asns ) );
     571                if ( $asns ) {
     572                        $p[] = '(ip.src.asnum in {' . implode( ' ', $asns ) . '} and not cf.client.bot and not http.request.uri.path contains "acme-challenge")';
    550573                }
    551574                if ( ! empty( $s['block_tor'] ) ) $p[] = '(ip.src.country in {"T1"})';
    … …  
    637660         * @return array{accepted: string[], invalid: string[]}
    638661         */
     662        /**
     663         * Hostnames for the curl exceptions, as wafrules.com reads them: split on
     664         * spaces, commas and new lines, lower-cased, trailing dots removed, IP
     665         * addresses and anything with a port or invalid label dropped, no repeats.
     666         *
     667         * @param string[] $list Lines or tokens as entered.
     668         * @return string[]
     669         */
     670        public static function normalize_hostnames( array $list ): array {
     671                $out = [];
     672                foreach ( $list as $item ) {
     673                        foreach ( preg_split( '/[\s,]+/', (string) $item ) ?: [] as $h ) {
     674                                $h = rtrim( strtolower( trim( $h ) ), '.' );
     675                                if ( $h === '' || in_array( $h, $out, true ) ) continue;
     676                                if ( strlen( $h ) > 253 || str_contains( $h, ':' ) || preg_match( '/^(?:\d{1,3}\.){3}\d{1,3}$/', $h ) ) continue;
     677                                if ( ! preg_match( '/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/', $h ) ) continue;
     678                                $out[] = $h;
     679                        }
     680                }
     681                return $out;
     682        }
     683
    639684        public static function normalize_ips( array $list ): array {
    640685                $seen = [];
  • waf-manager-for-cloudflare/trunk/includes/class-service-ips.php

    r3762681 r3771550  
    77 * Published IP lists for services allowed by Rule 1 (Allow Good Bots).
    88 *
    9  * Source: the wafrules.com ruleset of October 21, 2026. Each list comes from the
     9 * Source: the wafrules.com ruleset of October 24, 2026. Each list comes from the
    1010 * service's own published page (see 'sources'). Services Cloudflare already
    1111 * verifies as bots are covered by cf.client.bot; their lists are optional.
    … …  
    1313final class WMFC_Service_IPs {
    1414
    15         public const RULES_DATE = '2026-10-21';
     15        public const RULES_DATE = '2026-10-24';
    1616
    1717        /** @return array<int,array<string,mixed>> */
    … …  
    160160                                'settings'     => [ 'allow_wpumbrella' ],
    161161                                'verified_bot' => false,
    162                                 'updated'      => '2026-10-21',
    163                                 'sources'      => [ 'https://wp-umbrella.com/ips-v4/', 'https://wp-umbrella.com/ips-v6/', 'https://wp-umbrella.com/ips-monitoring/', 'https://wp-umbrella.com/ips-broken-link-checker/', 'https://wp-umbrella.com/ips-lighthouse/' ],
    164                                 'notes'        => 'Management v4/v6, monitoring, broken-link checker, and Lighthouse. 2001:BC8:2B7F:801::292/64 is normalized to 2001:bc8:2b7f:801::/64. Listed in Cloudflare Radar, but real traffic does not verify. Unlisted DigitalOcean uptime monitors stay on the interim AS14061 clause and are not added here.',
     162                                'updated'      => '2026-10-23',
     163                                'sources'      => [ 'https://wp-umbrella.com/ips-v4/', 'https://wp-umbrella.com/ips-v6/', 'https://wp-umbrella.com/ips-monitoring/', 'https://wp-umbrella.com/ips-broken-link-checker/', 'https://wp-umbrella.com/ips-lighthouse/', 'https://wp-umbrella.com/communication-with-our-service/' ],
     164                                'notes'        => 'Management v4/v6, uptime monitoring, broken-link checker and Lighthouse IPs from WP Umbrella\'s published lists. 2001:BC8:2B7F:801::292/64 is normalized to 2001:bc8:2b7f:801::/64. Listed in Cloudflare Radar, but real traffic does not verify. WP Umbrella corrected its monitoring list on 2026-10-23.',
    165165                                'ips'          => [
    166                                         '15.235.231.33', '51.159.196.255', '51.159.202.198', '51.178.24.243',
    167                                         '62.4.26.31', '64.23.156.169', '128.199.86.31', '128.199.121.7',
    168                                         '134.199.170.244', '142.93.161.1', '142.93.205.116', '143.244.149.185',
    169                                         '157.245.77.230', '159.223.167.118', '161.35.231.200', '165.227.83.88',
    170                                         '165.227.147.208', '167.99.218.133', '167.99.218.170', '188.166.163.58',
    171                                         '188.166.165.9', '206.189.101.66', '209.38.89.16', '212.83.142.5',
    172                                         '212.83.175.107', '212.129.45.77', '2001:bc8:2b7f:801::/64', '2001:41d0:306:1702::/64',
     166                                        '15.235.231.33', '51.159.202.198', '62.4.26.31', '104.248.132.78',
     167                                        '128.199.86.31', '128.199.121.7', '134.199.170.244', '142.93.205.116',
     168                                        '143.198.153.189', '143.244.149.185', '157.245.77.230', '159.65.120.212',
     169                                        '159.223.167.118', '165.227.83.88', '165.232.128.149', '167.99.218.133',
     170                                        '167.99.218.170', '188.166.163.58', '188.166.165.9', '206.189.101.66',
     171                                        '209.38.89.16', '212.83.142.5', '212.83.175.107', '212.129.45.77',
     172                                        '2001:bc8:2b7f:801::/64', '2001:41d0:306:1702::/64',
    173173                                ],
    174174                        ],
  • waf-manager-for-cloudflare/trunk/includes/views/page-about.php

    r3762681 r3771550  
    66        <div class="wpwaf-about-hero">
    77                <div class="wpwaf-about-hero-left">
    8                         <span class="dashicons dashicons-shield wpwaf-about-hero-icon"></span>
     8                        <span class="wpwaf-about-hero-icon"><?php echo WMFC_Icons::about( 'shield', 48 ); ?></span>
    99                        <div>
    1010                                <h1 class="wpwaf-about-hero-title">
    … …  
    1212                                        <span class="wpwaf-about-badge">v<?php echo esc_html( WMFC_VERSION ); ?></span>
    1313                                </h1>
    14                                 <p class="wpwaf-about-hero-sub">Visual Cloudflare WAF rule builder — directly from your WordPress admin</p>
     14                                <p class="wpwaf-about-hero-sub">Visual Cloudflare WAF rule builder, right in your WordPress admin</p>
    1515                        </div>
    1616                </div>
    1717                <div class="wpwaf-about-cta">
    1818                        <a href="https://www.wpwafmanager.com" target="_blank" rel="noopener" class="wpwaf-about-btn wpwaf-about-btn-primary">
    19                                 🌐 wpwafmanager.com
     19                                <?php echo WMFC_Icons::about( 'globe', 16 ); ?> wpwafmanager.com
    2020                        </a>
    2121                        <a href="https://github.com/jaimealnassim/wpwafmanager" target="_blank" rel="noopener" class="wpwaf-about-btn wpwaf-about-btn-secondary">
    … …  
    2929        <div class="wpwaf-about-features">
    3030                <div class="wpwaf-about-feature">
    31                         <span class="wpwaf-about-feature-icon">🛡</span>
     31                        <span class="wpwaf-about-feature-icon"><?php echo WMFC_Icons::about( 'shield' ); ?></span>
    3232                        <div class="wpwaf-about-feature-title">WAF Rules Builder</div>
    3333                        <div class="wpwaf-about-feature-desc">Deploy 5 battle-tested security rules to any Cloudflare zone in one click. No expression language required.</div>
    … …  
    3939
    4040                <div class="wpwaf-about-card">
    41                         <h2>🆓 Free &amp; Open Source</h2>
     41                        <h2><?php echo WMFC_Icons::about( 'unlock', 18 ); ?> Free &amp; Open Source</h2>
    4242                        <p>WAF Manager for Cloudflare is <strong>free and open-source</strong>, licensed under GPL-2.0. The WAF Rules Builder you see here is available at no cost, forever.</p>
    43                         <p>Deploy five battle-tested Cloudflare WAF rules to any zone in one click — no Cloudflare dashboard or expression language required.</p>
     43                        <p>Deploy five battle-tested Cloudflare WAF rules to any zone in one click. No Cloudflare dashboard or expression language required.</p>
    4444                </div>
    4545
    4646                <div class="wpwaf-about-card" style="border-color:#fcd9c0;background:#fffaf7;">
    47                         <h2>⚡ Get the full WP WAF Manager</h2>
     47                        <h2><?php echo WMFC_Icons::about( 'star', 18 ); ?> Get the full WP WAF Manager</h2>
    4848                        <p>The full <strong>WP WAF Manager</strong> adds a complete Cloudflare toolkit on top of the WAF Rules Builder: DNS manager, zone analytics, zone controls &amp; cache purge, bot control, SSL monitoring, alerts &amp; health checks, Turnstile widget management, Page Rules migration, IP access rules, security events, email routing, white-label client reports, and multi-account support.</p>
    4949                        <p>Get it <strong>free on GitHub</strong>, or at <a href="https://www.wpwafmanager.com" target="_blank" rel="noopener" style="color:#FF6A00;font-weight:600;">wpwafmanager.com</a> for <strong>automatic updates</strong> and <strong>priority support</strong>.</p>
    … …  
    9494                                <tr>
    9595                                        <td><?php echo esc_html( $label ); ?></td>
    96                                         <td><?php echo $free ? '✅' : '—'; ?></td>
    97                                         <td class="col-pro"><?php echo $pro ? '✅' : '—'; ?></td>
     96                                        <td><?php echo $free ? '<span class="wpwaf-about-yes" role="img" aria-label="Included">' . WMFC_Icons::about( 'check', 18 ) . '</span>' : '<span class="wpwaf-about-no" aria-label="Not included">-</span>'; ?></td>
     97                                        <td class="col-pro"><?php echo $pro ? '<span class="wpwaf-about-yes" role="img" aria-label="Included">' . WMFC_Icons::about( 'check', 18 ) . '</span>' : '<span class="wpwaf-about-no" aria-label="Not included">-</span>'; ?></td>
    9898                                </tr>
    9999                                <?php endforeach; ?>
    … …  
    104104        <!-- Credits -->
    105105        <div class="wpwaf-about-card">
    106                 <h2>📋 Credits &amp; Resources</h2>
     106                <h2><?php echo WMFC_Icons::about( 'list', 18 ); ?> Credits &amp; Resources</h2>
    107107                <ul>
    108108                        <li>WAF rules based on the five-rule pattern by <a href="https://webagencyhero.com" target="_blank" rel="noopener">Troy Glancy (WebAgencyHero)</a>, refined by <a href="https://wafrules.com" target="_blank" rel="noopener">Michael Bourne (URSA6) at wafrules.com</a></li>
    109                         <li>Plugin by <a href="https://www.wpwafmanager.com" target="_blank" rel="noopener">WP WAF Manager</a> — built by <a href="https://nahnuplugins.com" target="_blank" rel="noopener">Nahnu Plugins</a></li>
     109                        <li>Plugin by <a href="https://www.wpwafmanager.com" target="_blank" rel="noopener">WP WAF Manager</a>, built by <a href="https://nahnuplugins.com" target="_blank" rel="noopener">Nahnu Plugins</a></li>
    110110                        <li><a href="https://github.com/jaimealnassim/wpwafmanager" target="_blank" rel="noopener">View source on GitHub</a></li>
    111111                        <li><a href="https://developers.cloudflare.com/waf/" target="_blank" rel="noopener">Cloudflare WAF Documentation</a></li>
  • waf-manager-for-cloudflare/trunk/includes/views/page-main.php

    r3762681 r3771550  
    1313                        </a>
    1414                        <div class="cfwaf-header-meta">
    15                                 <div class="cfwaf-header-meta-updated">Rules last updated: October 21, 2026, from <a href="https://wafrules.com" target="_blank" rel="noopener">wafrules.com</a></div>
     15                                <div class="cfwaf-header-meta-updated">Rules last updated: <?php echo esc_html( gmdate( 'F j, Y', (int) strtotime( WMFC_Service_IPs::RULES_DATE . ' 00:00:00 UTC' ) ) ); ?>, from <a href="https://wafrules.com" target="_blank" rel="noopener">wafrules.com</a></div>
    1616                                <a href="https://github.com/jaimealnassim/wpwafmanager" target="_blank" rel="noopener" class="cfwaf-header-github" title="View on GitHub" style="justify-content:flex-end;">
    1717                                        <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
    … …  
    156156                                        <div class="cfwaf-step-content">
    157157                                                <h3>Connect &amp; Configure</h3>
    158                                                 <p>Enter your Cloudflare API credentials above and click <strong>Verify &amp; Save</strong>. Then customize the five WAF rules below to match your site&rsquo;s needs. Every checkbox option is saved to your WordPress database &mdash; your configuration persists between sessions. You can return any time and your settings will be exactly as you left them.</p>
     158                                                <p>Enter your Cloudflare API credentials above and click <strong>Verify &amp; Save</strong>. Then customize the five WAF rules below to match your site&rsquo;s needs. Every checkbox option is saved to your WordPress database, so your configuration persists between sessions. You can return any time and your settings will be exactly as you left them.</p>
    159159                                        </div>
    160160                                </div>
    … …  
    164164                                        <div class="cfwaf-step-content">
    165165                                                <h3>Deploy to Your Sites</h3>
    166                                                 <p>Once configured, scroll to the bottom and click <strong>Deploy Rules to Your Sites</strong>. All your Cloudflare zones will load automatically. Pick one site, a handful, or all of them at once &mdash; then click <strong>Deploy</strong>. The plugin pushes all five rules directly to Cloudflare via API in the correct order. No copy-pasting expressions into the Cloudflare dashboard required.</p>
     166                                                <p>Once configured, scroll to the bottom and click <strong>Deploy Rules to Your Sites</strong>. All your Cloudflare zones will load automatically. Pick one site, a handful, or all of them at once, then click <strong>Deploy</strong>. The plugin pushes all five rules directly to Cloudflare via API in the correct order. No copy-pasting expressions into the Cloudflare dashboard required.</p>
    167167                                                <p class="cfwaf-hint"><strong>Why order matters:</strong> Rule 1 (Allow Good Bots) must be first because it uses the Skip action to whitelist legitimate bots before any blocking rules run. Block rules come before Challenge rules because a blocked request stops evaluation immediately, so no further rules are checked.</p>
    168168                                        </div>
    … …  
    173173                                        <div class="cfwaf-step-content">
    174174                                                <h3>Monitor &amp; Adjust</h3>
    175                                                 <p>After deploying, monitor your Cloudflare Security Events log at <strong>Security &rarr; Analytics &rarr; Events</strong>. Watch closely for false positives &mdash; legitimate traffic being blocked or challenged. If a service you need is being blocked, enable it in Rule 1 and redeploy. These rules work well for most sites with default settings, but every site is different. Use the <strong>Zone Rules</strong> tab below to inspect what&rsquo;s live on any zone at any time.</p>
     175                                                <p>After deploying, monitor your Cloudflare Security Events log at <strong>Security &rarr; Analytics &rarr; Events</strong>. Watch closely for false positives: legitimate traffic being blocked or challenged. If a service you need is being blocked, enable it in Rule 1 and redeploy. These rules work well for most sites with default settings, but every site is different. Use the <strong>Zone Rules</strong> tab below to inspect what&rsquo;s live on any zone at any time.</p>
    176176                                        </div>
    177177                                </div>
    … …  
    196196                        if ( is_array( $moved_agents ) && $moved_agents ) : ?>
    197197                        <div class="cfwaf-notice cfwaf-notice-info cfwaf-rules-moved" id="cfwaf-rules-moved">
    198                                 <p><strong>WAF rules updated to the October 21, 2026 ruleset.</strong> Rule 1 no longer allows services by user agent, because a user agent is easy to fake. Services Cloudflare verifies are covered by &ldquo;Allow every Cloudflare verified bot&rdquo;, and services with a published IP list now have their own switch.</p>
     198                                <p><strong>WAF rules updated to the October 2026 ruleset.</strong> Rule 1 no longer allows services by user agent, because a user agent is easy to fake. Services Cloudflare verifies are covered by &ldquo;Allow every Cloudflare verified bot&rdquo;, and services with a published IP list now have their own switch.</p>
    199199                                <p>So nothing stops working, these user agents were moved to <strong>Custom User Agents to Allow</strong> in your saved settings: <?php echo implode( ', ', array_map( static fn( $ua ) => '<code>' . esc_html( (string) $ua ) . '</code>', $moved_agents ) ); ?>. Remove any you don&rsquo;t need, and add those services&rsquo; server IPs under <strong>Your server IPs</strong> instead where you can. Deploy again to apply the new rules.</p>
    200200                                <button type="button" class="cfwaf-btn cfwaf-btn-sm" id="cfwaf-rules-moved-dismiss">Got it</button>
    … …  
    292292                                                                'allow_shortpixel'  => [ 'ShortPixel', '', 'Adds the published IPv4 list. ShortPixel runs on Hetzner, which Rule 3 blocks.' ],
    293293                                                                'allow_patchstack'  => [ 'Patchstack', '', 'Adds Patchstack\'s published IPs. Patchstack says the list may change without notice.' ],
    294                                                                 'allow_wpumbrella'  => [ 'WP Umbrella', '', 'Adds the published management, monitoring, broken-link and Lighthouse IPs. WP Umbrella traffic does not verify as a Cloudflare bot.' ],
     294                                                                'allow_wpumbrella'  => [ 'WP Umbrella', '', 'Adds WP Umbrella\'s published management, uptime monitoring, broken-link checker and Lighthouse IPs (IP only, no user agent match). WP Umbrella traffic does not verify as a Cloudflare bot.' ],
    295295                                                                'allow_gosweetspot' => [ 'GoSweetSpot', '', 'Adds the integration-service IPs used for webhooks and order fetches.' ],
    296296                                                        ];
    … …  
    306306                                                                </span>
    307307                                                        </label>
    308                                                         <?php if ( $key === 'allow_wpumbrella' ) : ?>
    309                                                         <label class="cfwaf-check-label cfwaf-service-sub">
    310                                                                 <input type="checkbox" data-setting="rule1.allow_wpumbrella_do_monitors" id="cfwaf-wpu-monitors">
    311                                                                 <span>Include unlisted DigitalOcean monitors (interim)<span class="cfwaf-check-desc">Requests from DigitalOcean (AS14061) with user agent WPUmbrella+, GET or HEAD, no dot in the path and no query string.</span></span>
    312                                                         </label>
    313                                                         <?php endif; ?>
    314308                                                        <?php endforeach; ?>
    315309                                                </div>
    … …  
    354348                                                <div id="cfwaf-expressions-list" class="cfwaf-expr-list"></div>
    355349                                                <button type="button" id="cfwaf-expr-add" class="cfwaf-btn cfwaf-btn-sm" style="margin-top:6px;">+ Add Expression</button>
    356                                                 <p class="cfwaf-warn-text" style="margin-top:8px;">&#9888; Expressions must be valid <a href="https://developers.cloudflare.com/ruleset-engine/rules-language/" target="_blank" rel="noopener">Cloudflare rules language</a> syntax. An invalid expression makes the deploy fail for that zone.</p>
     350                                                <p class="cfwaf-warn-text" style="margin-top:8px;"><?php echo WMFC_Icons::svg( 'alert' ); ?> Expressions must be valid <a href="https://developers.cloudflare.com/ruleset-engine/rules-language/" target="_blank" rel="noopener">Cloudflare rules language</a> syntax. An invalid expression makes the deploy fail for that zone.</p>
    357351                                        </div>
    358352
    … …  
    409403                                                </div>
    410404                                                <p class="cfwaf-hint" style="margin-top:6px">The generic patterns never match Cloudflare verified bots.</p>
     405                                                <label class="cfwaf-check-label cfwaf-check-strong" style="margin-top:10px">
     406                                                        <input type="checkbox" data-setting="rule2.block_curl" id="cfwaf-block-curl">
     407                                                        <span><strong>Block curl user agents</strong>
     408                                                                <span class="cfwaf-check-desc">Turn this off for app or API hosts (Workers, Vercel, webhook endpoints) where people or scripts legitimately call you with curl. Allow server-side monitors in Rule 1 instead.</span>
     409                                                        </span>
     410                                                </label>
     411                                                <div class="cfwaf-curl-hosts">
     412                                                        <label for="cfwaf-curl-hosts" class="cfwaf-field-label">Except these hostnames</label>
     413                                                        <textarea id="cfwaf-curl-hosts" class="cfwaf-ip-textarea" rows="2" placeholder="api.example.com&#10;hooks.example.com" spellcheck="false" autocomplete="off"></textarea>
     414                                                        <p class="cfwaf-hint cfwaf-hint-muted">One hostname per line. curl requests to these hostnames are not blocked. IP addresses and ports are ignored.</p>
     415                                                </div>
    411416                                        </div>
    412417
    … …  
    485490
    486491                                        <div class="cfwaf-section">
     492                                                <h4>Attack Hosting Networks</h4>
     493                                                <p class="cfwaf-hint">These stay in the rule even when <strong>Block Web Host ASNs</strong> is off. Untick any network you need to allow.</p>
     494                                                <div class="cfwaf-service-list">
     495                                                        <label class="cfwaf-check-label cfwaf-service-row">
     496                                                                <input type="checkbox" data-setting="rule3.block_techoff">
     497                                                                <span><strong>AS48090 TECHOFF SRV / DMZHOST</strong><span class="cfwaf-check-desc">Exploit spray and credential probing.</span></span>
     498                                                        </label>
     499                                                        <label class="cfwaf-check-label cfwaf-service-row">
     500                                                                <input type="checkbox" data-setting="rule3.block_bucklog">
     501                                                                <span><strong>AS211590 Bucklog / FBW Networks</strong><span class="cfwaf-check-desc">Secrets scanning from this network.</span></span>
     502                                                        </label>
     503                                                        <label class="cfwaf-check-label cfwaf-service-row">
     504                                                                <input type="checkbox" data-setting="rule3.block_tcdatacenter">
     505                                                                <span><strong>AS218785 TC Datacenter</strong><span class="cfwaf-check-desc">WordPress exploit traffic from this network.</span></span>
     506                                                        </label>
     507                                                </div>
     508                                        </div>
     509
     510                                        <div class="cfwaf-section">
    487511                                                <div class="cfwaf-checkbox-grid">
    488512                                                        <label class="cfwaf-check-label"><input type="checkbox" data-setting="rule3.block_tor"> Block TOR Exit Nodes</label>
    … …  
    571595                                                <input type="checkbox" id="cfwaf-country-select-all"> <strong>Select All</strong>
    572596                                        </label>
    573                                         <button type="button" class="cfwaf-btn cfwaf-btn-ghost-dark" id="cfwaf-country-clear-all" style="padding:6px 14px;font-size:12px;">&#10005; Clear All</button>
    574                                         <input type="search" id="cfwaf-country-search" class="cfwaf-input cfwaf-search-input" placeholder="&#128269; Search countries&hellip;" style="max-width:220px;">
     597                                        <button type="button" class="cfwaf-btn cfwaf-btn-ghost-dark" id="cfwaf-country-clear-all" style="padding:6px 14px;font-size:12px;"><?php echo WMFC_Icons::svg( 'x' ); ?> Clear All</button>
     598                                        <input type="search" id="cfwaf-country-search" class="cfwaf-input cfwaf-search-input" placeholder="Search countries&hellip;" style="max-width:220px;">
    575599                                        <span style="margin-left:auto;font-size:12px;font-weight:600;color:#6b7280;" id="cfwaf-country-count">0 selected</span>
    576600                                </div>
    … …  
    578602                                <div class="cfwaf-country-regions">
    579603                                        <span class="cfwaf-country-regions-label">Quick Pick:</span>
    580                                         <button type="button" class="cfwaf-region-btn" data-region="north-america">&#127758; North America</button>
    581                                         <button type="button" class="cfwaf-region-btn" data-region="europe">&#127757; Europe</button>
    582                                         <button type="button" class="cfwaf-region-btn" data-region="asia">&#127759; Asia</button>
    583                                         <button type="button" class="cfwaf-region-btn" data-region="oceania">&#127756; Oceania</button>
    584                                         <button type="button" class="cfwaf-region-btn" data-region="latin-america">&#127758; Latin America</button>
    585                                         <button type="button" class="cfwaf-region-btn" data-region="mena">MENA</button>
    586                                         <button type="button" class="cfwaf-region-btn" data-region="gcc">GCC</button>
    587                                         <button type="button" class="cfwaf-region-btn" data-region="africa">&#127757; Africa</button>
    588                                 </div>
    589 
     604                                        <button type="button" class="cfwaf-region-btn" data-region="north-america"><?php echo WMFC_Icons::region( 'north-america' ); ?> North America</button>
     605                                        <button type="button" class="cfwaf-region-btn" data-region="europe"><?php echo WMFC_Icons::region( 'europe' ); ?> Europe</button>
     606                                        <button type="button" class="cfwaf-region-btn" data-region="asia"><?php echo WMFC_Icons::region( 'asia' ); ?> Asia</button>
     607                                        <button type="button" class="cfwaf-region-btn" data-region="oceania"><?php echo WMFC_Icons::region( 'oceania' ); ?> Oceania</button>
     608                                        <button type="button" class="cfwaf-region-btn" data-region="latin-america"><?php echo WMFC_Icons::region( 'latin-america' ); ?> Latin America</button>
     609                                        <button type="button" class="cfwaf-region-btn" data-region="mena"><?php echo WMFC_Icons::region( 'mena' ); ?> MENA</button>
     610                                        <button type="button" class="cfwaf-region-btn" data-region="gcc"><?php echo WMFC_Icons::region( 'gcc' ); ?> GCC</button>
     611                                        <button type="button" class="cfwaf-region-btn" data-region="africa"><?php echo WMFC_Icons::region( 'africa' ); ?> Africa</button>
     612                                </div>
     613
     614                                <?php $wmfc_flag_url = WMFC_URL . 'assets/flags/'; ?>
    590615                                <div class="cfwaf-zones-grid" id="cfwaf-country-grid" style="max-height:420px;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));margin-top:12px;">
    591                                         <div class="cfwaf-zone-item" data-cc="AF"><input type="checkbox" class="cfwaf-country-check" value="AF"><div><div class="cfwaf-zone-name">Afghanistan</div><div class="cfwaf-zone-plan">AF</div></div></div>
    592                                         <div class="cfwaf-zone-item" data-cc="AL"><input type="checkbox" class="cfwaf-country-check" value="AL"><div><div class="cfwaf-zone-name">Albania</div><div class="cfwaf-zone-plan">AL</div></div></div>
    593                                         <div class="cfwaf-zone-item" data-cc="DZ"><input type="checkbox" class="cfwaf-country-check" value="DZ"><div><div class="cfwaf-zone-name">Algeria</div><div class="cfwaf-zone-plan">DZ</div></div></div>
    594                                         <div class="cfwaf-zone-item" data-cc="AD"><input type="checkbox" class="cfwaf-country-check" value="AD"><div><div class="cfwaf-zone-name">Andorra</div><div class="cfwaf-zone-plan">AD</div></div></div>
    595                                         <div class="cfwaf-zone-item" data-cc="AO"><input type="checkbox" class="cfwaf-country-check" value="AO"><div><div class="cfwaf-zone-name">Angola</div><div class="cfwaf-zone-plan">AO</div></div></div>
    596                                         <div class="cfwaf-zone-item" data-cc="AG"><input type="checkbox" class="cfwaf-country-check" value="AG"><div><div class="cfwaf-zone-name">Antigua &amp; Barbuda</div><div class="cfwaf-zone-plan">AG</div></div></div>
    597                                         <div class="cfwaf-zone-item" data-cc="AR"><input type="checkbox" class="cfwaf-country-check" value="AR"><div><div class="cfwaf-zone-name">Argentina</div><div class="cfwaf-zone-plan">AR</div></div></div>
    598                                         <div class="cfwaf-zone-item" data-cc="AM"><input type="checkbox" class="cfwaf-country-check" value="AM"><div><div class="cfwaf-zone-name">Armenia</div><div class="cfwaf-zone-plan">AM</div></div></div>
    599                                         <div class="cfwaf-zone-item" data-cc="AU"><input type="checkbox" class="cfwaf-country-check" value="AU"><div><div class="cfwaf-zone-name">Australia</div><div class="cfwaf-zone-plan">AU</div></div></div>
    600                                         <div class="cfwaf-zone-item" data-cc="AT"><input type="checkbox" class="cfwaf-country-check" value="AT"><div><div class="cfwaf-zone-name">Austria</div><div class="cfwaf-zone-plan">AT</div></div></div>
    601                                         <div class="cfwaf-zone-item" data-cc="AZ"><input type="checkbox" class="cfwaf-country-check" value="AZ"><div><div class="cfwaf-zone-name">Azerbaijan</div><div class="cfwaf-zone-plan">AZ</div></div></div>
    602                                         <div class="cfwaf-zone-item" data-cc="BS"><input type="checkbox" class="cfwaf-country-check" value="BS"><div><div class="cfwaf-zone-name">Bahamas</div><div class="cfwaf-zone-plan">BS</div></div></div>
    603                                         <div class="cfwaf-zone-item" data-cc="BH"><input type="checkbox" class="cfwaf-country-check" value="BH"><div><div class="cfwaf-zone-name">Bahrain</div><div class="cfwaf-zone-plan">BH</div></div></div>
    604                                         <div class="cfwaf-zone-item" data-cc="BD"><input type="checkbox" class="cfwaf-country-check" value="BD"><div><div class="cfwaf-zone-name">Bangladesh</div><div class="cfwaf-zone-plan">BD</div></div></div>
    605                                         <div class="cfwaf-zone-item" data-cc="BB"><input type="checkbox" class="cfwaf-country-check" value="BB"><div><div class="cfwaf-zone-name">Barbados</div><div class="cfwaf-zone-plan">BB</div></div></div>
    606                                         <div class="cfwaf-zone-item" data-cc="BY"><input type="checkbox" class="cfwaf-country-check" value="BY"><div><div class="cfwaf-zone-name">Belarus</div><div class="cfwaf-zone-plan">BY</div></div></div>
    607                                         <div class="cfwaf-zone-item" data-cc="BE"><input type="checkbox" class="cfwaf-country-check" value="BE"><div><div class="cfwaf-zone-name">Belgium</div><div class="cfwaf-zone-plan">BE</div></div></div>
    608                                         <div class="cfwaf-zone-item" data-cc="BZ"><input type="checkbox" class="cfwaf-country-check" value="BZ"><div><div class="cfwaf-zone-name">Belize</div><div class="cfwaf-zone-plan">BZ</div></div></div>
    609                                         <div class="cfwaf-zone-item" data-cc="BJ"><input type="checkbox" class="cfwaf-country-check" value="BJ"><div><div class="cfwaf-zone-name">Benin</div><div class="cfwaf-zone-plan">BJ</div></div></div>
    610                                         <div class="cfwaf-zone-item" data-cc="BT"><input type="checkbox" class="cfwaf-country-check" value="BT"><div><div class="cfwaf-zone-name">Bhutan</div><div class="cfwaf-zone-plan">BT</div></div></div>
    611                                         <div class="cfwaf-zone-item" data-cc="BO"><input type="checkbox" class="cfwaf-country-check" value="BO"><div><div class="cfwaf-zone-name">Bolivia</div><div class="cfwaf-zone-plan">BO</div></div></div>
    612                                         <div class="cfwaf-zone-item" data-cc="BA"><input type="checkbox" class="cfwaf-country-check" value="BA"><div><div class="cfwaf-zone-name">Bosnia &amp; Herzegovina</div><div class="cfwaf-zone-plan">BA</div></div></div>
    613                                         <div class="cfwaf-zone-item" data-cc="BW"><input type="checkbox" class="cfwaf-country-check" value="BW"><div><div class="cfwaf-zone-name">Botswana</div><div class="cfwaf-zone-plan">BW</div></div></div>
    614                                         <div class="cfwaf-zone-item" data-cc="BR"><input type="checkbox" class="cfwaf-country-check" value="BR"><div><div class="cfwaf-zone-name">Brazil</div><div class="cfwaf-zone-plan">BR</div></div></div>
    615                                         <div class="cfwaf-zone-item" data-cc="BN"><input type="checkbox" class="cfwaf-country-check" value="BN"><div><div class="cfwaf-zone-name">Brunei</div><div class="cfwaf-zone-plan">BN</div></div></div>
    616                                         <div class="cfwaf-zone-item" data-cc="BG"><input type="checkbox" class="cfwaf-country-check" value="BG"><div><div class="cfwaf-zone-name">Bulgaria</div><div class="cfwaf-zone-plan">BG</div></div></div>
    617                                         <div class="cfwaf-zone-item" data-cc="BF"><input type="checkbox" class="cfwaf-country-check" value="BF"><div><div class="cfwaf-zone-name">Burkina Faso</div><div class="cfwaf-zone-plan">BF</div></div></div>
    618                                         <div class="cfwaf-zone-item" data-cc="BI"><input type="checkbox" class="cfwaf-country-check" value="BI"><div><div class="cfwaf-zone-name">Burundi</div><div class="cfwaf-zone-plan">BI</div></div></div>
    619                                         <div class="cfwaf-zone-item" data-cc="CV"><input type="checkbox" class="cfwaf-country-check" value="CV"><div><div class="cfwaf-zone-name">Cabo Verde</div><div class="cfwaf-zone-plan">CV</div></div></div>
    620                                         <div class="cfwaf-zone-item" data-cc="KH"><input type="checkbox" class="cfwaf-country-check" value="KH"><div><div class="cfwaf-zone-name">Cambodia</div><div class="cfwaf-zone-plan">KH</div></div></div>
    621                                         <div class="cfwaf-zone-item" data-cc="CM"><input type="checkbox" class="cfwaf-country-check" value="CM"><div><div class="cfwaf-zone-name">Cameroon</div><div class="cfwaf-zone-plan">CM</div></div></div>
    622                                         <div class="cfwaf-zone-item" data-cc="CA"><input type="checkbox" class="cfwaf-country-check" value="CA"><div><div class="cfwaf-zone-name">Canada</div><div class="cfwaf-zone-plan">CA</div></div></div>
    623                                         <div class="cfwaf-zone-item" data-cc="CF"><input type="checkbox" class="cfwaf-country-check" value="CF"><div><div class="cfwaf-zone-name">Central African Rep.</div><div class="cfwaf-zone-plan">CF</div></div></div>
    624                                         <div class="cfwaf-zone-item" data-cc="TD"><input type="checkbox" class="cfwaf-country-check" value="TD"><div><div class="cfwaf-zone-name">Chad</div><div class="cfwaf-zone-plan">TD</div></div></div>
    625                                         <div class="cfwaf-zone-item" data-cc="CL"><input type="checkbox" class="cfwaf-country-check" value="CL"><div><div class="cfwaf-zone-name">Chile</div><div class="cfwaf-zone-plan">CL</div></div></div>
    626                                         <div class="cfwaf-zone-item" data-cc="CN"><input type="checkbox" class="cfwaf-country-check" value="CN"><div><div class="cfwaf-zone-name">China</div><div class="cfwaf-zone-plan">CN</div></div></div>
    627                                         <div class="cfwaf-zone-item" data-cc="CO"><input type="checkbox" class="cfwaf-country-check" value="CO"><div><div class="cfwaf-zone-name">Colombia</div><div class="cfwaf-zone-plan">CO</div></div></div>
    628                                         <div class="cfwaf-zone-item" data-cc="KM"><input type="checkbox" class="cfwaf-country-check" value="KM"><div><div class="cfwaf-zone-name">Comoros</div><div class="cfwaf-zone-plan">KM</div></div></div>
    629                                         <div class="cfwaf-zone-item" data-cc="CG"><input type="checkbox" class="cfwaf-country-check" value="CG"><div><div class="cfwaf-zone-name">Congo</div><div class="cfwaf-zone-plan">CG</div></div></div>
    630                                         <div class="cfwaf-zone-item" data-cc="CR"><input type="checkbox" class="cfwaf-country-check" value="CR"><div><div class="cfwaf-zone-name">Costa Rica</div><div class="cfwaf-zone-plan">CR</div></div></div>
    631                                         <div class="cfwaf-zone-item" data-cc="HR"><input type="checkbox" class="cfwaf-country-check" value="HR"><div><div class="cfwaf-zone-name">Croatia</div><div class="cfwaf-zone-plan">HR</div></div></div>
    632                                         <div class="cfwaf-zone-item" data-cc="CU"><input type="checkbox" class="cfwaf-country-check" value="CU"><div><div class="cfwaf-zone-name">Cuba</div><div class="cfwaf-zone-plan">CU</div></div></div>
    633                                         <div class="cfwaf-zone-item" data-cc="CY"><input type="checkbox" class="cfwaf-country-check" value="CY"><div><div class="cfwaf-zone-name">Cyprus</div><div class="cfwaf-zone-plan">CY</div></div></div>
    634                                         <div class="cfwaf-zone-item" data-cc="CZ"><input type="checkbox" class="cfwaf-country-check" value="CZ"><div><div class="cfwaf-zone-name">Czech Republic</div><div class="cfwaf-zone-plan">CZ</div></div></div>
    635                                         <div class="cfwaf-zone-item" data-cc="DK"><input type="checkbox" class="cfwaf-country-check" value="DK"><div><div class="cfwaf-zone-name">Denmark</div><div class="cfwaf-zone-plan">DK</div></div></div>
    636                                         <div class="cfwaf-zone-item" data-cc="DJ"><input type="checkbox" class="cfwaf-country-check" value="DJ"><div><div class="cfwaf-zone-name">Djibouti</div><div class="cfwaf-zone-plan">DJ</div></div></div>
    637                                         <div class="cfwaf-zone-item" data-cc="DM"><input type="checkbox" class="cfwaf-country-check" value="DM"><div><div class="cfwaf-zone-name">Dominica</div><div class="cfwaf-zone-plan">DM</div></div></div>
    638                                         <div class="cfwaf-zone-item" data-cc="DO"><input type="checkbox" class="cfwaf-country-check" value="DO"><div><div class="cfwaf-zone-name">Dominican Republic</div><div class="cfwaf-zone-plan">DO</div></div></div>
    639                                         <div class="cfwaf-zone-item" data-cc="EC"><input type="checkbox" class="cfwaf-country-check" value="EC"><div><div class="cfwaf-zone-name">Ecuador</div><div class="cfwaf-zone-plan">EC</div></div></div>
    640                                         <div class="cfwaf-zone-item" data-cc="EG"><input type="checkbox" class="cfwaf-country-check" value="EG"><div><div class="cfwaf-zone-name">Egypt</div><div class="cfwaf-zone-plan">EG</div></div></div>
    641                                         <div class="cfwaf-zone-item" data-cc="SV"><input type="checkbox" class="cfwaf-country-check" value="SV"><div><div class="cfwaf-zone-name">El Salvador</div><div class="cfwaf-zone-plan">SV</div></div></div>
    642                                         <div class="cfwaf-zone-item" data-cc="GQ"><input type="checkbox" class="cfwaf-country-check" value="GQ"><div><div class="cfwaf-zone-name">Equatorial Guinea</div><div class="cfwaf-zone-plan">GQ</div></div></div>
    643                                         <div class="cfwaf-zone-item" data-cc="ER"><input type="checkbox" class="cfwaf-country-check" value="ER"><div><div class="cfwaf-zone-name">Eritrea</div><div class="cfwaf-zone-plan">ER</div></div></div>
    644                                         <div class="cfwaf-zone-item" data-cc="EE"><input type="checkbox" class="cfwaf-country-check" value="EE"><div><div class="cfwaf-zone-name">Estonia</div><div class="cfwaf-zone-plan">EE</div></div></div>
    645                                         <div class="cfwaf-zone-item" data-cc="SZ"><input type="checkbox" class="cfwaf-country-check" value="SZ"><div><div class="cfwaf-zone-name">Eswatini</div><div class="cfwaf-zone-plan">SZ</div></div></div>
    646                                         <div class="cfwaf-zone-item" data-cc="ET"><input type="checkbox" class="cfwaf-country-check" value="ET"><div><div class="cfwaf-zone-name">Ethiopia</div><div class="cfwaf-zone-plan">ET</div></div></div>
    647                                         <div class="cfwaf-zone-item" data-cc="FJ"><input type="checkbox" class="cfwaf-country-check" value="FJ"><div><div class="cfwaf-zone-name">Fiji</div><div class="cfwaf-zone-plan">FJ</div></div></div>
    648                                         <div class="cfwaf-zone-item" data-cc="FI"><input type="checkbox" class="cfwaf-country-check" value="FI"><div><div class="cfwaf-zone-name">Finland</div><div class="cfwaf-zone-plan">FI</div></div></div>
    649                                         <div class="cfwaf-zone-item" data-cc="FR"><input type="checkbox" class="cfwaf-country-check" value="FR"><div><div class="cfwaf-zone-name">France</div><div class="cfwaf-zone-plan">FR</div></div></div>
    650                                         <div class="cfwaf-zone-item" data-cc="GA"><input type="checkbox" class="cfwaf-country-check" value="GA"><div><div class="cfwaf-zone-name">Gabon</div><div class="cfwaf-zone-plan">GA</div></div></div>
    651                                         <div class="cfwaf-zone-item" data-cc="GM"><input type="checkbox" class="cfwaf-country-check" value="GM"><div><div class="cfwaf-zone-name">Gambia</div><div class="cfwaf-zone-plan">GM</div></div></div>
    652                                         <div class="cfwaf-zone-item" data-cc="GE"><input type="checkbox" class="cfwaf-country-check" value="GE"><div><div class="cfwaf-zone-name">Georgia</div><div class="cfwaf-zone-plan">GE</div></div></div>
    653                                         <div class="cfwaf-zone-item" data-cc="DE"><input type="checkbox" class="cfwaf-country-check" value="DE"><div><div class="cfwaf-zone-name">Germany</div><div class="cfwaf-zone-plan">DE</div></div></div>
    654                                         <div class="cfwaf-zone-item" data-cc="GH"><input type="checkbox" class="cfwaf-country-check" value="GH"><div><div class="cfwaf-zone-name">Ghana</div><div class="cfwaf-zone-plan">GH</div></div></div>
    655                                         <div class="cfwaf-zone-item" data-cc="GR"><input type="checkbox" class="cfwaf-country-check" value="GR"><div><div class="cfwaf-zone-name">Greece</div><div class="cfwaf-zone-plan">GR</div></div></div>
    656                                         <div class="cfwaf-zone-item" data-cc="GD"><input type="checkbox" class="cfwaf-country-check" value="GD"><div><div class="cfwaf-zone-name">Grenada</div><div class="cfwaf-zone-plan">GD</div></div></div>
    657                                         <div class="cfwaf-zone-item" data-cc="GT"><input type="checkbox" class="cfwaf-country-check" value="GT"><div><div class="cfwaf-zone-name">Guatemala</div><div class="cfwaf-zone-plan">GT</div></div></div>
    658                                         <div class="cfwaf-zone-item" data-cc="GN"><input type="checkbox" class="cfwaf-country-check" value="GN"><div><div class="cfwaf-zone-name">Guinea</div><div class="cfwaf-zone-plan">GN</div></div></div>
    659                                         <div class="cfwaf-zone-item" data-cc="GW"><input type="checkbox" class="cfwaf-country-check" value="GW"><div><div class="cfwaf-zone-name">Guinea-Bissau</div><div class="cfwaf-zone-plan">GW</div></div></div>
    660                                         <div class="cfwaf-zone-item" data-cc="GY"><input type="checkbox" class="cfwaf-country-check" value="GY"><div><div class="cfwaf-zone-name">Guyana</div><div class="cfwaf-zone-plan">GY</div></div></div>
    661                                         <div class="cfwaf-zone-item" data-cc="HT"><input type="checkbox" class="cfwaf-country-check" value="HT"><div><div class="cfwaf-zone-name">Haiti</div><div class="cfwaf-zone-plan">HT</div></div></div>
    662                                         <div class="cfwaf-zone-item" data-cc="HN"><input type="checkbox" class="cfwaf-country-check" value="HN"><div><div class="cfwaf-zone-name">Honduras</div><div class="cfwaf-zone-plan">HN</div></div></div>
    663                                         <div class="cfwaf-zone-item" data-cc="HK"><input type="checkbox" class="cfwaf-country-check" value="HK"><div><div class="cfwaf-zone-name">Hong Kong</div><div class="cfwaf-zone-plan">HK</div></div></div>
    664                                         <div class="cfwaf-zone-item" data-cc="HU"><input type="checkbox" class="cfwaf-country-check" value="HU"><div><div class="cfwaf-zone-name">Hungary</div><div class="cfwaf-zone-plan">HU</div></div></div>
    665                                         <div class="cfwaf-zone-item" data-cc="IS"><input type="checkbox" class="cfwaf-country-check" value="IS"><div><div class="cfwaf-zone-name">Iceland</div><div class="cfwaf-zone-plan">IS</div></div></div>
    666                                         <div class="cfwaf-zone-item" data-cc="IN"><input type="checkbox" class="cfwaf-country-check" value="IN"><div><div class="cfwaf-zone-name">India</div><div class="cfwaf-zone-plan">IN</div></div></div>
    667                                         <div class="cfwaf-zone-item" data-cc="ID"><input type="checkbox" class="cfwaf-country-check" value="ID"><div><div class="cfwaf-zone-name">Indonesia</div><div class="cfwaf-zone-plan">ID</div></div></div>
    668                                         <div class="cfwaf-zone-item" data-cc="IR"><input type="checkbox" class="cfwaf-country-check" value="IR"><div><div class="cfwaf-zone-name">Iran</div><div class="cfwaf-zone-plan">IR</div></div></div>
    669                                         <div class="cfwaf-zone-item" data-cc="IQ"><input type="checkbox" class="cfwaf-country-check" value="IQ"><div><div class="cfwaf-zone-name">Iraq</div><div class="cfwaf-zone-plan">IQ</div></div></div>
    670                                         <div class="cfwaf-zone-item" data-cc="IE"><input type="checkbox" class="cfwaf-country-check" value="IE"><div><div class="cfwaf-zone-name">Ireland</div><div class="cfwaf-zone-plan">IE</div></div></div>
    671                                         <div class="cfwaf-zone-item" data-cc="IL"><input type="checkbox" class="cfwaf-country-check" value="IL"><div><div class="cfwaf-zone-name">Israel</div><div class="cfwaf-zone-plan">IL</div></div></div>
    672                                         <div class="cfwaf-zone-item" data-cc="IT"><input type="checkbox" class="cfwaf-country-check" value="IT"><div><div class="cfwaf-zone-name">Italy</div><div class="cfwaf-zone-plan">IT</div></div></div>
    673                                         <div class="cfwaf-zone-item" data-cc="JM"><input type="checkbox" class="cfwaf-country-check" value="JM"><div><div class="cfwaf-zone-name">Jamaica</div><div class="cfwaf-zone-plan">JM</div></div></div>
    674                                         <div class="cfwaf-zone-item" data-cc="JP"><input type="checkbox" class="cfwaf-country-check" value="JP"><div><div class="cfwaf-zone-name">Japan</div><div class="cfwaf-zone-plan">JP</div></div></div>
    675                                         <div class="cfwaf-zone-item" data-cc="JO"><input type="checkbox" class="cfwaf-country-check" value="JO"><div><div class="cfwaf-zone-name">Jordan</div><div class="cfwaf-zone-plan">JO</div></div></div>
    676                                         <div class="cfwaf-zone-item" data-cc="KZ"><input type="checkbox" class="cfwaf-country-check" value="KZ"><div><div class="cfwaf-zone-name">Kazakhstan</div><div class="cfwaf-zone-plan">KZ</div></div></div>
    677                                         <div class="cfwaf-zone-item" data-cc="KE"><input type="checkbox" class="cfwaf-country-check" value="KE"><div><div class="cfwaf-zone-name">Kenya</div><div class="cfwaf-zone-plan">KE</div></div></div>
    678                                         <div class="cfwaf-zone-item" data-cc="KI"><input type="checkbox" class="cfwaf-country-check" value="KI"><div><div class="cfwaf-zone-name">Kiribati</div><div class="cfwaf-zone-plan">KI</div></div></div>
    679                                         <div class="cfwaf-zone-item" data-cc="KW"><input type="checkbox" class="cfwaf-country-check" value="KW"><div><div class="cfwaf-zone-name">Kuwait</div><div class="cfwaf-zone-plan">KW</div></div></div>
    680                                         <div class="cfwaf-zone-item" data-cc="KG"><input type="checkbox" class="cfwaf-country-check" value="KG"><div><div class="cfwaf-zone-name">Kyrgyzstan</div><div class="cfwaf-zone-plan">KG</div></div></div>
    681                                         <div class="cfwaf-zone-item" data-cc="LA"><input type="checkbox" class="cfwaf-country-check" value="LA"><div><div class="cfwaf-zone-name">Laos</div><div class="cfwaf-zone-plan">LA</div></div></div>
    682                                         <div class="cfwaf-zone-item" data-cc="LV"><input type="checkbox" class="cfwaf-country-check" value="LV"><div><div class="cfwaf-zone-name">Latvia</div><div class="cfwaf-zone-plan">LV</div></div></div>
    683                                         <div class="cfwaf-zone-item" data-cc="LB"><input type="checkbox" class="cfwaf-country-check" value="LB"><div><div class="cfwaf-zone-name">Lebanon</div><div class="cfwaf-zone-plan">LB</div></div></div>
    684                                         <div class="cfwaf-zone-item" data-cc="LS"><input type="checkbox" class="cfwaf-country-check" value="LS"><div><div class="cfwaf-zone-name">Lesotho</div><div class="cfwaf-zone-plan">LS</div></div></div>
    685                                         <div class="cfwaf-zone-item" data-cc="LR"><input type="checkbox" class="cfwaf-country-check" value="LR"><div><div class="cfwaf-zone-name">Liberia</div><div class="cfwaf-zone-plan">LR</div></div></div>
    686                                         <div class="cfwaf-zone-item" data-cc="LY"><input type="checkbox" class="cfwaf-country-check" value="LY"><div><div class="cfwaf-zone-name">Libya</div><div class="cfwaf-zone-plan">LY</div></div></div>
    687                                         <div class="cfwaf-zone-item" data-cc="LI"><input type="checkbox" class="cfwaf-country-check" value="LI"><div><div class="cfwaf-zone-name">Liechtenstein</div><div class="cfwaf-zone-plan">LI</div></div></div>
    688                                         <div class="cfwaf-zone-item" data-cc="LT"><input type="checkbox" class="cfwaf-country-check" value="LT"><div><div class="cfwaf-zone-name">Lithuania</div><div class="cfwaf-zone-plan">LT</div></div></div>
    689                                         <div class="cfwaf-zone-item" data-cc="LU"><input type="checkbox" class="cfwaf-country-check" value="LU"><div><div class="cfwaf-zone-name">Luxembourg</div><div class="cfwaf-zone-plan">LU</div></div></div>
    690                                         <div class="cfwaf-zone-item" data-cc="MG"><input type="checkbox" class="cfwaf-country-check" value="MG"><div><div class="cfwaf-zone-name">Madagascar</div><div class="cfwaf-zone-plan">MG</div></div></div>
    691                                         <div class="cfwaf-zone-item" data-cc="MW"><input type="checkbox" class="cfwaf-country-check" value="MW"><div><div class="cfwaf-zone-name">Malawi</div><div class="cfwaf-zone-plan">MW</div></div></div>
    692                                         <div class="cfwaf-zone-item" data-cc="MY"><input type="checkbox" class="cfwaf-country-check" value="MY"><div><div class="cfwaf-zone-name">Malaysia</div><div class="cfwaf-zone-plan">MY</div></div></div>
    693                                         <div class="cfwaf-zone-item" data-cc="MV"><input type="checkbox" class="cfwaf-country-check" value="MV"><div><div class="cfwaf-zone-name">Maldives</div><div class="cfwaf-zone-plan">MV</div></div></div>
    694                                         <div class="cfwaf-zone-item" data-cc="ML"><input type="checkbox" class="cfwaf-country-check" value="ML"><div><div class="cfwaf-zone-name">Mali</div><div class="cfwaf-zone-plan">ML</div></div></div>
    695                                         <div class="cfwaf-zone-item" data-cc="MT"><input type="checkbox" class="cfwaf-country-check" value="MT"><div><div class="cfwaf-zone-name">Malta</div><div class="cfwaf-zone-plan">MT</div></div></div>
    696                                         <div class="cfwaf-zone-item" data-cc="MH"><input type="checkbox" class="cfwaf-country-check" value="MH"><div><div class="cfwaf-zone-name">Marshall Islands</div><div class="cfwaf-zone-plan">MH</div></div></div>
    697                                         <div class="cfwaf-zone-item" data-cc="MR"><input type="checkbox" class="cfwaf-country-check" value="MR"><div><div class="cfwaf-zone-name">Mauritania</div><div class="cfwaf-zone-plan">MR</div></div></div>
    698                                         <div class="cfwaf-zone-item" data-cc="MU"><input type="checkbox" class="cfwaf-country-check" value="MU"><div><div class="cfwaf-zone-name">Mauritius</div><div class="cfwaf-zone-plan">MU</div></div></div>
    699                                         <div class="cfwaf-zone-item" data-cc="MX"><input type="checkbox" class="cfwaf-country-check" value="MX"><div><div class="cfwaf-zone-name">Mexico</div><div class="cfwaf-zone-plan">MX</div></div></div>
    700                                         <div class="cfwaf-zone-item" data-cc="FM"><input type="checkbox" class="cfwaf-country-check" value="FM"><div><div class="cfwaf-zone-name">Micronesia</div><div class="cfwaf-zone-plan">FM</div></div></div>
    701                                         <div class="cfwaf-zone-item" data-cc="MD"><input type="checkbox" class="cfwaf-country-check" value="MD"><div><div class="cfwaf-zone-name">Moldova</div><div class="cfwaf-zone-plan">MD</div></div></div>
    702                                         <div class="cfwaf-zone-item" data-cc="MC"><input type="checkbox" class="cfwaf-country-check" value="MC"><div><div class="cfwaf-zone-name">Monaco</div><div class="cfwaf-zone-plan">MC</div></div></div>
    703                                         <div class="cfwaf-zone-item" data-cc="MN"><input type="checkbox" class="cfwaf-country-check" value="MN"><div><div class="cfwaf-zone-name">Mongolia</div><div class="cfwaf-zone-plan">MN</div></div></div>
    704                                         <div class="cfwaf-zone-item" data-cc="ME"><input type="checkbox" class="cfwaf-country-check" value="ME"><div><div class="cfwaf-zone-name">Montenegro</div><div class="cfwaf-zone-plan">ME</div></div></div>
    705                                         <div class="cfwaf-zone-item" data-cc="MA"><input type="checkbox" class="cfwaf-country-check" value="MA"><div><div class="cfwaf-zone-name">Morocco</div><div class="cfwaf-zone-plan">MA</div></div></div>
    706                                         <div class="cfwaf-zone-item" data-cc="MZ"><input type="checkbox" class="cfwaf-country-check" value="MZ"><div><div class="cfwaf-zone-name">Mozambique</div><div class="cfwaf-zone-plan">MZ</div></div></div>
    707                                         <div class="cfwaf-zone-item" data-cc="MM"><input type="checkbox" class="cfwaf-country-check" value="MM"><div><div class="cfwaf-zone-name">Myanmar</div><div class="cfwaf-zone-plan">MM</div></div></div>
    708                                         <div class="cfwaf-zone-item" data-cc="NA"><input type="checkbox" class="cfwaf-country-check" value="NA"><div><div class="cfwaf-zone-name">Namibia</div><div class="cfwaf-zone-plan">NA</div></div></div>
    709                                         <div class="cfwaf-zone-item" data-cc="NR"><input type="checkbox" class="cfwaf-country-check" value="NR"><div><div class="cfwaf-zone-name">Nauru</div><div class="cfwaf-zone-plan">NR</div></div></div>
    710                                         <div class="cfwaf-zone-item" data-cc="NP"><input type="checkbox" class="cfwaf-country-check" value="NP"><div><div class="cfwaf-zone-name">Nepal</div><div class="cfwaf-zone-plan">NP</div></div></div>
    711                                         <div class="cfwaf-zone-item" data-cc="NL"><input type="checkbox" class="cfwaf-country-check" value="NL"><div><div class="cfwaf-zone-name">Netherlands</div><div class="cfwaf-zone-plan">NL</div></div></div>
    712                                         <div class="cfwaf-zone-item" data-cc="NZ"><input type="checkbox" class="cfwaf-country-check" value="NZ"><div><div class="cfwaf-zone-name">New Zealand</div><div class="cfwaf-zone-plan">NZ</div></div></div>
    713                                         <div class="cfwaf-zone-item" data-cc="NI"><input type="checkbox" class="cfwaf-country-check" value="NI"><div><div class="cfwaf-zone-name">Nicaragua</div><div class="cfwaf-zone-plan">NI</div></div></div>
    714                                         <div class="cfwaf-zone-item" data-cc="NE"><input type="checkbox" class="cfwaf-country-check" value="NE"><div><div class="cfwaf-zone-name">Niger</div><div class="cfwaf-zone-plan">NE</div></div></div>
    715                                         <div class="cfwaf-zone-item" data-cc="NG"><input type="checkbox" class="cfwaf-country-check" value="NG"><div><div class="cfwaf-zone-name">Nigeria</div><div class="cfwaf-zone-plan">NG</div></div></div>
    716                                         <div class="cfwaf-zone-item" data-cc="KP"><input type="checkbox" class="cfwaf-country-check" value="KP"><div><div class="cfwaf-zone-name">North Korea</div><div class="cfwaf-zone-plan">KP</div></div></div>
    717                                         <div class="cfwaf-zone-item" data-cc="MK"><input type="checkbox" class="cfwaf-country-check" value="MK"><div><div class="cfwaf-zone-name">North Macedonia</div><div class="cfwaf-zone-plan">MK</div></div></div>
    718                                         <div class="cfwaf-zone-item" data-cc="NO"><input type="checkbox" class="cfwaf-country-check" value="NO"><div><div class="cfwaf-zone-name">Norway</div><div class="cfwaf-zone-plan">NO</div></div></div>
    719                                         <div class="cfwaf-zone-item" data-cc="OM"><input type="checkbox" class="cfwaf-country-check" value="OM"><div><div class="cfwaf-zone-name">Oman</div><div class="cfwaf-zone-plan">OM</div></div></div>
    720                                         <div class="cfwaf-zone-item" data-cc="PK"><input type="checkbox" class="cfwaf-country-check" value="PK"><div><div class="cfwaf-zone-name">Pakistan</div><div class="cfwaf-zone-plan">PK</div></div></div>
    721                                         <div class="cfwaf-zone-item" data-cc="PW"><input type="checkbox" class="cfwaf-country-check" value="PW"><div><div class="cfwaf-zone-name">Palau</div><div class="cfwaf-zone-plan">PW</div></div></div>
    722                                         <div class="cfwaf-zone-item" data-cc="PS"><input type="checkbox" class="cfwaf-country-check" value="PS"><div><div class="cfwaf-zone-name">Palestine</div><div class="cfwaf-zone-plan">PS</div></div></div>
    723                                         <div class="cfwaf-zone-item" data-cc="PA"><input type="checkbox" class="cfwaf-country-check" value="PA"><div><div class="cfwaf-zone-name">Panama</div><div class="cfwaf-zone-plan">PA</div></div></div>
    724                                         <div class="cfwaf-zone-item" data-cc="PG"><input type="checkbox" class="cfwaf-country-check" value="PG"><div><div class="cfwaf-zone-name">Papua New Guinea</div><div class="cfwaf-zone-plan">PG</div></div></div>
    725                                         <div class="cfwaf-zone-item" data-cc="PY"><input type="checkbox" class="cfwaf-country-check" value="PY"><div><div class="cfwaf-zone-name">Paraguay</div><div class="cfwaf-zone-plan">PY</div></div></div>
    726                                         <div class="cfwaf-zone-item" data-cc="PE"><input type="checkbox" class="cfwaf-country-check" value="PE"><div><div class="cfwaf-zone-name">Peru</div><div class="cfwaf-zone-plan">PE</div></div></div>
    727                                         <div class="cfwaf-zone-item" data-cc="PH"><input type="checkbox" class="cfwaf-country-check" value="PH"><div><div class="cfwaf-zone-name">Philippines</div><div class="cfwaf-zone-plan">PH</div></div></div>
    728                                         <div class="cfwaf-zone-item" data-cc="PL"><input type="checkbox" class="cfwaf-country-check" value="PL"><div><div class="cfwaf-zone-name">Poland</div><div class="cfwaf-zone-plan">PL</div></div></div>
    729                                         <div class="cfwaf-zone-item" data-cc="PT"><input type="checkbox" class="cfwaf-country-check" value="PT"><div><div class="cfwaf-zone-name">Portugal</div><div class="cfwaf-zone-plan">PT</div></div></div>
    730                                         <div class="cfwaf-zone-item" data-cc="QA"><input type="checkbox" class="cfwaf-country-check" value="QA"><div><div class="cfwaf-zone-name">Qatar</div><div class="cfwaf-zone-plan">QA</div></div></div>
    731                                         <div class="cfwaf-zone-item" data-cc="RO"><input type="checkbox" class="cfwaf-country-check" value="RO"><div><div class="cfwaf-zone-name">Romania</div><div class="cfwaf-zone-plan">RO</div></div></div>
    732                                         <div class="cfwaf-zone-item" data-cc="RU"><input type="checkbox" class="cfwaf-country-check" value="RU"><div><div class="cfwaf-zone-name">Russia</div><div class="cfwaf-zone-plan">RU</div></div></div>
    733                                         <div class="cfwaf-zone-item" data-cc="RW"><input type="checkbox" class="cfwaf-country-check" value="RW"><div><div class="cfwaf-zone-name">Rwanda</div><div class="cfwaf-zone-plan">RW</div></div></div>
    734                                         <div class="cfwaf-zone-item" data-cc="KN"><input type="checkbox" class="cfwaf-country-check" value="KN"><div><div class="cfwaf-zone-name">Saint Kitts &amp; Nevis</div><div class="cfwaf-zone-plan">KN</div></div></div>
    735                                         <div class="cfwaf-zone-item" data-cc="LC"><input type="checkbox" class="cfwaf-country-check" value="LC"><div><div class="cfwaf-zone-name">Saint Lucia</div><div class="cfwaf-zone-plan">LC</div></div></div>
    736                                         <div class="cfwaf-zone-item" data-cc="VC"><input type="checkbox" class="cfwaf-country-check" value="VC"><div><div class="cfwaf-zone-name">Saint Vincent</div><div class="cfwaf-zone-plan">VC</div></div></div>
    737                                         <div class="cfwaf-zone-item" data-cc="WS"><input type="checkbox" class="cfwaf-country-check" value="WS"><div><div class="cfwaf-zone-name">Samoa</div><div class="cfwaf-zone-plan">WS</div></div></div>
    738                                         <div class="cfwaf-zone-item" data-cc="SM"><input type="checkbox" class="cfwaf-country-check" value="SM"><div><div class="cfwaf-zone-name">San Marino</div><div class="cfwaf-zone-plan">SM</div></div></div>
    739                                         <div class="cfwaf-zone-item" data-cc="ST"><input type="checkbox" class="cfwaf-country-check" value="ST"><div><div class="cfwaf-zone-name">Sao Tome &amp; Principe</div><div class="cfwaf-zone-plan">ST</div></div></div>
    740                                         <div class="cfwaf-zone-item" data-cc="SA"><input type="checkbox" class="cfwaf-country-check" value="SA"><div><div class="cfwaf-zone-name">Saudi Arabia</div><div class="cfwaf-zone-plan">SA</div></div></div>
    741                                         <div class="cfwaf-zone-item" data-cc="SN"><input type="checkbox" class="cfwaf-country-check" value="SN"><div><div class="cfwaf-zone-name">Senegal</div><div class="cfwaf-zone-plan">SN</div></div></div>
    742                                         <div class="cfwaf-zone-item" data-cc="RS"><input type="checkbox" class="cfwaf-country-check" value="RS"><div><div class="cfwaf-zone-name">Serbia</div><div class="cfwaf-zone-plan">RS</div></div></div>
    743                                         <div class="cfwaf-zone-item" data-cc="SC"><input type="checkbox" class="cfwaf-country-check" value="SC"><div><div class="cfwaf-zone-name">Seychelles</div><div class="cfwaf-zone-plan">SC</div></div></div>
    744                                         <div class="cfwaf-zone-item" data-cc="SL"><input type="checkbox" class="cfwaf-country-check" value="SL"><div><div class="cfwaf-zone-name">Sierra Leone</div><div class="cfwaf-zone-plan">SL</div></div></div>
    745                                         <div class="cfwaf-zone-item" data-cc="SG"><input type="checkbox" class="cfwaf-country-check" value="SG"><div><div class="cfwaf-zone-name">Singapore</div><div class="cfwaf-zone-plan">SG</div></div></div>
    746                                         <div class="cfwaf-zone-item" data-cc="SK"><input type="checkbox" class="cfwaf-country-check" value="SK"><div><div class="cfwaf-zone-name">Slovakia</div><div class="cfwaf-zone-plan">SK</div></div></div>
    747                                         <div class="cfwaf-zone-item" data-cc="SI"><input type="checkbox" class="cfwaf-country-check" value="SI"><div><div class="cfwaf-zone-name">Slovenia</div><div class="cfwaf-zone-plan">SI</div></div></div>
    748                                         <div class="cfwaf-zone-item" data-cc="SB"><input type="checkbox" class="cfwaf-country-check" value="SB"><div><div class="cfwaf-zone-name">Solomon Islands</div><div class="cfwaf-zone-plan">SB</div></div></div>
    749                                         <div class="cfwaf-zone-item" data-cc="SO"><input type="checkbox" class="cfwaf-country-check" value="SO"><div><div class="cfwaf-zone-name">Somalia</div><div class="cfwaf-zone-plan">SO</div></div></div>
    750                                         <div class="cfwaf-zone-item" data-cc="ZA"><input type="checkbox" class="cfwaf-country-check" value="ZA"><div><div class="cfwaf-zone-name">South Africa</div><div class="cfwaf-zone-plan">ZA</div></div></div>
    751                                         <div class="cfwaf-zone-item" data-cc="KR"><input type="checkbox" class="cfwaf-country-check" value="KR"><div><div class="cfwaf-zone-name">South Korea</div><div class="cfwaf-zone-plan">KR</div></div></div>
    752                                         <div class="cfwaf-zone-item" data-cc="SS"><input type="checkbox" class="cfwaf-country-check" value="SS"><div><div class="cfwaf-zone-name">South Sudan</div><div class="cfwaf-zone-plan">SS</div></div></div>
    753                                         <div class="cfwaf-zone-item" data-cc="ES"><input type="checkbox" class="cfwaf-country-check" value="ES"><div><div class="cfwaf-zone-name">Spain</div><div class="cfwaf-zone-plan">ES</div></div></div>
    754                                         <div class="cfwaf-zone-item" data-cc="LK"><input type="checkbox" class="cfwaf-country-check" value="LK"><div><div class="cfwaf-zone-name">Sri Lanka</div><div class="cfwaf-zone-plan">LK</div></div></div>
    755                                         <div class="cfwaf-zone-item" data-cc="SD"><input type="checkbox" class="cfwaf-country-check" value="SD"><div><div class="cfwaf-zone-name">Sudan</div><div class="cfwaf-zone-plan">SD</div></div></div>
    756                                         <div class="cfwaf-zone-item" data-cc="SR"><input type="checkbox" class="cfwaf-country-check" value="SR"><div><div class="cfwaf-zone-name">Suriname</div><div class="cfwaf-zone-plan">SR</div></div></div>
    757                                         <div class="cfwaf-zone-item" data-cc="SE"><input type="checkbox" class="cfwaf-country-check" value="SE"><div><div class="cfwaf-zone-name">Sweden</div><div class="cfwaf-zone-plan">SE</div></div></div>
    758                                         <div class="cfwaf-zone-item" data-cc="CH"><input type="checkbox" class="cfwaf-country-check" value="CH"><div><div class="cfwaf-zone-name">Switzerland</div><div class="cfwaf-zone-plan">CH</div></div></div>
    759                                         <div class="cfwaf-zone-item" data-cc="SY"><input type="checkbox" class="cfwaf-country-check" value="SY"><div><div class="cfwaf-zone-name">Syria</div><div class="cfwaf-zone-plan">SY</div></div></div>
    760                                         <div class="cfwaf-zone-item" data-cc="TW"><input type="checkbox" class="cfwaf-country-check" value="TW"><div><div class="cfwaf-zone-name">Taiwan</div><div class="cfwaf-zone-plan">TW</div></div></div>
    761                                         <div class="cfwaf-zone-item" data-cc="TJ"><input type="checkbox" class="cfwaf-country-check" value="TJ"><div><div class="cfwaf-zone-name">Tajikistan</div><div class="cfwaf-zone-plan">TJ</div></div></div>
    762                                         <div class="cfwaf-zone-item" data-cc="TZ"><input type="checkbox" class="cfwaf-country-check" value="TZ"><div><div class="cfwaf-zone-name">Tanzania</div><div class="cfwaf-zone-plan">TZ</div></div></div>
    763                                         <div class="cfwaf-zone-item" data-cc="TH"><input type="checkbox" class="cfwaf-country-check" value="TH"><div><div class="cfwaf-zone-name">Thailand</div><div class="cfwaf-zone-plan">TH</div></div></div>
    764                                         <div class="cfwaf-zone-item" data-cc="TL"><input type="checkbox" class="cfwaf-country-check" value="TL"><div><div class="cfwaf-zone-name">Timor-Leste</div><div class="cfwaf-zone-plan">TL</div></div></div>
    765                                         <div class="cfwaf-zone-item" data-cc="TG"><input type="checkbox" class="cfwaf-country-check" value="TG"><div><div class="cfwaf-zone-name">Togo</div><div class="cfwaf-zone-plan">TG</div></div></div>
    766                                         <div class="cfwaf-zone-item" data-cc="TO"><input type="checkbox" class="cfwaf-country-check" value="TO"><div><div class="cfwaf-zone-name">Tonga</div><div class="cfwaf-zone-plan">TO</div></div></div>
    767                                         <div class="cfwaf-zone-item" data-cc="TT"><input type="checkbox" class="cfwaf-country-check" value="TT"><div><div class="cfwaf-zone-name">Trinidad &amp; Tobago</div><div class="cfwaf-zone-plan">TT</div></div></div>
    768                                         <div class="cfwaf-zone-item" data-cc="TN"><input type="checkbox" class="cfwaf-country-check" value="TN"><div><div class="cfwaf-zone-name">Tunisia</div><div class="cfwaf-zone-plan">TN</div></div></div>
    769                                         <div class="cfwaf-zone-item" data-cc="TR"><input type="checkbox" class="cfwaf-country-check" value="TR"><div><div class="cfwaf-zone-name">Turkey</div><div class="cfwaf-zone-plan">TR</div></div></div>
    770                                         <div class="cfwaf-zone-item" data-cc="TM"><input type="checkbox" class="cfwaf-country-check" value="TM"><div><div class="cfwaf-zone-name">Turkmenistan</div><div class="cfwaf-zone-plan">TM</div></div></div>
    771                                         <div class="cfwaf-zone-item" data-cc="TV"><input type="checkbox" class="cfwaf-country-check" value="TV"><div><div class="cfwaf-zone-name">Tuvalu</div><div class="cfwaf-zone-plan">TV</div></div></div>
    772                                         <div class="cfwaf-zone-item" data-cc="UG"><input type="checkbox" class="cfwaf-country-check" value="UG"><div><div class="cfwaf-zone-name">Uganda</div><div class="cfwaf-zone-plan">UG</div></div></div>
    773                                         <div class="cfwaf-zone-item" data-cc="UA"><input type="checkbox" class="cfwaf-country-check" value="UA"><div><div class="cfwaf-zone-name">Ukraine</div><div class="cfwaf-zone-plan">UA</div></div></div>
    774                                         <div class="cfwaf-zone-item" data-cc="AE"><input type="checkbox" class="cfwaf-country-check" value="AE"><div><div class="cfwaf-zone-name">United Arab Emirates</div><div class="cfwaf-zone-plan">AE</div></div></div>
    775                                         <div class="cfwaf-zone-item" data-cc="GB"><input type="checkbox" class="cfwaf-country-check" value="GB"><div><div class="cfwaf-zone-name">United Kingdom</div><div class="cfwaf-zone-plan">GB</div></div></div>
    776                                         <div class="cfwaf-zone-item" data-cc="US"><input type="checkbox" class="cfwaf-country-check" value="US"><div><div class="cfwaf-zone-name">United States</div><div class="cfwaf-zone-plan">US</div></div></div>
    777                                         <div class="cfwaf-zone-item" data-cc="UY"><input type="checkbox" class="cfwaf-country-check" value="UY"><div><div class="cfwaf-zone-name">Uruguay</div><div class="cfwaf-zone-plan">UY</div></div></div>
    778                                         <div class="cfwaf-zone-item" data-cc="UZ"><input type="checkbox" class="cfwaf-country-check" value="UZ"><div><div class="cfwaf-zone-name">Uzbekistan</div><div class="cfwaf-zone-plan">UZ</div></div></div>
    779                                         <div class="cfwaf-zone-item" data-cc="VU"><input type="checkbox" class="cfwaf-country-check" value="VU"><div><div class="cfwaf-zone-name">Vanuatu</div><div class="cfwaf-zone-plan">VU</div></div></div>
    780                                         <div class="cfwaf-zone-item" data-cc="VE"><input type="checkbox" class="cfwaf-country-check" value="VE"><div><div class="cfwaf-zone-name">Venezuela</div><div class="cfwaf-zone-plan">VE</div></div></div>
    781                                         <div class="cfwaf-zone-item" data-cc="VN"><input type="checkbox" class="cfwaf-country-check" value="VN"><div><div class="cfwaf-zone-name">Vietnam</div><div class="cfwaf-zone-plan">VN</div></div></div>
    782                                         <div class="cfwaf-zone-item" data-cc="YE"><input type="checkbox" class="cfwaf-country-check" value="YE"><div><div class="cfwaf-zone-name">Yemen</div><div class="cfwaf-zone-plan">YE</div></div></div>
    783                                         <div class="cfwaf-zone-item" data-cc="ZM"><input type="checkbox" class="cfwaf-country-check" value="ZM"><div><div class="cfwaf-zone-name">Zambia</div><div class="cfwaf-zone-plan">ZM</div></div></div>
    784                                         <div class="cfwaf-zone-item" data-cc="ZW"><input type="checkbox" class="cfwaf-country-check" value="ZW"><div><div class="cfwaf-zone-name">Zimbabwe</div><div class="cfwaf-zone-plan">ZW</div></div></div>
     616                                        <div class="cfwaf-zone-item" data-cc="AF"><input type="checkbox" class="cfwaf-country-check" value="AF"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'af.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Afghanistan</div><div class="cfwaf-zone-plan">AF</div></div></div>
     617                                        <div class="cfwaf-zone-item" data-cc="AL"><input type="checkbox" class="cfwaf-country-check" value="AL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'al.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Albania</div><div class="cfwaf-zone-plan">AL</div></div></div>
     618                                        <div class="cfwaf-zone-item" data-cc="DZ"><input type="checkbox" class="cfwaf-country-check" value="DZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'dz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Algeria</div><div class="cfwaf-zone-plan">DZ</div></div></div>
     619                                        <div class="cfwaf-zone-item" data-cc="AD"><input type="checkbox" class="cfwaf-country-check" value="AD"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ad.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Andorra</div><div class="cfwaf-zone-plan">AD</div></div></div>
     620                                        <div class="cfwaf-zone-item" data-cc="AO"><input type="checkbox" class="cfwaf-country-check" value="AO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ao.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Angola</div><div class="cfwaf-zone-plan">AO</div></div></div>
     621                                        <div class="cfwaf-zone-item" data-cc="AG"><input type="checkbox" class="cfwaf-country-check" value="AG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ag.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Antigua &amp; Barbuda</div><div class="cfwaf-zone-plan">AG</div></div></div>
     622                                        <div class="cfwaf-zone-item" data-cc="AR"><input type="checkbox" class="cfwaf-country-check" value="AR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ar.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Argentina</div><div class="cfwaf-zone-plan">AR</div></div></div>
     623                                        <div class="cfwaf-zone-item" data-cc="AM"><input type="checkbox" class="cfwaf-country-check" value="AM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'am.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Armenia</div><div class="cfwaf-zone-plan">AM</div></div></div>
     624                                        <div class="cfwaf-zone-item" data-cc="AU"><input type="checkbox" class="cfwaf-country-check" value="AU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'au.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Australia</div><div class="cfwaf-zone-plan">AU</div></div></div>
     625                                        <div class="cfwaf-zone-item" data-cc="AT"><input type="checkbox" class="cfwaf-country-check" value="AT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'at.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Austria</div><div class="cfwaf-zone-plan">AT</div></div></div>
     626                                        <div class="cfwaf-zone-item" data-cc="AZ"><input type="checkbox" class="cfwaf-country-check" value="AZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'az.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Azerbaijan</div><div class="cfwaf-zone-plan">AZ</div></div></div>
     627                                        <div class="cfwaf-zone-item" data-cc="BS"><input type="checkbox" class="cfwaf-country-check" value="BS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bs.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bahamas</div><div class="cfwaf-zone-plan">BS</div></div></div>
     628                                        <div class="cfwaf-zone-item" data-cc="BH"><input type="checkbox" class="cfwaf-country-check" value="BH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bh.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bahrain</div><div class="cfwaf-zone-plan">BH</div></div></div>
     629                                        <div class="cfwaf-zone-item" data-cc="BD"><input type="checkbox" class="cfwaf-country-check" value="BD"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bd.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bangladesh</div><div class="cfwaf-zone-plan">BD</div></div></div>
     630                                        <div class="cfwaf-zone-item" data-cc="BB"><input type="checkbox" class="cfwaf-country-check" value="BB"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bb.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Barbados</div><div class="cfwaf-zone-plan">BB</div></div></div>
     631                                        <div class="cfwaf-zone-item" data-cc="BY"><input type="checkbox" class="cfwaf-country-check" value="BY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'by.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Belarus</div><div class="cfwaf-zone-plan">BY</div></div></div>
     632                                        <div class="cfwaf-zone-item" data-cc="BE"><input type="checkbox" class="cfwaf-country-check" value="BE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'be.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Belgium</div><div class="cfwaf-zone-plan">BE</div></div></div>
     633                                        <div class="cfwaf-zone-item" data-cc="BZ"><input type="checkbox" class="cfwaf-country-check" value="BZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Belize</div><div class="cfwaf-zone-plan">BZ</div></div></div>
     634                                        <div class="cfwaf-zone-item" data-cc="BJ"><input type="checkbox" class="cfwaf-country-check" value="BJ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bj.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Benin</div><div class="cfwaf-zone-plan">BJ</div></div></div>
     635                                        <div class="cfwaf-zone-item" data-cc="BT"><input type="checkbox" class="cfwaf-country-check" value="BT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bt.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bhutan</div><div class="cfwaf-zone-plan">BT</div></div></div>
     636                                        <div class="cfwaf-zone-item" data-cc="BO"><input type="checkbox" class="cfwaf-country-check" value="BO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bo.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bolivia</div><div class="cfwaf-zone-plan">BO</div></div></div>
     637                                        <div class="cfwaf-zone-item" data-cc="BA"><input type="checkbox" class="cfwaf-country-check" value="BA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ba.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bosnia &amp; Herzegovina</div><div class="cfwaf-zone-plan">BA</div></div></div>
     638                                        <div class="cfwaf-zone-item" data-cc="BW"><input type="checkbox" class="cfwaf-country-check" value="BW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Botswana</div><div class="cfwaf-zone-plan">BW</div></div></div>
     639                                        <div class="cfwaf-zone-item" data-cc="BR"><input type="checkbox" class="cfwaf-country-check" value="BR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'br.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Brazil</div><div class="cfwaf-zone-plan">BR</div></div></div>
     640                                        <div class="cfwaf-zone-item" data-cc="BN"><input type="checkbox" class="cfwaf-country-check" value="BN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Brunei</div><div class="cfwaf-zone-plan">BN</div></div></div>
     641                                        <div class="cfwaf-zone-item" data-cc="BG"><input type="checkbox" class="cfwaf-country-check" value="BG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Bulgaria</div><div class="cfwaf-zone-plan">BG</div></div></div>
     642                                        <div class="cfwaf-zone-item" data-cc="BF"><input type="checkbox" class="cfwaf-country-check" value="BF"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bf.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Burkina Faso</div><div class="cfwaf-zone-plan">BF</div></div></div>
     643                                        <div class="cfwaf-zone-item" data-cc="BI"><input type="checkbox" class="cfwaf-country-check" value="BI"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'bi.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Burundi</div><div class="cfwaf-zone-plan">BI</div></div></div>
     644                                        <div class="cfwaf-zone-item" data-cc="CV"><input type="checkbox" class="cfwaf-country-check" value="CV"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cv.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Cabo Verde</div><div class="cfwaf-zone-plan">CV</div></div></div>
     645                                        <div class="cfwaf-zone-item" data-cc="KH"><input type="checkbox" class="cfwaf-country-check" value="KH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kh.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Cambodia</div><div class="cfwaf-zone-plan">KH</div></div></div>
     646                                        <div class="cfwaf-zone-item" data-cc="CM"><input type="checkbox" class="cfwaf-country-check" value="CM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Cameroon</div><div class="cfwaf-zone-plan">CM</div></div></div>
     647                                        <div class="cfwaf-zone-item" data-cc="CA"><input type="checkbox" class="cfwaf-country-check" value="CA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ca.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Canada</div><div class="cfwaf-zone-plan">CA</div></div></div>
     648                                        <div class="cfwaf-zone-item" data-cc="CF"><input type="checkbox" class="cfwaf-country-check" value="CF"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cf.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Central African Rep.</div><div class="cfwaf-zone-plan">CF</div></div></div>
     649                                        <div class="cfwaf-zone-item" data-cc="TD"><input type="checkbox" class="cfwaf-country-check" value="TD"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'td.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Chad</div><div class="cfwaf-zone-plan">TD</div></div></div>
     650                                        <div class="cfwaf-zone-item" data-cc="CL"><input type="checkbox" class="cfwaf-country-check" value="CL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cl.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Chile</div><div class="cfwaf-zone-plan">CL</div></div></div>
     651                                        <div class="cfwaf-zone-item" data-cc="CN"><input type="checkbox" class="cfwaf-country-check" value="CN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">China</div><div class="cfwaf-zone-plan">CN</div></div></div>
     652                                        <div class="cfwaf-zone-item" data-cc="CO"><input type="checkbox" class="cfwaf-country-check" value="CO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'co.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Colombia</div><div class="cfwaf-zone-plan">CO</div></div></div>
     653                                        <div class="cfwaf-zone-item" data-cc="KM"><input type="checkbox" class="cfwaf-country-check" value="KM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'km.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Comoros</div><div class="cfwaf-zone-plan">KM</div></div></div>
     654                                        <div class="cfwaf-zone-item" data-cc="CG"><input type="checkbox" class="cfwaf-country-check" value="CG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Congo</div><div class="cfwaf-zone-plan">CG</div></div></div>
     655                                        <div class="cfwaf-zone-item" data-cc="CR"><input type="checkbox" class="cfwaf-country-check" value="CR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Costa Rica</div><div class="cfwaf-zone-plan">CR</div></div></div>
     656                                        <div class="cfwaf-zone-item" data-cc="HR"><input type="checkbox" class="cfwaf-country-check" value="HR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'hr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Croatia</div><div class="cfwaf-zone-plan">HR</div></div></div>
     657                                        <div class="cfwaf-zone-item" data-cc="CU"><input type="checkbox" class="cfwaf-country-check" value="CU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cu.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Cuba</div><div class="cfwaf-zone-plan">CU</div></div></div>
     658                                        <div class="cfwaf-zone-item" data-cc="CY"><input type="checkbox" class="cfwaf-country-check" value="CY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cy.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Cyprus</div><div class="cfwaf-zone-plan">CY</div></div></div>
     659                                        <div class="cfwaf-zone-item" data-cc="CZ"><input type="checkbox" class="cfwaf-country-check" value="CZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'cz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Czech Republic</div><div class="cfwaf-zone-plan">CZ</div></div></div>
     660                                        <div class="cfwaf-zone-item" data-cc="DK"><input type="checkbox" class="cfwaf-country-check" value="DK"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'dk.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Denmark</div><div class="cfwaf-zone-plan">DK</div></div></div>
     661                                        <div class="cfwaf-zone-item" data-cc="DJ"><input type="checkbox" class="cfwaf-country-check" value="DJ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'dj.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Djibouti</div><div class="cfwaf-zone-plan">DJ</div></div></div>
     662                                        <div class="cfwaf-zone-item" data-cc="DM"><input type="checkbox" class="cfwaf-country-check" value="DM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'dm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Dominica</div><div class="cfwaf-zone-plan">DM</div></div></div>
     663                                        <div class="cfwaf-zone-item" data-cc="DO"><input type="checkbox" class="cfwaf-country-check" value="DO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'do.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Dominican Republic</div><div class="cfwaf-zone-plan">DO</div></div></div>
     664                                        <div class="cfwaf-zone-item" data-cc="EC"><input type="checkbox" class="cfwaf-country-check" value="EC"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ec.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Ecuador</div><div class="cfwaf-zone-plan">EC</div></div></div>
     665                                        <div class="cfwaf-zone-item" data-cc="EG"><input type="checkbox" class="cfwaf-country-check" value="EG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'eg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Egypt</div><div class="cfwaf-zone-plan">EG</div></div></div>
     666                                        <div class="cfwaf-zone-item" data-cc="SV"><input type="checkbox" class="cfwaf-country-check" value="SV"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sv.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">El Salvador</div><div class="cfwaf-zone-plan">SV</div></div></div>
     667                                        <div class="cfwaf-zone-item" data-cc="GQ"><input type="checkbox" class="cfwaf-country-check" value="GQ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gq.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Equatorial Guinea</div><div class="cfwaf-zone-plan">GQ</div></div></div>
     668                                        <div class="cfwaf-zone-item" data-cc="ER"><input type="checkbox" class="cfwaf-country-check" value="ER"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'er.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Eritrea</div><div class="cfwaf-zone-plan">ER</div></div></div>
     669                                        <div class="cfwaf-zone-item" data-cc="EE"><input type="checkbox" class="cfwaf-country-check" value="EE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ee.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Estonia</div><div class="cfwaf-zone-plan">EE</div></div></div>
     670                                        <div class="cfwaf-zone-item" data-cc="SZ"><input type="checkbox" class="cfwaf-country-check" value="SZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Eswatini</div><div class="cfwaf-zone-plan">SZ</div></div></div>
     671                                        <div class="cfwaf-zone-item" data-cc="ET"><input type="checkbox" class="cfwaf-country-check" value="ET"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'et.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Ethiopia</div><div class="cfwaf-zone-plan">ET</div></div></div>
     672                                        <div class="cfwaf-zone-item" data-cc="FJ"><input type="checkbox" class="cfwaf-country-check" value="FJ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'fj.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Fiji</div><div class="cfwaf-zone-plan">FJ</div></div></div>
     673                                        <div class="cfwaf-zone-item" data-cc="FI"><input type="checkbox" class="cfwaf-country-check" value="FI"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'fi.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Finland</div><div class="cfwaf-zone-plan">FI</div></div></div>
     674                                        <div class="cfwaf-zone-item" data-cc="FR"><input type="checkbox" class="cfwaf-country-check" value="FR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'fr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">France</div><div class="cfwaf-zone-plan">FR</div></div></div>
     675                                        <div class="cfwaf-zone-item" data-cc="GA"><input type="checkbox" class="cfwaf-country-check" value="GA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ga.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Gabon</div><div class="cfwaf-zone-plan">GA</div></div></div>
     676                                        <div class="cfwaf-zone-item" data-cc="GM"><input type="checkbox" class="cfwaf-country-check" value="GM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Gambia</div><div class="cfwaf-zone-plan">GM</div></div></div>
     677                                        <div class="cfwaf-zone-item" data-cc="GE"><input type="checkbox" class="cfwaf-country-check" value="GE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ge.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Georgia</div><div class="cfwaf-zone-plan">GE</div></div></div>
     678                                        <div class="cfwaf-zone-item" data-cc="DE"><input type="checkbox" class="cfwaf-country-check" value="DE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'de.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Germany</div><div class="cfwaf-zone-plan">DE</div></div></div>
     679                                        <div class="cfwaf-zone-item" data-cc="GH"><input type="checkbox" class="cfwaf-country-check" value="GH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gh.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Ghana</div><div class="cfwaf-zone-plan">GH</div></div></div>
     680                                        <div class="cfwaf-zone-item" data-cc="GR"><input type="checkbox" class="cfwaf-country-check" value="GR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Greece</div><div class="cfwaf-zone-plan">GR</div></div></div>
     681                                        <div class="cfwaf-zone-item" data-cc="GD"><input type="checkbox" class="cfwaf-country-check" value="GD"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gd.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Grenada</div><div class="cfwaf-zone-plan">GD</div></div></div>
     682                                        <div class="cfwaf-zone-item" data-cc="GT"><input type="checkbox" class="cfwaf-country-check" value="GT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gt.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Guatemala</div><div class="cfwaf-zone-plan">GT</div></div></div>
     683                                        <div class="cfwaf-zone-item" data-cc="GN"><input type="checkbox" class="cfwaf-country-check" value="GN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Guinea</div><div class="cfwaf-zone-plan">GN</div></div></div>
     684                                        <div class="cfwaf-zone-item" data-cc="GW"><input type="checkbox" class="cfwaf-country-check" value="GW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Guinea-Bissau</div><div class="cfwaf-zone-plan">GW</div></div></div>
     685                                        <div class="cfwaf-zone-item" data-cc="GY"><input type="checkbox" class="cfwaf-country-check" value="GY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gy.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Guyana</div><div class="cfwaf-zone-plan">GY</div></div></div>
     686                                        <div class="cfwaf-zone-item" data-cc="HT"><input type="checkbox" class="cfwaf-country-check" value="HT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ht.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Haiti</div><div class="cfwaf-zone-plan">HT</div></div></div>
     687                                        <div class="cfwaf-zone-item" data-cc="HN"><input type="checkbox" class="cfwaf-country-check" value="HN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'hn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Honduras</div><div class="cfwaf-zone-plan">HN</div></div></div>
     688                                        <div class="cfwaf-zone-item" data-cc="HK"><input type="checkbox" class="cfwaf-country-check" value="HK"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'hk.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Hong Kong</div><div class="cfwaf-zone-plan">HK</div></div></div>
     689                                        <div class="cfwaf-zone-item" data-cc="HU"><input type="checkbox" class="cfwaf-country-check" value="HU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'hu.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Hungary</div><div class="cfwaf-zone-plan">HU</div></div></div>
     690                                        <div class="cfwaf-zone-item" data-cc="IS"><input type="checkbox" class="cfwaf-country-check" value="IS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'is.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Iceland</div><div class="cfwaf-zone-plan">IS</div></div></div>
     691                                        <div class="cfwaf-zone-item" data-cc="IN"><input type="checkbox" class="cfwaf-country-check" value="IN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'in.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">India</div><div class="cfwaf-zone-plan">IN</div></div></div>
     692                                        <div class="cfwaf-zone-item" data-cc="ID"><input type="checkbox" class="cfwaf-country-check" value="ID"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'id.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Indonesia</div><div class="cfwaf-zone-plan">ID</div></div></div>
     693                                        <div class="cfwaf-zone-item" data-cc="IR"><input type="checkbox" class="cfwaf-country-check" value="IR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ir.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Iran</div><div class="cfwaf-zone-plan">IR</div></div></div>
     694                                        <div class="cfwaf-zone-item" data-cc="IQ"><input type="checkbox" class="cfwaf-country-check" value="IQ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'iq.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Iraq</div><div class="cfwaf-zone-plan">IQ</div></div></div>
     695                                        <div class="cfwaf-zone-item" data-cc="IE"><input type="checkbox" class="cfwaf-country-check" value="IE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ie.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Ireland</div><div class="cfwaf-zone-plan">IE</div></div></div>
     696                                        <div class="cfwaf-zone-item" data-cc="IL"><input type="checkbox" class="cfwaf-country-check" value="IL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'il.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Israel</div><div class="cfwaf-zone-plan">IL</div></div></div>
     697                                        <div class="cfwaf-zone-item" data-cc="IT"><input type="checkbox" class="cfwaf-country-check" value="IT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'it.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Italy</div><div class="cfwaf-zone-plan">IT</div></div></div>
     698                                        <div class="cfwaf-zone-item" data-cc="JM"><input type="checkbox" class="cfwaf-country-check" value="JM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'jm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Jamaica</div><div class="cfwaf-zone-plan">JM</div></div></div>
     699                                        <div class="cfwaf-zone-item" data-cc="JP"><input type="checkbox" class="cfwaf-country-check" value="JP"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'jp.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Japan</div><div class="cfwaf-zone-plan">JP</div></div></div>
     700                                        <div class="cfwaf-zone-item" data-cc="JO"><input type="checkbox" class="cfwaf-country-check" value="JO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'jo.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Jordan</div><div class="cfwaf-zone-plan">JO</div></div></div>
     701                                        <div class="cfwaf-zone-item" data-cc="KZ"><input type="checkbox" class="cfwaf-country-check" value="KZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Kazakhstan</div><div class="cfwaf-zone-plan">KZ</div></div></div>
     702                                        <div class="cfwaf-zone-item" data-cc="KE"><input type="checkbox" class="cfwaf-country-check" value="KE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ke.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Kenya</div><div class="cfwaf-zone-plan">KE</div></div></div>
     703                                        <div class="cfwaf-zone-item" data-cc="KI"><input type="checkbox" class="cfwaf-country-check" value="KI"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ki.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Kiribati</div><div class="cfwaf-zone-plan">KI</div></div></div>
     704                                        <div class="cfwaf-zone-item" data-cc="KW"><input type="checkbox" class="cfwaf-country-check" value="KW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Kuwait</div><div class="cfwaf-zone-plan">KW</div></div></div>
     705                                        <div class="cfwaf-zone-item" data-cc="KG"><input type="checkbox" class="cfwaf-country-check" value="KG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Kyrgyzstan</div><div class="cfwaf-zone-plan">KG</div></div></div>
     706                                        <div class="cfwaf-zone-item" data-cc="LA"><input type="checkbox" class="cfwaf-country-check" value="LA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'la.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Laos</div><div class="cfwaf-zone-plan">LA</div></div></div>
     707                                        <div class="cfwaf-zone-item" data-cc="LV"><input type="checkbox" class="cfwaf-country-check" value="LV"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lv.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Latvia</div><div class="cfwaf-zone-plan">LV</div></div></div>
     708                                        <div class="cfwaf-zone-item" data-cc="LB"><input type="checkbox" class="cfwaf-country-check" value="LB"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lb.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Lebanon</div><div class="cfwaf-zone-plan">LB</div></div></div>
     709                                        <div class="cfwaf-zone-item" data-cc="LS"><input type="checkbox" class="cfwaf-country-check" value="LS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ls.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Lesotho</div><div class="cfwaf-zone-plan">LS</div></div></div>
     710                                        <div class="cfwaf-zone-item" data-cc="LR"><input type="checkbox" class="cfwaf-country-check" value="LR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Liberia</div><div class="cfwaf-zone-plan">LR</div></div></div>
     711                                        <div class="cfwaf-zone-item" data-cc="LY"><input type="checkbox" class="cfwaf-country-check" value="LY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ly.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Libya</div><div class="cfwaf-zone-plan">LY</div></div></div>
     712                                        <div class="cfwaf-zone-item" data-cc="LI"><input type="checkbox" class="cfwaf-country-check" value="LI"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'li.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Liechtenstein</div><div class="cfwaf-zone-plan">LI</div></div></div>
     713                                        <div class="cfwaf-zone-item" data-cc="LT"><input type="checkbox" class="cfwaf-country-check" value="LT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lt.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Lithuania</div><div class="cfwaf-zone-plan">LT</div></div></div>
     714                                        <div class="cfwaf-zone-item" data-cc="LU"><input type="checkbox" class="cfwaf-country-check" value="LU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lu.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Luxembourg</div><div class="cfwaf-zone-plan">LU</div></div></div>
     715                                        <div class="cfwaf-zone-item" data-cc="MG"><input type="checkbox" class="cfwaf-country-check" value="MG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Madagascar</div><div class="cfwaf-zone-plan">MG</div></div></div>
     716                                        <div class="cfwaf-zone-item" data-cc="MW"><input type="checkbox" class="cfwaf-country-check" value="MW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Malawi</div><div class="cfwaf-zone-plan">MW</div></div></div>
     717                                        <div class="cfwaf-zone-item" data-cc="MY"><input type="checkbox" class="cfwaf-country-check" value="MY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'my.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Malaysia</div><div class="cfwaf-zone-plan">MY</div></div></div>
     718                                        <div class="cfwaf-zone-item" data-cc="MV"><input type="checkbox" class="cfwaf-country-check" value="MV"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mv.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Maldives</div><div class="cfwaf-zone-plan">MV</div></div></div>
     719                                        <div class="cfwaf-zone-item" data-cc="ML"><input type="checkbox" class="cfwaf-country-check" value="ML"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ml.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Mali</div><div class="cfwaf-zone-plan">ML</div></div></div>
     720                                        <div class="cfwaf-zone-item" data-cc="MT"><input type="checkbox" class="cfwaf-country-check" value="MT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mt.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Malta</div><div class="cfwaf-zone-plan">MT</div></div></div>
     721                                        <div class="cfwaf-zone-item" data-cc="MH"><input type="checkbox" class="cfwaf-country-check" value="MH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mh.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Marshall Islands</div><div class="cfwaf-zone-plan">MH</div></div></div>
     722                                        <div class="cfwaf-zone-item" data-cc="MR"><input type="checkbox" class="cfwaf-country-check" value="MR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Mauritania</div><div class="cfwaf-zone-plan">MR</div></div></div>
     723                                        <div class="cfwaf-zone-item" data-cc="MU"><input type="checkbox" class="cfwaf-country-check" value="MU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mu.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Mauritius</div><div class="cfwaf-zone-plan">MU</div></div></div>
     724                                        <div class="cfwaf-zone-item" data-cc="MX"><input type="checkbox" class="cfwaf-country-check" value="MX"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mx.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Mexico</div><div class="cfwaf-zone-plan">MX</div></div></div>
     725                                        <div class="cfwaf-zone-item" data-cc="FM"><input type="checkbox" class="cfwaf-country-check" value="FM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'fm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Micronesia</div><div class="cfwaf-zone-plan">FM</div></div></div>
     726                                        <div class="cfwaf-zone-item" data-cc="MD"><input type="checkbox" class="cfwaf-country-check" value="MD"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'md.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Moldova</div><div class="cfwaf-zone-plan">MD</div></div></div>
     727                                        <div class="cfwaf-zone-item" data-cc="MC"><input type="checkbox" class="cfwaf-country-check" value="MC"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mc.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Monaco</div><div class="cfwaf-zone-plan">MC</div></div></div>
     728                                        <div class="cfwaf-zone-item" data-cc="MN"><input type="checkbox" class="cfwaf-country-check" value="MN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Mongolia</div><div class="cfwaf-zone-plan">MN</div></div></div>
     729                                        <div class="cfwaf-zone-item" data-cc="ME"><input type="checkbox" class="cfwaf-country-check" value="ME"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'me.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Montenegro</div><div class="cfwaf-zone-plan">ME</div></div></div>
     730                                        <div class="cfwaf-zone-item" data-cc="MA"><input type="checkbox" class="cfwaf-country-check" value="MA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ma.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Morocco</div><div class="cfwaf-zone-plan">MA</div></div></div>
     731                                        <div class="cfwaf-zone-item" data-cc="MZ"><input type="checkbox" class="cfwaf-country-check" value="MZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Mozambique</div><div class="cfwaf-zone-plan">MZ</div></div></div>
     732                                        <div class="cfwaf-zone-item" data-cc="MM"><input type="checkbox" class="cfwaf-country-check" value="MM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Myanmar</div><div class="cfwaf-zone-plan">MM</div></div></div>
     733                                        <div class="cfwaf-zone-item" data-cc="NA"><input type="checkbox" class="cfwaf-country-check" value="NA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'na.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Namibia</div><div class="cfwaf-zone-plan">NA</div></div></div>
     734                                        <div class="cfwaf-zone-item" data-cc="NR"><input type="checkbox" class="cfwaf-country-check" value="NR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'nr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Nauru</div><div class="cfwaf-zone-plan">NR</div></div></div>
     735                                        <div class="cfwaf-zone-item" data-cc="NP"><input type="checkbox" class="cfwaf-country-check" value="NP"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'np.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Nepal</div><div class="cfwaf-zone-plan">NP</div></div></div>
     736                                        <div class="cfwaf-zone-item" data-cc="NL"><input type="checkbox" class="cfwaf-country-check" value="NL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'nl.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Netherlands</div><div class="cfwaf-zone-plan">NL</div></div></div>
     737                                        <div class="cfwaf-zone-item" data-cc="NZ"><input type="checkbox" class="cfwaf-country-check" value="NZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'nz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">New Zealand</div><div class="cfwaf-zone-plan">NZ</div></div></div>
     738                                        <div class="cfwaf-zone-item" data-cc="NI"><input type="checkbox" class="cfwaf-country-check" value="NI"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ni.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Nicaragua</div><div class="cfwaf-zone-plan">NI</div></div></div>
     739                                        <div class="cfwaf-zone-item" data-cc="NE"><input type="checkbox" class="cfwaf-country-check" value="NE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ne.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Niger</div><div class="cfwaf-zone-plan">NE</div></div></div>
     740                                        <div class="cfwaf-zone-item" data-cc="NG"><input type="checkbox" class="cfwaf-country-check" value="NG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ng.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Nigeria</div><div class="cfwaf-zone-plan">NG</div></div></div>
     741                                        <div class="cfwaf-zone-item" data-cc="KP"><input type="checkbox" class="cfwaf-country-check" value="KP"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kp.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">North Korea</div><div class="cfwaf-zone-plan">KP</div></div></div>
     742                                        <div class="cfwaf-zone-item" data-cc="MK"><input type="checkbox" class="cfwaf-country-check" value="MK"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'mk.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">North Macedonia</div><div class="cfwaf-zone-plan">MK</div></div></div>
     743                                        <div class="cfwaf-zone-item" data-cc="NO"><input type="checkbox" class="cfwaf-country-check" value="NO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'no.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Norway</div><div class="cfwaf-zone-plan">NO</div></div></div>
     744                                        <div class="cfwaf-zone-item" data-cc="OM"><input type="checkbox" class="cfwaf-country-check" value="OM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'om.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Oman</div><div class="cfwaf-zone-plan">OM</div></div></div>
     745                                        <div class="cfwaf-zone-item" data-cc="PK"><input type="checkbox" class="cfwaf-country-check" value="PK"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pk.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Pakistan</div><div class="cfwaf-zone-plan">PK</div></div></div>
     746                                        <div class="cfwaf-zone-item" data-cc="PW"><input type="checkbox" class="cfwaf-country-check" value="PW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Palau</div><div class="cfwaf-zone-plan">PW</div></div></div>
     747                                        <div class="cfwaf-zone-item" data-cc="PS"><input type="checkbox" class="cfwaf-country-check" value="PS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ps.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Palestine</div><div class="cfwaf-zone-plan">PS</div></div></div>
     748                                        <div class="cfwaf-zone-item" data-cc="PA"><input type="checkbox" class="cfwaf-country-check" value="PA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pa.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Panama</div><div class="cfwaf-zone-plan">PA</div></div></div>
     749                                        <div class="cfwaf-zone-item" data-cc="PG"><input type="checkbox" class="cfwaf-country-check" value="PG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Papua New Guinea</div><div class="cfwaf-zone-plan">PG</div></div></div>
     750                                        <div class="cfwaf-zone-item" data-cc="PY"><input type="checkbox" class="cfwaf-country-check" value="PY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'py.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Paraguay</div><div class="cfwaf-zone-plan">PY</div></div></div>
     751                                        <div class="cfwaf-zone-item" data-cc="PE"><input type="checkbox" class="cfwaf-country-check" value="PE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pe.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Peru</div><div class="cfwaf-zone-plan">PE</div></div></div>
     752                                        <div class="cfwaf-zone-item" data-cc="PH"><input type="checkbox" class="cfwaf-country-check" value="PH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ph.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Philippines</div><div class="cfwaf-zone-plan">PH</div></div></div>
     753                                        <div class="cfwaf-zone-item" data-cc="PL"><input type="checkbox" class="cfwaf-country-check" value="PL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pl.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Poland</div><div class="cfwaf-zone-plan">PL</div></div></div>
     754                                        <div class="cfwaf-zone-item" data-cc="PT"><input type="checkbox" class="cfwaf-country-check" value="PT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'pt.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Portugal</div><div class="cfwaf-zone-plan">PT</div></div></div>
     755                                        <div class="cfwaf-zone-item" data-cc="QA"><input type="checkbox" class="cfwaf-country-check" value="QA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'qa.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Qatar</div><div class="cfwaf-zone-plan">QA</div></div></div>
     756                                        <div class="cfwaf-zone-item" data-cc="RO"><input type="checkbox" class="cfwaf-country-check" value="RO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ro.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Romania</div><div class="cfwaf-zone-plan">RO</div></div></div>
     757                                        <div class="cfwaf-zone-item" data-cc="RU"><input type="checkbox" class="cfwaf-country-check" value="RU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ru.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Russia</div><div class="cfwaf-zone-plan">RU</div></div></div>
     758                                        <div class="cfwaf-zone-item" data-cc="RW"><input type="checkbox" class="cfwaf-country-check" value="RW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'rw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Rwanda</div><div class="cfwaf-zone-plan">RW</div></div></div>
     759                                        <div class="cfwaf-zone-item" data-cc="KN"><input type="checkbox" class="cfwaf-country-check" value="KN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Saint Kitts &amp; Nevis</div><div class="cfwaf-zone-plan">KN</div></div></div>
     760                                        <div class="cfwaf-zone-item" data-cc="LC"><input type="checkbox" class="cfwaf-country-check" value="LC"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lc.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Saint Lucia</div><div class="cfwaf-zone-plan">LC</div></div></div>
     761                                        <div class="cfwaf-zone-item" data-cc="VC"><input type="checkbox" class="cfwaf-country-check" value="VC"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'vc.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Saint Vincent</div><div class="cfwaf-zone-plan">VC</div></div></div>
     762                                        <div class="cfwaf-zone-item" data-cc="WS"><input type="checkbox" class="cfwaf-country-check" value="WS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ws.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Samoa</div><div class="cfwaf-zone-plan">WS</div></div></div>
     763                                        <div class="cfwaf-zone-item" data-cc="SM"><input type="checkbox" class="cfwaf-country-check" value="SM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">San Marino</div><div class="cfwaf-zone-plan">SM</div></div></div>
     764                                        <div class="cfwaf-zone-item" data-cc="ST"><input type="checkbox" class="cfwaf-country-check" value="ST"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'st.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Sao Tome &amp; Principe</div><div class="cfwaf-zone-plan">ST</div></div></div>
     765                                        <div class="cfwaf-zone-item" data-cc="SA"><input type="checkbox" class="cfwaf-country-check" value="SA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sa.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Saudi Arabia</div><div class="cfwaf-zone-plan">SA</div></div></div>
     766                                        <div class="cfwaf-zone-item" data-cc="SN"><input type="checkbox" class="cfwaf-country-check" value="SN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Senegal</div><div class="cfwaf-zone-plan">SN</div></div></div>
     767                                        <div class="cfwaf-zone-item" data-cc="RS"><input type="checkbox" class="cfwaf-country-check" value="RS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'rs.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Serbia</div><div class="cfwaf-zone-plan">RS</div></div></div>
     768                                        <div class="cfwaf-zone-item" data-cc="SC"><input type="checkbox" class="cfwaf-country-check" value="SC"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sc.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Seychelles</div><div class="cfwaf-zone-plan">SC</div></div></div>
     769                                        <div class="cfwaf-zone-item" data-cc="SL"><input type="checkbox" class="cfwaf-country-check" value="SL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sl.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Sierra Leone</div><div class="cfwaf-zone-plan">SL</div></div></div>
     770                                        <div class="cfwaf-zone-item" data-cc="SG"><input type="checkbox" class="cfwaf-country-check" value="SG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Singapore</div><div class="cfwaf-zone-plan">SG</div></div></div>
     771                                        <div class="cfwaf-zone-item" data-cc="SK"><input type="checkbox" class="cfwaf-country-check" value="SK"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sk.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Slovakia</div><div class="cfwaf-zone-plan">SK</div></div></div>
     772                                        <div class="cfwaf-zone-item" data-cc="SI"><input type="checkbox" class="cfwaf-country-check" value="SI"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'si.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Slovenia</div><div class="cfwaf-zone-plan">SI</div></div></div>
     773                                        <div class="cfwaf-zone-item" data-cc="SB"><input type="checkbox" class="cfwaf-country-check" value="SB"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sb.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Solomon Islands</div><div class="cfwaf-zone-plan">SB</div></div></div>
     774                                        <div class="cfwaf-zone-item" data-cc="SO"><input type="checkbox" class="cfwaf-country-check" value="SO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'so.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Somalia</div><div class="cfwaf-zone-plan">SO</div></div></div>
     775                                        <div class="cfwaf-zone-item" data-cc="ZA"><input type="checkbox" class="cfwaf-country-check" value="ZA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'za.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">South Africa</div><div class="cfwaf-zone-plan">ZA</div></div></div>
     776                                        <div class="cfwaf-zone-item" data-cc="KR"><input type="checkbox" class="cfwaf-country-check" value="KR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'kr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">South Korea</div><div class="cfwaf-zone-plan">KR</div></div></div>
     777                                        <div class="cfwaf-zone-item" data-cc="SS"><input type="checkbox" class="cfwaf-country-check" value="SS"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ss.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">South Sudan</div><div class="cfwaf-zone-plan">SS</div></div></div>
     778                                        <div class="cfwaf-zone-item" data-cc="ES"><input type="checkbox" class="cfwaf-country-check" value="ES"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'es.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Spain</div><div class="cfwaf-zone-plan">ES</div></div></div>
     779                                        <div class="cfwaf-zone-item" data-cc="LK"><input type="checkbox" class="cfwaf-country-check" value="LK"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'lk.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Sri Lanka</div><div class="cfwaf-zone-plan">LK</div></div></div>
     780                                        <div class="cfwaf-zone-item" data-cc="SD"><input type="checkbox" class="cfwaf-country-check" value="SD"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sd.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Sudan</div><div class="cfwaf-zone-plan">SD</div></div></div>
     781                                        <div class="cfwaf-zone-item" data-cc="SR"><input type="checkbox" class="cfwaf-country-check" value="SR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Suriname</div><div class="cfwaf-zone-plan">SR</div></div></div>
     782                                        <div class="cfwaf-zone-item" data-cc="SE"><input type="checkbox" class="cfwaf-country-check" value="SE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'se.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Sweden</div><div class="cfwaf-zone-plan">SE</div></div></div>
     783                                        <div class="cfwaf-zone-item" data-cc="CH"><input type="checkbox" class="cfwaf-country-check" value="CH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ch.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Switzerland</div><div class="cfwaf-zone-plan">CH</div></div></div>
     784                                        <div class="cfwaf-zone-item" data-cc="SY"><input type="checkbox" class="cfwaf-country-check" value="SY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'sy.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Syria</div><div class="cfwaf-zone-plan">SY</div></div></div>
     785                                        <div class="cfwaf-zone-item" data-cc="TW"><input type="checkbox" class="cfwaf-country-check" value="TW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Taiwan</div><div class="cfwaf-zone-plan">TW</div></div></div>
     786                                        <div class="cfwaf-zone-item" data-cc="TJ"><input type="checkbox" class="cfwaf-country-check" value="TJ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tj.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Tajikistan</div><div class="cfwaf-zone-plan">TJ</div></div></div>
     787                                        <div class="cfwaf-zone-item" data-cc="TZ"><input type="checkbox" class="cfwaf-country-check" value="TZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Tanzania</div><div class="cfwaf-zone-plan">TZ</div></div></div>
     788                                        <div class="cfwaf-zone-item" data-cc="TH"><input type="checkbox" class="cfwaf-country-check" value="TH"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'th.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Thailand</div><div class="cfwaf-zone-plan">TH</div></div></div>
     789                                        <div class="cfwaf-zone-item" data-cc="TL"><input type="checkbox" class="cfwaf-country-check" value="TL"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tl.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Timor-Leste</div><div class="cfwaf-zone-plan">TL</div></div></div>
     790                                        <div class="cfwaf-zone-item" data-cc="TG"><input type="checkbox" class="cfwaf-country-check" value="TG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tg.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Togo</div><div class="cfwaf-zone-plan">TG</div></div></div>
     791                                        <div class="cfwaf-zone-item" data-cc="TO"><input type="checkbox" class="cfwaf-country-check" value="TO"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'to.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Tonga</div><div class="cfwaf-zone-plan">TO</div></div></div>
     792                                        <div class="cfwaf-zone-item" data-cc="TT"><input type="checkbox" class="cfwaf-country-check" value="TT"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tt.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Trinidad &amp; Tobago</div><div class="cfwaf-zone-plan">TT</div></div></div>
     793                                        <div class="cfwaf-zone-item" data-cc="TN"><input type="checkbox" class="cfwaf-country-check" value="TN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Tunisia</div><div class="cfwaf-zone-plan">TN</div></div></div>
     794                                        <div class="cfwaf-zone-item" data-cc="TR"><input type="checkbox" class="cfwaf-country-check" value="TR"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tr.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Turkey</div><div class="cfwaf-zone-plan">TR</div></div></div>
     795                                        <div class="cfwaf-zone-item" data-cc="TM"><input type="checkbox" class="cfwaf-country-check" value="TM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Turkmenistan</div><div class="cfwaf-zone-plan">TM</div></div></div>
     796                                        <div class="cfwaf-zone-item" data-cc="TV"><input type="checkbox" class="cfwaf-country-check" value="TV"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'tv.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Tuvalu</div><div class="cfwaf-zone-plan">TV</div></div></div>
     797                                        <div class="cfwaf-zone-item" data-cc="UG"><input type="checkbox" class="cfwaf-country-check" value="UG"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ug.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Uganda</div><div class="cfwaf-zone-plan">UG</div></div></div>
     798                                        <div class="cfwaf-zone-item" data-cc="UA"><input type="checkbox" class="cfwaf-country-check" value="UA"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ua.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Ukraine</div><div class="cfwaf-zone-plan">UA</div></div></div>
     799                                        <div class="cfwaf-zone-item" data-cc="AE"><input type="checkbox" class="cfwaf-country-check" value="AE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ae.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">United Arab Emirates</div><div class="cfwaf-zone-plan">AE</div></div></div>
     800                                        <div class="cfwaf-zone-item" data-cc="GB"><input type="checkbox" class="cfwaf-country-check" value="GB"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'gb.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">United Kingdom</div><div class="cfwaf-zone-plan">GB</div></div></div>
     801                                        <div class="cfwaf-zone-item" data-cc="US"><input type="checkbox" class="cfwaf-country-check" value="US"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'us.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">United States</div><div class="cfwaf-zone-plan">US</div></div></div>
     802                                        <div class="cfwaf-zone-item" data-cc="UY"><input type="checkbox" class="cfwaf-country-check" value="UY"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'uy.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Uruguay</div><div class="cfwaf-zone-plan">UY</div></div></div>
     803                                        <div class="cfwaf-zone-item" data-cc="UZ"><input type="checkbox" class="cfwaf-country-check" value="UZ"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'uz.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Uzbekistan</div><div class="cfwaf-zone-plan">UZ</div></div></div>
     804                                        <div class="cfwaf-zone-item" data-cc="VU"><input type="checkbox" class="cfwaf-country-check" value="VU"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'vu.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Vanuatu</div><div class="cfwaf-zone-plan">VU</div></div></div>
     805                                        <div class="cfwaf-zone-item" data-cc="VE"><input type="checkbox" class="cfwaf-country-check" value="VE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 've.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Venezuela</div><div class="cfwaf-zone-plan">VE</div></div></div>
     806                                        <div class="cfwaf-zone-item" data-cc="VN"><input type="checkbox" class="cfwaf-country-check" value="VN"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'vn.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Vietnam</div><div class="cfwaf-zone-plan">VN</div></div></div>
     807                                        <div class="cfwaf-zone-item" data-cc="YE"><input type="checkbox" class="cfwaf-country-check" value="YE"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'ye.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Yemen</div><div class="cfwaf-zone-plan">YE</div></div></div>
     808                                        <div class="cfwaf-zone-item" data-cc="ZM"><input type="checkbox" class="cfwaf-country-check" value="ZM"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'zm.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Zambia</div><div class="cfwaf-zone-plan">ZM</div></div></div>
     809                                        <div class="cfwaf-zone-item" data-cc="ZW"><input type="checkbox" class="cfwaf-country-check" value="ZW"><img class="wmfc-flag" src="<?php echo esc_url( $wmfc_flag_url . 'zw.png' ); ?>" width="20" height="15" alt="" loading="lazy" decoding="async"><div><div class="cfwaf-zone-name">Zimbabwe</div><div class="cfwaf-zone-plan">ZW</div></div></div>
    785810                                        <div id="cfwaf-country-empty" style="display:none;grid-column:1/-1;text-align:center;padding:24px;color:#6b7280;font-size:13px;">No countries match your search.</div>
    786811                                </div>
    … …  
    809834                                                <label class="cfwaf-check-label cfwaf-select-all-label">
    810835                                                        <input type="checkbox" data-setting="rule5.challenge_all_vpn" id="cfwaf-vpn-all">
    811                                                         <strong>Challenge All VPN Connections</strong> &mdash; Apply managed challenge to all known VPN providers below
     836                                                        <strong>Challenge All VPN Connections</strong>: apply a managed challenge to all known VPN providers below
    812837                                                </label>
    813838                                                <div class="cfwaf-checkbox-grid" style="margin-top:10px">
    … …  
    861886                                <div class="cfwaf-deploy-panel-header">
    862887                                        <h3><span class="dashicons dashicons-upload"></span> Select Sites to Deploy To</h3>
    863                                         <button class="cfwaf-btn cfwaf-btn-ghost-dark" id="cfwaf-deploy-close">&#10005; Cancel</button>
     888                                        <button class="cfwaf-btn cfwaf-btn-ghost-dark" id="cfwaf-deploy-close"><?php echo WMFC_Icons::svg( 'x' ); ?> Cancel</button>
    864889                                </div>
    865890
    … …  
    873898                                                        <input type="checkbox" id="cfwaf-select-all-zones"> <strong>Select All Zones</strong>
    874899                                                </label>
    875                                                 <input type="search" id="cfwaf-zone-search" class="cfwaf-input cfwaf-search-input" placeholder="&#128269; Filter zones&hellip;">
     900                                                <input type="search" id="cfwaf-zone-search" class="cfwaf-input cfwaf-search-input" placeholder="Filter zones&hellip;">
    876901                                        </div>
    877902                                        <div class="cfwaf-zones-grid" id="cfwaf-zones-grid"></div>
    … …  
    886911                                        <div id="cfwaf-deploy-results"></div>
    887912                                        <div class="cfwaf-deploy-footer">
    888                                                 <p class="cfwaf-deploy-save-reminder">&#9888; The deploy uses the settings on this screen, saved or not.</p>
     913                                                <p class="cfwaf-deploy-save-reminder"><?php echo WMFC_Icons::svg( 'alert' ); ?> The deploy uses the settings on this screen, saved or not.</p>
    889914                                                <button class="cfwaf-btn cfwaf-btn-deploy cfwaf-btn-large" id="cfwaf-confirm-deploy" disabled>
    890915                                                        <span class="dashicons dashicons-upload"></span> Deploy to Selected Zones
    … …  
    970995                                                                <li>Reduces server load from aggressive crawlers that don&rsquo;t respect crawl limits</li>
    971996                                                                <li>Prevents bandwidth consumption from unauthorized SEO tools</li>
    972                                                                 <li>Blocks common penetration testing tools (Nikto, SQLMap, Masscan, Nmap)</li>
     997                                                                <li>Blocks common penetration testing tools (Nikto, SQLMap, Masscan, Nmap) and curl scripts</li>
    973998                                                                <li>Protects sensitive WordPress paths (xmlrpc, wp-config, wp-json, install.php)</li>
    974999                                                                <li>Hides WordPress version info by blocking readme.html and license.txt</li>
    … …  
    9831008                                                                <li>If you use the WordPress REST API (wp-json), don&rsquo;t enable that path protection</li>
    9841009                                                                <li>Some WordPress plugins or mobile apps may require XML-RPC access</li>
    985                                                                 <li>Monitor your Event logs after implementing &mdash; some legitimate bots may be caught</li>
     1010                                                                <li>If the site is an API or webhook host that people call with curl, list those hostnames under &ldquo;Except these hostnames&rdquo; or turn off curl blocking</li>
     1011                                                                <li>Monitor your Event logs after implementing, as some legitimate bots may be caught</li>
    9861012                                                        </ul>
    9871013
    … …  
    10141040                                                        <ul>
    10151041                                                                <li>Blocks or challenges automated attacks from web hosting providers where malicious scripts often run</li>
     1042                                                                <li>Always blocks three hosting networks known for WordPress exploit and secrets-scanning traffic, even when the main host list is off</li>
    10161043                                                                <li>Prevents TOR-based attacks while optionally allowing legitimate TOR users</li>
    10171044                                                                <li>Blocks path traversal, SQL injection, legacy CGI paths, other CMSs&rsquo; login probes and XSS patterns site-wide</li>
    … …  
    10611088                                                                <li>Can limit spam and bot registrations from contact forms</li>
    10621089                                                                <li>Adds geographic protection if your site only serves specific countries</li>
    1063                                                                 <li>Uses Managed Challenge &mdash; legitimate visitors pass through transparently</li>
     1090                                                                <li>Uses Managed Challenge, so legitimate visitors pass through transparently</li>
    10641091                                                        </ul>
    10651092                                                </div>
    … …  
    11091136                                                        <h4><span class="dashicons dashicons-warning"></span> Important Considerations</h4>
    11101137                                                        <ul>
    1111                                                                 <li>Legitimate visitors may use VPNs &mdash; monitor the Challenge Solve Rate (low CSR = good)</li>
     1138                                                                <li>Legitimate visitors may use VPNs, so monitor the Challenge Solve Rate (low CSR = good)</li>
    11121139                                                                <li>For higher security, consider using a Cloudflare Configuration Rule to set &ldquo;I&rsquo;m Under Attack&rdquo; mode on wp-login.php</li>
    11131140                                                                <li>For the highest security, use Cloudflare Access to protect wp-login.php and wp-admin instead</li>
    … …  
    11741201                                        <h4>Credits</h4>
    11751202                                        <ul>
    1176                                                 <li><a href="https://webagencyhero.com/" target="_blank"><strong>WebAgencyHero</strong></a> &mdash; Troy Glancy, for creating the original &ldquo;5 Cloudflare WAF rules&rdquo; that formed the foundation of this tool.</li>
    1177                                                 <li><strong>URSA6</strong> &mdash; Michael Bourne, for building <a href="https://wafrules.com" target="_blank">wafrules.com</a> and making broad changes and security adjustments to the rules.</li>
    1178                                                 <li><a href="https://www.nahnuplugins.com" target="_blank"><strong>Nahnu Plugins</strong></a> &mdash; Plugin development, UI enhancements, country picker, and one-click API deployment.</li>
     1203                                                <li><a href="https://webagencyhero.com/" target="_blank"><strong>WebAgencyHero</strong></a>: Troy Glancy, for creating the original &ldquo;5 Cloudflare WAF rules&rdquo; that formed the foundation of this tool.</li>
     1204                                                <li><strong>URSA6</strong>: Michael Bourne, for building <a href="https://wafrules.com" target="_blank">wafrules.com</a> and making broad changes and security adjustments to the rules.</li>
     1205                                                <li><a href="https://www.nahnuplugins.com" target="_blank"><strong>Nahnu Plugins</strong></a>: plugin development, UI enhancements, country picker, and one-click API deployment.</li>
    11791206                                        </ul>
    11801207                                </div>
    11811208                                <div class="cfwaf-credits-disclaimer">
    11821209                                        <strong>Trademark Notice:</strong> Cloudflare is a registered trademark of Cloudflare, Inc. This plugin is not affiliated with, endorsed by, or sponsored by Cloudflare, Inc. in any way.<br><br>
    1183                                         <strong>Disclaimer:</strong> This plugin is provided &ldquo;as is&rdquo; without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. The creators and contributors are not responsible for any damage, data loss, security incidents, or other issues arising from the installation, configuration, or use of this plugin or the WAF rules it deploys. WAF rules interact directly with your live Cloudflare configuration &mdash; always test thoroughly in a staging environment before applying to production. Monitor your Cloudflare Security Events log closely after deployment and watch for false positives. By using this plugin you accept full responsibility for your Cloudflare WAF configuration.
     1210                                        <strong>Disclaimer:</strong> This plugin is provided &ldquo;as is&rdquo; without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. The creators and contributors are not responsible for any damage, data loss, security incidents, or other issues arising from the installation, configuration, or use of this plugin or the WAF rules it deploys. WAF rules interact directly with your live Cloudflare configuration. Always test thoroughly in a staging environment before applying to production. Monitor your Cloudflare Security Events log closely after deployment and watch for false positives. By using this plugin you accept full responsibility for your Cloudflare WAF configuration.
    11841211                                </div>
    11851212                        </div>
  • waf-manager-for-cloudflare/trunk/includes/views/page-settings.php

    r3760078 r3771550  
    1313  <div class="wpwaf-st-section">
    1414    <div class="wpwaf-st-section-header">
    15       <span class="wpwaf-st-section-icon">🔒</span>
     15      <span class="wpwaf-st-section-icon"><?php echo WMFC_Icons::svg( 'lock' ); ?></span>
    1616      <h2>Access Control</h2>
    1717    </div>
    … …  
    2121      $current_role = $s['minimum_role'] ?? 'administrator';
    2222      $roles = [
    23         'administrator' => [ 'label' => 'Administrator',  'desc' => 'Full site admin access',            'icon' => '🛡', 'warn' => false ],
    24         'editor'        => [ 'label' => 'Editor',         'desc' => 'Can manage all posts and pages',    'icon' => '✏️', 'warn' => true  ],
    25         'author'        => [ 'label' => 'Author',         'desc' => 'Can publish their own posts',       'icon' => '📝', 'warn' => true  ],
    26         'contributor'   => [ 'label' => 'Contributor',    'desc' => 'Can write but not publish',         'icon' => '👤', 'warn' => true  ],
    27         'subscriber'    => [ 'label' => 'Subscriber',     'desc' => 'Registered users only',             'icon' => '👁', 'warn' => true  ],
     23        'administrator' => [ 'label' => 'Administrator',  'desc' => 'Full site admin access',            'icon' => 'shield', 'warn' => false ],
     24        'editor'        => [ 'label' => 'Editor',         'desc' => 'Can manage all posts and pages',    'icon' => 'pencil', 'warn' => true  ],
     25        'author'        => [ 'label' => 'Author',         'desc' => 'Can publish their own posts',       'icon' => 'file-text', 'warn' => true  ],
     26        'contributor'   => [ 'label' => 'Contributor',    'desc' => 'Can write but not publish',         'icon' => 'user', 'warn' => true  ],
     27        'subscriber'    => [ 'label' => 'Subscriber',     'desc' => 'Registered users only',             'icon' => 'eye', 'warn' => true  ],
    2828      ];
    2929      ?>
    … …  
    4040                     id="st-role-<?php echo esc_attr( $role_key ); ?>"
    4141                     <?php checked( $current_role, $role_key ); ?>>
    42               <span class="wpwaf-st-role-icon"><?php echo esc_html( $role['icon'] ); ?></span>
     42              <span class="wpwaf-st-role-icon"><?php echo WMFC_Icons::svg( $role['icon'] ); ?></span>
    4343              <span class="wpwaf-st-role-info">
    4444                <strong><?php echo esc_html( $role['label'] ); ?></strong>
    4545                <span><?php echo esc_html( $role['desc'] ); ?></span>
    4646                <?php if ( $role['warn'] ) : ?>
    47                 <span class="wpwaf-st-role-warn">⚠ Not recommended for security plugins</span>
     47                <span class="wpwaf-st-role-warn"><?php echo WMFC_Icons::svg( 'alert' ); ?> Not recommended for security plugins</span>
    4848                <?php endif; ?>
    4949              </span>
    … …  
    9595  <div class="wpwaf-st-section">
    9696    <div class="wpwaf-st-section-header">
    97       <span class="wpwaf-st-section-icon">👥</span>
     97      <span class="wpwaf-st-section-icon"><?php echo WMFC_Icons::svg( 'users' ); ?></span>
    9898      <h2>User Access</h2>
    9999    </div>
  • waf-manager-for-cloudflare/trunk/readme.txt

    r3762681 r3771550  
    55Tested up to: 7.1
    66Requires PHP: 8.0
    7 Stable tag: 1.0.25
     7Stable tag: 1.0.26
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    2121= The five rules =
    2222
    23 Based on the open-source [wafrules.com](https://wafrules.com) ruleset, updated to the October 21, 2026 release:
     23Based on the open-source [wafrules.com](https://wafrules.com) ruleset, updated to the October 24, 2026 release:
    2424
    25251. **Allow Good Bots** (Skip). Allows every Cloudflare verified bot, or only the categories you pick, plus services matched by the IP lists they publish (ManageWP, WP Umbrella, ShortPixel, Patchstack and more), Let's Encrypt, your own server IPs, an IP allowlist, custom user agents and custom Cloudflare expressions. It runs first so nothing below blocks legitimate traffic, while Cloudflare's managed rules still protect it.
    26 2. **Block Aggressive Crawlers & WordPress Paths** (Block). Blocks aggressive crawlers and exploit scanners (SQLMap, Nikto, Masscan, Nmap), generic bot patterns, and sensitive WordPress paths (xmlrpc.php, wp-config, install.php, readme.html, license.txt) in any letter case.
    27 3. **Block or Challenge Web Hosts / TOR & Exploit URIs**. Blocks or challenges traffic from hosting and VPS networks (DigitalOcean, Linode, Vultr, Hetzner, OVH, Contabo and more) and TOR exit nodes, and blocks six groups of exploit URIs: time-delay and UNION SQL injection, file inclusion, legacy exploits, other CMS probes and XSS.
     262. **Block Aggressive Crawlers & WordPress Paths** (Block). Blocks aggressive crawlers and exploit scanners (SQLMap, Nikto, Masscan, Nmap), generic bot patterns, curl scripts (with an exception list for your API and webhook hostnames), and sensitive WordPress paths (xmlrpc.php, wp-config, install.php, readme.html, license.txt) in any letter case.
     273. **Block or Challenge Web Hosts / TOR & Exploit URIs**. Blocks or challenges traffic from hosting and VPS networks (DigitalOcean, Linode, Vultr, Hetzner, OVH, Contabo and more), three networks known for WordPress attack traffic and TOR exit nodes, and blocks six groups of exploit URIs: time-delay and UNION SQL injection, file inclusion, legacy exploits, other CMS probes and XSS.
    28284. **Challenge Large Providers / Country** (Managed Challenge). Challenges traffic from AWS, Google Cloud and Azure, and optionally visitors from outside the countries you select.
    29295. **Challenge VPN Connections & wp-login** (Managed Challenge). Challenges known VPN providers and protects the WordPress login page.
    … …  
    140140
    141141== Changelog ==
     142
     143= 1.0.26 =
     144* Changed: every emoji on the WAF Rules, Settings and About screens is now an SVG icon that follows the text color, so the screens look the same on Windows, Mac and every browser instead of showing letters or empty boxes.
     145* Added: every country in the Rule 4 country picker shows its flag. Flags are images bundled with the plugin.
     146* Added: each Quick Pick button in the Rule 4 country picker (North America, Europe, Asia, Oceania, Latin America, MENA, GCC and Africa) shows a small map of its region. MENA and GCC had no icon before.
     147* Changed: removed the em dashes from on-screen text, such as the Challenge All VPN Connections option.
     148* Changed: the WAF rules follow the October 24, 2026 wafrules.com release. Saved settings are updated automatically; deploy again to apply the new rules.
     149* Added: Rule 2 blocks curl user agents, with an "Except these hostnames" list for API and webhook hosts. Turn it off on app or API sites that people call with curl.
     150* Added: Rule 3 always blocks three hosting networks known for WordPress exploit and secrets-scanning traffic (AS48090 TECHOFF SRV / DMZHOST, AS211590 Bucklog / FBW Networks, AS218785 TC Datacenter), even when Block Web Host ASNs is off. Each one can be unticked.
     151* Changed: WP Umbrella is allowed by its latest published IP lists, and the interim option for unlisted DigitalOcean monitors is removed.
     152* Changed: blocking wp-config.php and install.php is now on by default for new setups.
    142153
    143154= 1.0.25 =
    … …  
    184195== Upgrade Notice ==
    185196
     197= 1.0.26 =
     198WAF rules updated to the October 24, 2026 wafrules.com release: curl blocking in Rule 2, three attack hosting networks in Rule 3 and the latest WP Umbrella IPs. Your settings are updated automatically; deploy again to apply them. Also adds SVG icons, country flags and region maps.
     199
    186200= 1.0.25 =
    187201Updates the five WAF rules to the October 2026 wafrules.com release. Your settings are converted automatically. Deploy again to apply the new rules; your other custom Cloudflare rules are now kept.
  • waf-manager-for-cloudflare/trunk/waf-manager-for-cloudflare.php

    r3762681 r3771550  
    33 * Plugin Name:       WAF Manager for Cloudflare
    44 * Plugin URI:        https://wpwafmanager.com
    5  * Description:       Visual Cloudflare WAF rule builder. Deploy five battle-tested security rules to any Cloudflare zone in one click — no API docs or expression language required.
    6  * Version:           1.0.25
     5 * Description:       Visual Cloudflare WAF rule builder. Deploy five battle-tested security rules to any Cloudflare zone in one click. No API docs or expression language required.
     6 * Version:           1.0.26
    77 * Requires at least: 6.0
    88 * Tested up to:      7.1
    … …  
    5555unset( $wmfc_standdown, $wmfc_p );
    5656
    57 define( 'WMFC_VERSION', '1.0.25' );
     57define( 'WMFC_VERSION', '1.0.26' );
    5858define( 'WMFC_DIR',     plugin_dir_path( __FILE__ ) );
    5959define( 'WMFC_URL',     plugin_dir_url( __FILE__ ) );
    … …  
    6767        'class-rule-builder.php'   => 'WMFC_Rule_Builder',
    6868        'class-access.php'         => 'WMFC_Access',
     69        'class-icons.php'          => 'WMFC_Icons',
    6970        'class-admin.php'          => 'WMFC_Admin',
    7071        'class-ajax.php'           => 'WMFC_Ajax',
Note: See TracChangeset for help on using the changeset viewer.