diff --git a/library/components/legends/LegendMobile.vue b/library/components/legends/LegendMobile.vue index d9f9f9474..e2332fcbe 100644 --- a/library/components/legends/LegendMobile.vue +++ b/library/components/legends/LegendMobile.vue @@ -469,18 +469,17 @@ const tabsForMobile = computed(() => { const treeTitleForMobile = computed(() => { // A profile-supplied title names the MAP; the taxonomy names only the tab. if (props.title) return props.title - if (_isFlatTabMobile.value) return 'Legend' - if (props.legendType === 'affinity-block') return 'People Groups' - if (props.legendType === 'doxa-regions') return 'WAGF Regions' - return 'Languages' + if (_isFlatTabMobile.value) return t('legend.titleBar.legend') + if (props.legendType === 'affinity-block') return t('legend.titleBar.peopleGroups') + if (props.legendType === 'doxa-regions') return t('legend.titleBar.wagfRegions') + return t('legend.titleBar.languages') }) const treeColumnLabelForMobile = computed(() => { if (props.columnLabel !== null) return props.columnLabel - if (props.legendType === 'religion') return 'UUPG Religions' - if (props.legendType === 'prayer') return 'Prayer Status' - if (props.legendType === 'engagement') return 'Engagement Status' - if (props.legendType === 'adoption') return 'Adoption Status' - if (_isFlatTabMobile.value) return 'Status' + // From the catalog (legend.colLabel.*), translated in all 11 locales; these were English + // literals, so a phone in ar/zh/ru/hi showed "Prayer Status" over translated rows. + if (['religion', 'prayer', 'engagement', 'adoption'].includes(props.legendType)) return t('legend.colLabel.' + props.legendType) + if (_isFlatTabMobile.value) return t('legend.colLabel.status') return '' }) diff --git a/library/i18n/locales/ar/connectivity.json b/library/i18n/locales/ar/connectivity.json new file mode 100644 index 000000000..8efd2fb3f --- /dev/null +++ b/library/i18n/locales/ar/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة", + "bands": { + "yes": "متصل 60%+", + "partial": "جزئي 25–59%", + "no": "منخفض، أقل من 25%", + "unknown": "غير مُقاس" + }, + "peopleGroup": "شعب", + "caveat": "أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.", + "sheet": { + "close": "إغلاق", + "ai": "عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.", + "dismiss": "إغلاق التنبيه", + "internetUsers": "مستخدمو الإنترنت", + "measured": "سنة القياس", + "mobilePer100": "اشتراكات الجوال لكل 100", + "peopleGroups": "الشعوب", + "topPlatform": "المنصة الأولى", + "unknown": "غير معروف", + "carriers": "شركات الاتصالات ومزودو الإنترنت ({n})", + "socialPlatforms": "منصات التواصل الاجتماعي", + "note": "أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه." + } +} diff --git a/library/i18n/locales/de/connectivity.json b/library/i18n/locales/de/connectivity.json new file mode 100644 index 000000000..4d43d1e4a --- /dev/null +++ b/library/i18n/locales/de/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Internetzugang dort, wo Volksgruppen ohne Engagement leben", + "bands": { + "yes": "verbunden 60%+", + "partial": "teilweise 25–59%", + "no": "gering, unter 25%", + "unknown": "nicht gemessen" + }, + "peopleGroup": "Volksgruppe", + "caveat": "LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.", + "sheet": { + "close": "Schließen", + "ai": "Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.", + "dismiss": "Ausblenden", + "internetUsers": "Internetnutzer", + "measured": "Gemessen", + "mobilePer100": "Mobilfunk pro 100", + "peopleGroups": "Volksgruppen", + "topPlatform": "Wichtigste Plattform", + "unknown": "unbekannt", + "carriers": "Netzbetreiber & ISPs ({n})", + "socialPlatforms": "Soziale Plattformen", + "note": "Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung." + } +} diff --git a/library/i18n/locales/en/connectivity.json b/library/i18n/locales/en/connectivity.json new file mode 100644 index 000000000..af34df67e --- /dev/null +++ b/library/i18n/locales/en/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Internet access where unengaged people groups live", + "bands": { + "yes": "connected 60%+", + "partial": "partial 25–59%", + "no": "low, under 25%", + "unknown": "not measured" + }, + "peopleGroup": "people group", + "caveat": "NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.", + "sheet": { + "close": "Close", + "ai": "Data was found by AI deep research — it is subject to false information.", + "dismiss": "Dismiss", + "internetUsers": "Internet users", + "measured": "Measured", + "mobilePer100": "Mobile per 100", + "peopleGroups": "People groups", + "topPlatform": "Top platform", + "unknown": "unknown", + "carriers": "Carriers & ISPs ({n})", + "socialPlatforms": "Social platforms", + "note": "National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification." + } +} diff --git a/library/i18n/locales/es/connectivity.json b/library/i18n/locales/es/connectivity.json new file mode 100644 index 000000000..b164eeae4 --- /dev/null +++ b/library/i18n/locales/es/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Acceso a internet donde viven pueblos sin implicación", + "bands": { + "yes": "conectado 60%+", + "partial": "parcial 25–59%", + "no": "bajo, menos del 25%", + "unknown": "sin medir" + }, + "peopleGroup": "pueblo", + "caveat": "Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.", + "sheet": { + "close": "Cerrar", + "ai": "Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.", + "dismiss": "Descartar", + "internetUsers": "Usuarios de internet", + "measured": "Medido", + "mobilePer100": "Móviles por cada 100", + "peopleGroups": "Pueblos", + "topPlatform": "Plataforma principal", + "unknown": "desconocido", + "carriers": "Operadores y proveedores de internet ({n})", + "socialPlatforms": "Redes sociales", + "note": "Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada." + } +} diff --git a/library/i18n/locales/fr/connectivity.json b/library/i18n/locales/fr/connectivity.json new file mode 100644 index 000000000..25787e05e --- /dev/null +++ b/library/i18n/locales/fr/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Accès à Internet là où vivent les peuples sans engagement", + "bands": { + "yes": "connecté 60 %+", + "partial": "partiel 25–59 %", + "no": "faible, moins de 25 %", + "unknown": "non mesuré" + }, + "peopleGroup": "peuple", + "caveat": "Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.", + "sheet": { + "close": "Fermer", + "ai": "Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.", + "dismiss": "Ignorer", + "internetUsers": "Internautes", + "measured": "Mesuré", + "mobilePer100": "Mobiles pour 100", + "peopleGroups": "Peuples", + "topPlatform": "Plateforme principale", + "unknown": "inconnu", + "carriers": "Opérateurs et FAI ({n})", + "socialPlatforms": "Réseaux sociaux", + "note": "Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée." + } +} diff --git a/library/i18n/locales/hi/connectivity.json b/library/i18n/locales/hi/connectivity.json new file mode 100644 index 000000000..566b6078d --- /dev/null +++ b/library/i18n/locales/hi/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं", + "bands": { + "yes": "जुड़ा हुआ 60%+", + "partial": "आंशिक 25–59%", + "no": "कम, 25% से नीचे", + "unknown": "मापा नहीं गया" + }, + "peopleGroup": "जनसमूह", + "caveat": "राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।", + "sheet": { + "close": "बंद करें", + "ai": "यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।", + "dismiss": "हटाएँ", + "internetUsers": "इंटरनेट उपयोगकर्ता", + "measured": "मापा गया", + "mobilePer100": "प्रति 100 मोबाइल", + "peopleGroups": "जनसमूह", + "topPlatform": "शीर्ष प्लेटफ़ॉर्म", + "unknown": "अज्ञात", + "carriers": "कैरियर और आईएसपी ({n})", + "socialPlatforms": "सोशल प्लेटफ़ॉर्म", + "note": "ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।" + } +} diff --git a/library/i18n/locales/it/connectivity.json b/library/i18n/locales/it/connectivity.json new file mode 100644 index 000000000..dcda60e70 --- /dev/null +++ b/library/i18n/locales/it/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Accesso a internet dove vivono i popoli senza impegno", + "bands": { + "yes": "connesso 60%+", + "partial": "parziale 25–59%", + "no": "basso, sotto il 25%", + "unknown": "non misurato" + }, + "peopleGroup": "popolo", + "caveat": "Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.", + "sheet": { + "close": "Chiudi", + "ai": "Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.", + "dismiss": "Ignora", + "internetUsers": "Utenti internet", + "measured": "Misurato", + "mobilePer100": "Cellulari ogni 100", + "peopleGroups": "Popoli", + "topPlatform": "Piattaforma principale", + "unknown": "sconosciuto", + "carriers": "Operatori e ISP ({n})", + "socialPlatforms": "Piattaforme social", + "note": "Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata." + } +} diff --git a/library/i18n/locales/pt/connectivity.json b/library/i18n/locales/pt/connectivity.json new file mode 100644 index 000000000..80418217a --- /dev/null +++ b/library/i18n/locales/pt/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Acesso à internet onde vivem os povos sem envolvimento", + "bands": { + "yes": "conectado 60%+", + "partial": "parcial 25–59%", + "no": "baixo, abaixo de 25%", + "unknown": "não medido" + }, + "peopleGroup": "povo", + "caveat": "Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.", + "sheet": { + "close": "Fechar", + "ai": "Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.", + "dismiss": "Dispensar", + "internetUsers": "Usuários de internet", + "measured": "Medido", + "mobilePer100": "Celulares por 100", + "peopleGroups": "Povos", + "topPlatform": "Plataforma principal", + "unknown": "desconhecido", + "carriers": "Operadoras e provedores ({n})", + "socialPlatforms": "Redes sociais", + "note": "Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada." + } +} diff --git a/library/i18n/locales/ro/connectivity.json b/library/i18n/locales/ro/connectivity.json new file mode 100644 index 000000000..f0fbe09df --- /dev/null +++ b/library/i18n/locales/ro/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Acces la internet unde trăiesc popoarele fără implicare", + "bands": { + "yes": "conectat 60%+", + "partial": "parțial 25–59%", + "no": "scăzut, sub 25%", + "unknown": "nemăsurat" + }, + "peopleGroup": "popor", + "caveat": "Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.", + "sheet": { + "close": "Închide", + "ai": "Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.", + "dismiss": "Închide notificarea", + "internetUsers": "Utilizatori de internet", + "measured": "Măsurat", + "mobilePer100": "Mobile la 100", + "peopleGroups": "Popoare", + "topPlatform": "Platforma principală", + "unknown": "necunoscut", + "carriers": "Operatori și ISP-uri ({n})", + "socialPlatforms": "Platforme sociale", + "note": "Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată." + } +} diff --git a/library/i18n/locales/ru/connectivity.json b/library/i18n/locales/ru/connectivity.json new file mode 100644 index 000000000..c37b02a5b --- /dev/null +++ b/library/i18n/locales/ru/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "Доступ к интернету там, где живут народы без вовлечённости", + "bands": { + "yes": "подключено 60%+", + "partial": "частично 25–59%", + "no": "низкий, менее 25%", + "unknown": "не измерено" + }, + "peopleGroup": "народ", + "caveat": "НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.", + "sheet": { + "close": "Закрыть", + "ai": "Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.", + "dismiss": "Скрыть", + "internetUsers": "Пользователи интернета", + "measured": "Год измерения", + "mobilePer100": "Мобильных на 100", + "peopleGroups": "Народы", + "topPlatform": "Главная платформа", + "unknown": "неизвестно", + "carriers": "Операторы и провайдеры ({n})", + "socialPlatforms": "Социальные платформы", + "note": "Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация." + } +} diff --git a/library/i18n/locales/zh/connectivity.json b/library/i18n/locales/zh/connectivity.json new file mode 100644 index 000000000..d8b43dc61 --- /dev/null +++ b/library/i18n/locales/zh/connectivity.json @@ -0,0 +1,25 @@ +{ + "title": "未参与族群所在地的互联网接入", + "bands": { + "yes": "已联网 60%+", + "partial": "部分 25–59%", + "no": "低,低于 25%", + "unknown": "未测量" + }, + "peopleGroup": "族群", + "caveat": "全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。", + "sheet": { + "close": "关闭", + "ai": "这些数据来自人工智能深度检索,可能包含错误信息。", + "dismiss": "忽略", + "internetUsers": "互联网用户", + "measured": "测量年份", + "mobilePer100": "每百人移动电话", + "peopleGroups": "族群", + "topPlatform": "主要平台", + "unknown": "未知", + "carriers": "运营商和互联网服务商({n})", + "socialPlatforms": "社交平台", + "note": "这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。" + } +} diff --git a/plugin-designs/cities-internet/connectivity-map.vue b/plugin-designs/cities-internet/connectivity-map.vue index 65d09d4da..8131e4435 100644 --- a/plugin-designs/cities-internet/connectivity-map.vue +++ b/plugin-designs/cities-internet/connectivity-map.vue @@ -33,6 +33,8 @@ * carrier flag is a NAME-PATTERN HEURISTIC, not a verified classification. */ import { computed, inject, ref, shallowRef, markRaw, onMounted, onBeforeUnmount } from 'vue' +import { useI18n } from 'vue-i18n' +import enConnectivity from '@map/i18n/locales/en/connectivity.json' import { useShadowStyles } from '@map/composables/useShadowStyles.js' import { addMapAttribution } from '@map/composables/useMapAttribution' @@ -151,12 +153,25 @@ function paintGroups(map) { } } +// ── UI text: library/i18n/locales//connectivity.json, in all eleven locales ───────── +// i18n is OPTIONAL (the gospel-resources pattern): useI18n() throws on a host that never +// installed it, so English from the shipped catalog is the fallback, never a blank or a key. +// Carrier and platform names are data and are not translated. +const enLookup = (key) => + String(key).replace(/^connectivity\./, '').split('.').reduce((o, k) => (o == null ? o : o[k]), enConnectivity) +const fill = (str, params) => (params ? String(str).replace(/\{(\w+)\}/g, (m, k) => (k in params ? params[k] : m)) : str) +let t = (key, params) => fill(enLookup(key) ?? String(key), params) +try { + const i18n = useI18n() + t = (key, params) => { const v = i18n.t(key, params || {}); return v === key ? fill(enLookup(key) ?? key, params) : v } +} catch (_) { /* no i18n on this host: the English catalog above is the fallback */ } + // Bands, not a continuous ramp: a reader can hold four categories, not a gradient. const BANDS = [ - { id: 'yes', label: 'connected 60%+', color: '#10b981' }, - { id: 'partial', label: 'partial 25–59%', color: '#e8c15a' }, - { id: 'no', label: 'low, under 25%', color: '#b42318' }, - { id: 'unknown', label: 'not measured', color: '#9aa2ad' }, + { id: 'yes', color: '#10b981' }, + { id: 'partial', color: '#e8c15a' }, + { id: 'no', color: '#b42318' }, + { id: 'unknown', color: '#9aa2ad' }, ] const bandColor = (b) => (BANDS.find((x) => x.id === b) || {}).color || '#9aa2ad' @@ -293,13 +308,15 @@ useShadowStyles( // correctly: `left:8px; width:var(--map-legend-width,380px)`. Bounded and // left-anchored cannot reach the right rail, so the two can never overlap // again — a geometric guarantee, not a tuned z-index. - '.gm-legend{position:absolute;top:8px;left:8px;width:var(--map-legend-width,380px);' + + // LOGICAL, not physical: the control rail sits at inset-inline-end, so in Arabic it moves to the + // LEFT; a legend pinned left:8px then sat under the zoom buttons (measured in the ar gallery tab). + '.gm-legend{position:absolute;top:8px;inset-inline-start:8px;width:var(--map-legend-width,380px);' + 'max-width:calc(100% - 16px);box-sizing:border-box;z-index:4;padding:8px 10px;' + 'border-radius:10px;background:rgba(255,255,255,.94);color:#0f1419;' + "font:12px/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.16)}" + // Narrow screens: the rail is still on the right, so the legend must stop short // of it rather than run under it. 46px = 32px button + 3px inset + clearance. - '@media(max-width:480px){.gm-legend{width:auto;right:46px}}' + + '@media(max-width:480px){.gm-legend{width:auto;inset-inline-end:46px}}' + '.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}' + '.gm-title{font-weight:700;font-size:12.5px;margin-bottom:5px}' + '.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}' + @@ -310,7 +327,7 @@ useShadowStyles( '.gm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;max-height:62%;overflow-y:auto;' + 'background:#fff;color:#0f1419;border-radius:14px 14px 0 0;padding:14px 16px 22px;' + "font:13px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 -6px 26px rgba(0,0,0,.28)}" + - '@media(min-width:700px){.gm-sheet{left:auto;right:14px;bottom:14px;width:330px;border-radius:12px}}' + + '@media(min-width:700px){.gm-sheet{inset-inline-start:auto;inset-inline-end:14px;bottom:14px;width:330px;border-radius:12px}}' + '.is-dark .gm-sheet{background:#132019;color:#e5e7eb}' + '.gm-sh-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}' + '.gm-sh-name{font-weight:800;font-size:15px}' + @@ -353,17 +370,17 @@ useShadowStyles(
-
Internet access where unengaged people groups live
+
{{ t('connectivity.title') }}
- {{ b.label }} + {{ t('connectivity.bands.' + b.id) }} - people group ({{ fmt(groups.length) }}) + {{ t('connectivity.peopleGroup') }} ({{ fmt(groups.length) }})
- NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country. + {{ t('connectivity.caveat') }}
@@ -381,29 +398,26 @@ useShadowStyles(
{{ selected.country }} - +
- Data was found by AI deep research — it is subject to false information. - + {{ t('connectivity.sheet.ai') }} +
-
Internet users{{ selected.internet_pct != null ? selected.internet_pct + '%' : 'unknown' }}
-
Measured{{ selected.internet_year || '—' }}
-
Mobile per 100{{ selected.mobile_per_100 ?? '—' }}
-
People groups{{ fmt(selected.people_groups) }}
-
Top platform{{ selected.top_platform || 'unknown' }}
+
{{ t('connectivity.sheet.internetUsers') }}{{ selected.internet_pct != null ? selected.internet_pct + '%' : t('connectivity.sheet.unknown') }}
+
{{ t('connectivity.sheet.measured') }}{{ selected.internet_year || '—' }}
+
{{ t('connectivity.sheet.mobilePer100') }}{{ selected.mobile_per_100 ?? '—' }}
+
{{ t('connectivity.sheet.peopleGroups') }}{{ fmt(selected.people_groups) }}
+
{{ t('connectivity.sheet.topPlatform') }}{{ selected.top_platform || t('connectivity.sheet.unknown') }}
-
Carriers & ISPs ({{ selected.carrier_count }})
+
{{ t('connectivity.sheet.carriers', { n: selected.carrier_count }) }}
  • {{ c }}
-
Social platforms
+
{{ t('connectivity.sheet.socialPlatforms') }}
  • {{ p.name }} · {{ p.pct }}%
-

- National figures, not city measurements. Carrier names are ASN registry holders — that set includes - banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification. -

+

{{ t('connectivity.sheet.note') }}

diff --git a/public/doxa-maps/cities-internet/cities-internet.js b/public/doxa-maps/cities-internet/cities-internet.js index 5b9ad0480..a36ae97cc 100644 --- a/public/doxa-maps/cities-internet/cities-internet.js +++ b/public/doxa-maps/cities-internet/cities-internet.js @@ -1,45 +1,45 @@ -(function(){"use strict";var Go=typeof document<"u"?document.currentScript:null;const Z$="modulepreload",J$=function(e){return"/"+e},X$={},cn=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** +(function(){"use strict";var Go=typeof document<"u"?document.currentScript:null;const dv="modulepreload",gv=function(e){return"/"+e},hv={},cn=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Va(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Me={},Uo=[],Ft=()=>{},Is=()=>!1,Wn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Kn=e=>e.startsWith("onUpdate:"),He=Object.assign,Ha=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Ku=Object.prototype.hasOwnProperty,Ne=(e,t)=>Ku.call(e,t),me=Array.isArray,ho=e=>un(e)==="[object Map]",zn=e=>un(e)==="[object Set]",Fs=e=>un(e)==="[object Date]",_e=e=>typeof e=="function",Ie=e=>typeof e=="string",yt=e=>typeof e=="symbol",Pe=e=>e!==null&&typeof e=="object",Rs=e=>(Pe(e)||_e(e))&&_e(e.then)&&_e(e.catch),Ds=Object.prototype.toString,un=e=>Ds.call(e),zu=e=>un(e).slice(8,-1),Vn=e=>un(e)==="[object Object]",Hn=e=>Ie(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pn=Va(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yn=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Vu=/-\w/g,et=Yn(e=>e.replace(Vu,t=>t.slice(1).toUpperCase())),Hu=/\B([A-Z])/g,xt=Yn(e=>e.replace(Hu,"-$1").toLowerCase()),qn=Yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ya=Yn(e=>e?`on${qn(e)}`:""),Rt=(e,t)=>!Object.is(e,t),qa=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Yu=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Gs=e=>{const t=Ie(e)?Number(e):NaN;return isNaN(t)?e:t};let Us;const Zn=()=>Us||(Us=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Be(e){if(me(e)){const t={};for(let o=0;o{if(o){const n=o.split(Zu);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function $e(e){let t="";if(Ie(e))t=e;else if(me(e))for(let o=0;o!!(e&&e.__v_isRef===!0),Z=e=>Ie(e)?e:e==null?"":me(e)||Pe(e)&&(e.toString===Ds||!_e(e.toString))?Ks(e)?Z(e.value):JSON.stringify(e,zs,2):String(e),zs=(e,t)=>Ks(t)?zs(e,t.value):ho(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Za(n,r)+" =>"]=a,o),{})}:zn(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Za(o))}:yt(t)?Za(t):Pe(t)&&!me(t)&&!Vn(t)?String(t):t,Za=(e,t="")=>{var o;return yt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Va(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Me={},Uo=[],Ft=()=>{},Ms=()=>!1,Wn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zn=e=>e.startsWith("onUpdate:"),Ye=Object.assign,Ha=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Ku=Object.prototype.hasOwnProperty,Pe=(e,t)=>Ku.call(e,t),me=Array.isArray,ho=e=>un(e)==="[object Map]",Kn=e=>un(e)==="[object Set]",Fs=e=>un(e)==="[object Date]",_e=e=>typeof e=="function",Re=e=>typeof e=="string",_t=e=>typeof e=="symbol",Ne=e=>e!==null&&typeof e=="object",Rs=e=>(Ne(e)||_e(e))&&_e(e.then)&&_e(e.catch),Ds=Object.prototype.toString,un=e=>Ds.call(e),Vu=e=>un(e).slice(8,-1),Vn=e=>un(e)==="[object Object]",Hn=e=>Re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pn=Va(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yn=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Hu=/-\w/g,tt=Yn(e=>e.replace(Hu,t=>t.slice(1).toUpperCase())),Yu=/\B([A-Z])/g,xt=Yn(e=>e.replace(Yu,"-$1").toLowerCase()),qn=Yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ya=Yn(e=>e?`on${qn(e)}`:""),Rt=(e,t)=>!Object.is(e,t),qa=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},qu=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Gs=e=>{const t=Re(e)?Number(e):NaN;return isNaN(t)?e:t};let Us;const Zn=()=>Us||(Us=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ue(e){if(me(e)){const t={};for(let o=0;o{if(o){const n=o.split(Ju);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function $e(e){let t="";if(Re(e))t=e;else if(me(e))for(let o=0;o!!(e&&e.__v_isRef===!0),H=e=>Re(e)?e:e==null?"":me(e)||Ne(e)&&(e.toString===Ds||!_e(e.toString))?zs(e)?H(e.value):JSON.stringify(e,Ks,2):String(e),Ks=(e,t)=>zs(t)?Ks(e,t.value):ho(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Za(n,r)+" =>"]=a,o),{})}:Kn(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Za(o))}:_t(t)?Za(t):Ne(t)&&!me(t)&&!Vn(t)?String(t):t,Za=(e,t="")=>{var o;return _t(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Je;class Vs{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Je&&(Je.active?(this.parent=Je,this.index=(Je.scopes||(Je.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(Je===this)Je=this.prevScope;else{let t=Je;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(gn){let t=gn;for(gn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;dn;){let t=dn;for(dn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Js(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Xs(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),or(n),op(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function tr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Qs(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Qs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===hn)||(e.globalVersion=hn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!tr(e))))return;e.flags|=2;const t=e.dep,o=Fe,n=Lt;Fe=e,Lt=!0;try{Js(e);const a=e.fn(e._value);(t.version===0||Rt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{Fe=o,Lt=n,Xs(e),e.flags&=-3}}function or(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)or(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function op(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Lt=!0;const ei=[];function Dt(){ei.push(Lt),Lt=!1}function Bt(){const e=ei.pop();Lt=e===void 0?!0:e}function ti(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=Fe;Fe=void 0;try{t()}finally{Fe=o}}}let hn=0;class np{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class nr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Fe||!Lt||Fe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Fe)o=this.activeLink=new np(Fe,this),Fe.deps?(o.prevDep=Fe.depsTail,Fe.depsTail.nextDep=o,Fe.depsTail=o):Fe.deps=Fe.depsTail=o,oi(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=Fe.depsTail,o.nextDep=void 0,Fe.depsTail.nextDep=o,Fe.depsTail=o,Fe.deps===o&&(Fe.deps=n)}return o}trigger(t){this.version++,hn++,this.notify(t)}notify(t){Qa();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{er()}}}function oi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)oi(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Xn=new WeakMap,Lo=Symbol(""),ar=Symbol(""),fn=Symbol("");function it(e,t,o){if(Lt&&Fe){let n=Xn.get(e);n||Xn.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new nr),a.map=n,a.key=o),a.track()}}function Jt(e,t,o,n,a,r){const s=Xn.get(e);if(!s){hn++;return}const i=l=>{l&&l.trigger()};if(Qa(),t==="clear")s.forEach(i);else{const l=me(e),c=l&&Hn(o);if(l&&o==="length"){const u=Number(n);s.forEach((d,p)=>{(p==="length"||p===fn||!yt(p)&&p>=u)&&i(d)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),c&&i(s.get(fn)),t){case"add":l?c&&i(s.get("length")):(i(s.get(Lo)),ho(e)&&i(s.get(ar)));break;case"delete":l||(i(s.get(Lo)),ho(e)&&i(s.get(ar)));break;case"set":ho(e)&&i(s.get(Lo));break}}er()}function ap(e,t){const o=Xn.get(e);return o&&o.get(t)}function jo(e){const t=Se(e);return t===e?t:(it(t,"iterate",fn),_t(e)?t:t.map(Nt))}function Qn(e){return it(e=Se(e),"iterate",fn),e}function Gt(e,t){return eo(e)?Ko(Qt(e)?Nt(t):t):Nt(t)}const rp={__proto__:null,[Symbol.iterator](){return rr(this,Symbol.iterator,e=>Gt(this,e))},concat(...e){return jo(this).concat(...e.map(t=>me(t)?jo(t):t))},entries(){return rr(this,"entries",e=>(e[1]=Gt(this,e[1]),e))},every(e,t){return Xt(this,"every",e,t,void 0,arguments)},filter(e,t){return Xt(this,"filter",e,t,o=>o.map(n=>Gt(this,n)),arguments)},find(e,t){return Xt(this,"find",e,t,o=>Gt(this,o),arguments)},findIndex(e,t){return Xt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Xt(this,"findLast",e,t,o=>Gt(this,o),arguments)},findLastIndex(e,t){return Xt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Xt(this,"forEach",e,t,void 0,arguments)},includes(...e){return sr(this,"includes",e)},indexOf(...e){return sr(this,"indexOf",e)},join(e){return jo(this).join(e)},lastIndexOf(...e){return sr(this,"lastIndexOf",e)},map(e,t){return Xt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return ni(this,"reduce",e,t)},reduceRight(e,...t){return ni(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return Xt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return jo(this).toReversed()},toSorted(e){return jo(this).toSorted(e)},toSpliced(...e){return jo(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return rr(this,"values",e=>Gt(this,e))}};function rr(e,t,o){const n=Qn(e),a=n[t]();return n!==e&&!_t(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const sp=Array.prototype;function Xt(e,t,o,n,a,r){const s=Qn(e),i=s!==e&&!_t(e),l=s[t];if(l!==sp[t]){const d=l.apply(e,r);return i?Nt(d):d}let c=o;s!==e&&(i?c=function(d,p){return o.call(this,Gt(e,d),p,e)}:o.length>2&&(c=function(d,p){return o.call(this,d,p,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function ni(e,t,o,n){const a=Qn(e),r=a!==e&&!_t(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,d){return i&&(i=!1,c=Gt(e,c)),o.call(this,c,Gt(e,u),d,e)}):o.length>3&&(s=function(c,u,d){return o.call(this,c,u,d,e)}));const l=a[t](s,...n);return i?Gt(e,l):l}function sr(e,t,o){const n=Se(e);it(n,"iterate",fn);const a=n[t](...o);return(a===-1||a===!1)&&aa(o[0])?(o[0]=Se(o[0]),n[t](...o)):a}function mn(e,t,o=[]){Dt(),Qa();const n=Se(e)[t].apply(e,o);return er(),Bt(),n}const ip=Va("__proto__,__v_isRef,__isVue"),ai=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function lp(e){yt(e)||(e=String(e));const t=Se(this);return it(t,"has",e),t.hasOwnProperty(e)}class ri{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?pi:ui:r?ci:li).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=me(t);if(!a){let l;if(s&&(l=rp[o]))return l;if(o==="hasOwnProperty")return lp}const i=Reflect.get(t,o,Ge(t)?t:n);if((yt(o)?ai.has(o):ip(o))||(a||it(t,"get",o),r))return i;if(Ge(i)){const l=s&&Hn(o)?i:i.value;return a&&Pe(l)?lr(l):l}return Pe(i)?a?lr(i):Wo(i):i}}class si extends ri{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=me(t)&&Hn(o);if(!this._isShallow){const c=eo(r);if(!_t(n)&&!eo(n)&&(r=Se(r),n=Se(n)),!s&&Ge(r)&&!Ge(n))return c||(r.value=n),!0}const i=s?Number(o)e,ea=e=>Reflect.getPrototypeOf(e);function gp(e,t,o){return function(...n){const a=this.__v_raw,r=Se(a),s=ho(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=o?ir:t?Ko:Nt;return!t&&it(r,"iterate",l?ar:Lo),He(Object.create(c),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:i?[u(d[0]),u(d[1])]:u(d),done:p}}})}}function ta(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function hp(e,t){const o={get(a){const r=this.__v_raw,s=Se(r),i=Se(a);e||(Rt(a,i)&&it(s,"get",a),it(s,"get",i));const{has:l}=ea(s),c=t?ir:e?Ko:Nt;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&it(Se(a),"iterate",Lo),a.size},has(a){const r=this.__v_raw,s=Se(r),i=Se(a);return e||(Rt(a,i)&&it(s,"has",a),it(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Se(i),c=t?ir:e?Ko:Nt;return!e&&it(l,"iterate",Lo),i.forEach((u,d)=>a.call(r,c(u),c(d),s))}};return He(o,e?{add:ta("add"),set:ta("set"),delete:ta("delete"),clear:ta("clear")}:{add(a){const r=Se(this),s=ea(r),i=Se(a),l=!t&&!_t(a)&&!eo(a)?i:a;return s.has.call(r,l)||Rt(a,l)&&s.has.call(r,a)||Rt(i,l)&&s.has.call(r,i)||(r.add(l),Jt(r,"add",l,l)),this},set(a,r){!t&&!_t(r)&&!eo(r)&&(r=Se(r));const s=Se(this),{has:i,get:l}=ea(s);let c=i.call(s,a);c||(a=Se(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?Rt(r,u)&&Jt(s,"set",a,r):Jt(s,"add",a,r),this},delete(a){const r=Se(this),{has:s,get:i}=ea(r);let l=s.call(r,a);l||(a=Se(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&Jt(r,"delete",a,void 0),c},clear(){const a=Se(this),r=a.size!==0,s=a.clear();return r&&Jt(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=gp(a,e,t)}),o}function oa(e,t){const o=hp(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ne(o,a)&&a in n?o:n,a,r)}const fp={get:oa(!1,!1)},mp={get:oa(!1,!0)},bp={get:oa(!0,!1)},yp={get:oa(!0,!0)},li=new WeakMap,ci=new WeakMap,ui=new WeakMap,pi=new WeakMap;function _p(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wo(e){return eo(e)?e:na(e,!1,cp,fp,li)}function $p(e){return na(e,!1,pp,mp,ci)}function lr(e){return na(e,!0,up,bp,ui)}function ev(e){return na(e,!0,dp,yp,pi)}function na(e,t,o,n,a){if(!Pe(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=_p(zu(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function Qt(e){return eo(e)?Qt(e.__v_raw):!!(e&&e.__v_isReactive)}function eo(e){return!!(e&&e.__v_isReadonly)}function _t(e){return!!(e&&e.__v_isShallow)}function aa(e){return e?!!e.__v_raw:!1}function Se(e){const t=e&&e.__v_raw;return t?Se(t):e}function No(e){return!Ne(e,"__v_skip")&&Object.isExtensible(e)&&Bs(e,"__v_skip",!0),e}const Nt=e=>Pe(e)?Wo(e):e,Ko=e=>Pe(e)?lr(e):e;function Ge(e){return e?e.__v_isRef===!0:!1}function re(e){return di(e,!1)}function zo(e){return di(e,!0)}function di(e,t){return Ge(e)?e:new vp(e,t)}class vp{constructor(t,o){this.dep=new nr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Se(t),this._value=o?t:Nt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||_t(t)||eo(t);t=n?t:Se(t),Rt(t,o)&&(this._rawValue=t,this._value=n?t:Nt(t),this.dep.trigger())}}function se(e){return Ge(e)?e.value:e}const wp={get:(e,t,o)=>t==="__v_raw"?e:se(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return Ge(a)&&!Ge(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function gi(e){return Qt(e)?e:new Proxy(e,wp)}function kp(e){const t=me(e)?new Array(e.length):{};for(const o in e)t[o]=fi(e,o);return t}class xp{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=yt(o)?o:String(o),this._raw=Se(t);let a=!0,r=t;if(!me(t)||yt(this._key)||!Hn(this._key))do a=!aa(r)||_t(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=se(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ge(this._raw[this._key])){const o=this._object[this._key];if(Ge(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return ap(this._raw,this._key)}}class Ap{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function hi(e,t,o){return Ge(e)?e:_e(e)?new Ap(e):Pe(e)&&arguments.length>1?fi(e,t,o):re(e)}function fi(e,t,o){return new xp(e,t,o)}class Sp{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new nr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=hn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Fe!==this)return Zs(this,!0),!0}get value(){const t=this.dep.track();return Qs(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Cp(e,t,o=!1){let n,a;return _e(e)?n=e:(n=e.get,a=e.set),new Sp(n,a,o)}const ra={},sa=new WeakMap;let Po;function Lp(e,t=!1,o=Po){if(o){let n=sa.get(o);n||sa.set(o,n=[]),n.push(e)}}function Np(e,t,o=Me){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,c=x=>a?x:_t(x)||a===!1||a===0?to(x,1):to(x);let u,d,p,m,_=!1,f=!1;if(Ge(e)?(d=()=>e.value,_=_t(e)):Qt(e)?(d=()=>c(e),_=!0):me(e)?(f=!0,_=e.some(x=>Qt(x)||_t(x)),d=()=>e.map(x=>{if(Ge(x))return x.value;if(Qt(x))return c(x);if(_e(x))return l?l(x,2):x()})):_e(e)?t?d=l?()=>l(e,2):e:d=()=>{if(p){Dt();try{p()}finally{Bt()}}const x=Po;Po=u;try{return l?l(e,3,[m]):e(m)}finally{Po=x}}:d=Ft,t&&a){const x=d,k=a===!0?1/0:a;d=()=>to(x(),k)}const b=Hs(),$=()=>{u.stop(),b&&b.active&&Ha(b.effects,u)};if(r&&t){const x=t;t=(...k)=>{const w=x(...k);return $(),w}}let L=f?new Array(e.length).fill(ra):ra;const A=x=>{if(!(!(u.flags&1)||!u.dirty&&!x))if(t){const k=u.run();if(x||a||_||(f?k.some((w,N)=>Rt(w,L[N])):Rt(k,L))){p&&p();const w=Po;Po=u;try{const N=[k,L===ra?void 0:f&&L[0]===ra?[]:L,m];L=k,l?l(t,3,N):t(...N)}finally{Po=w}}}else u.run()};return i&&i(A),u=new Ys(d),u.scheduler=s?()=>s(A,!1):A,m=x=>Lp(x,!1,u),p=u.onStop=()=>{const x=sa.get(u);if(x){if(l)l(x,4);else for(const k of x)k();sa.delete(u)}},t?n?A(!0):L=u.run():s?s(A.bind(null,!0),!0):u.run(),$.pause=u.pause.bind(u),$.resume=u.resume.bind(u),$.stop=$,$}function to(e,t=1/0,o){if(t<=0||!Pe(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Ge(e))to(e.value,t,o);else if(me(e))for(let n=0;n{to(n,t,o)});else if(Vn(e)){for(const n in e)to(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&to(e[n],t,o)}return e}/** +**/let Xe;class Vs{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Xe&&(Xe.active?(this.parent=Xe,this.index=(Xe.scopes||(Xe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(Xe===this)Xe=this.prevScope;else{let t=Xe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(gn){let t=gn;for(gn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;dn;){let t=dn;for(dn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Js(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Xs(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),or(n),np(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function tr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Qs(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Qs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===hn)||(e.globalVersion=hn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!tr(e))))return;e.flags|=2;const t=e.dep,o=De,n=Lt;De=e,Lt=!0;try{Js(e);const a=e.fn(e._value);(t.version===0||Rt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{De=o,Lt=n,Xs(e),e.flags&=-3}}function or(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)or(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function np(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Lt=!0;const ei=[];function Dt(){ei.push(Lt),Lt=!1}function Bt(){const e=ei.pop();Lt=e===void 0?!0:e}function ti(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=De;De=void 0;try{t()}finally{De=o}}}let hn=0;class ap{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class nr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!De||!Lt||De===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==De)o=this.activeLink=new ap(De,this),De.deps?(o.prevDep=De.depsTail,De.depsTail.nextDep=o,De.depsTail=o):De.deps=De.depsTail=o,oi(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=De.depsTail,o.nextDep=void 0,De.depsTail.nextDep=o,De.depsTail=o,De.deps===o&&(De.deps=n)}return o}trigger(t){this.version++,hn++,this.notify(t)}notify(t){Qa();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{er()}}}function oi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)oi(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Xn=new WeakMap,Lo=Symbol(""),ar=Symbol(""),fn=Symbol("");function ut(e,t,o){if(Lt&&De){let n=Xn.get(e);n||Xn.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new nr),a.map=n,a.key=o),a.track()}}function Jt(e,t,o,n,a,r){const s=Xn.get(e);if(!s){hn++;return}const i=l=>{l&&l.trigger()};if(Qa(),t==="clear")s.forEach(i);else{const l=me(e),c=l&&Hn(o);if(l&&o==="length"){const u=Number(n);s.forEach((d,p)=>{(p==="length"||p===fn||!_t(p)&&p>=u)&&i(d)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),c&&i(s.get(fn)),t){case"add":l?c&&i(s.get("length")):(i(s.get(Lo)),ho(e)&&i(s.get(ar)));break;case"delete":l||(i(s.get(Lo)),ho(e)&&i(s.get(ar)));break;case"set":ho(e)&&i(s.get(Lo));break}}er()}function rp(e,t){const o=Xn.get(e);return o&&o.get(t)}function jo(e){const t=Se(e);return t===e?t:(ut(t,"iterate",fn),$t(e)?t:t.map(Pt))}function Qn(e){return ut(e=Se(e),"iterate",fn),e}function Gt(e,t){return eo(e)?zo(Qt(e)?Pt(t):t):Pt(t)}const sp={__proto__:null,[Symbol.iterator](){return rr(this,Symbol.iterator,e=>Gt(this,e))},concat(...e){return jo(this).concat(...e.map(t=>me(t)?jo(t):t))},entries(){return rr(this,"entries",e=>(e[1]=Gt(this,e[1]),e))},every(e,t){return Xt(this,"every",e,t,void 0,arguments)},filter(e,t){return Xt(this,"filter",e,t,o=>o.map(n=>Gt(this,n)),arguments)},find(e,t){return Xt(this,"find",e,t,o=>Gt(this,o),arguments)},findIndex(e,t){return Xt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Xt(this,"findLast",e,t,o=>Gt(this,o),arguments)},findLastIndex(e,t){return Xt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Xt(this,"forEach",e,t,void 0,arguments)},includes(...e){return sr(this,"includes",e)},indexOf(...e){return sr(this,"indexOf",e)},join(e){return jo(this).join(e)},lastIndexOf(...e){return sr(this,"lastIndexOf",e)},map(e,t){return Xt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return ni(this,"reduce",e,t)},reduceRight(e,...t){return ni(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return Xt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return jo(this).toReversed()},toSorted(e){return jo(this).toSorted(e)},toSpliced(...e){return jo(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return rr(this,"values",e=>Gt(this,e))}};function rr(e,t,o){const n=Qn(e),a=n[t]();return n!==e&&!$t(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const ip=Array.prototype;function Xt(e,t,o,n,a,r){const s=Qn(e),i=s!==e&&!$t(e),l=s[t];if(l!==ip[t]){const d=l.apply(e,r);return i?Pt(d):d}let c=o;s!==e&&(i?c=function(d,p){return o.call(this,Gt(e,d),p,e)}:o.length>2&&(c=function(d,p){return o.call(this,d,p,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function ni(e,t,o,n){const a=Qn(e),r=a!==e&&!$t(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,d){return i&&(i=!1,c=Gt(e,c)),o.call(this,c,Gt(e,u),d,e)}):o.length>3&&(s=function(c,u,d){return o.call(this,c,u,d,e)}));const l=a[t](s,...n);return i?Gt(e,l):l}function sr(e,t,o){const n=Se(e);ut(n,"iterate",fn);const a=n[t](...o);return(a===-1||a===!1)&&aa(o[0])?(o[0]=Se(o[0]),n[t](...o)):a}function mn(e,t,o=[]){Dt(),Qa();const n=Se(e)[t].apply(e,o);return er(),Bt(),n}const lp=Va("__proto__,__v_isRef,__isVue"),ai=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(_t));function cp(e){_t(e)||(e=String(e));const t=Se(this);return ut(t,"has",e),t.hasOwnProperty(e)}class ri{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?pi:ui:r?ci:li).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=me(t);if(!a){let l;if(s&&(l=sp[o]))return l;if(o==="hasOwnProperty")return cp}const i=Reflect.get(t,o,je(t)?t:n);if((_t(o)?ai.has(o):lp(o))||(a||ut(t,"get",o),r))return i;if(je(i)){const l=s&&Hn(o)?i:i.value;return a&&Ne(l)?lr(l):l}return Ne(i)?a?lr(i):Wo(i):i}}class si extends ri{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=me(t)&&Hn(o);if(!this._isShallow){const c=eo(r);if(!$t(n)&&!eo(n)&&(r=Se(r),n=Se(n)),!s&&je(r)&&!je(n))return c||(r.value=n),!0}const i=s?Number(o)e,ea=e=>Reflect.getPrototypeOf(e);function hp(e,t,o){return function(...n){const a=this.__v_raw,r=Se(a),s=ho(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=o?ir:t?zo:Pt;return!t&&ut(r,"iterate",l?ar:Lo),Ye(Object.create(c),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:i?[u(d[0]),u(d[1])]:u(d),done:p}}})}}function ta(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function fp(e,t){const o={get(a){const r=this.__v_raw,s=Se(r),i=Se(a);e||(Rt(a,i)&&ut(s,"get",a),ut(s,"get",i));const{has:l}=ea(s),c=t?ir:e?zo:Pt;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&ut(Se(a),"iterate",Lo),a.size},has(a){const r=this.__v_raw,s=Se(r),i=Se(a);return e||(Rt(a,i)&&ut(s,"has",a),ut(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Se(i),c=t?ir:e?zo:Pt;return!e&&ut(l,"iterate",Lo),i.forEach((u,d)=>a.call(r,c(u),c(d),s))}};return Ye(o,e?{add:ta("add"),set:ta("set"),delete:ta("delete"),clear:ta("clear")}:{add(a){const r=Se(this),s=ea(r),i=Se(a),l=!t&&!$t(a)&&!eo(a)?i:a;return s.has.call(r,l)||Rt(a,l)&&s.has.call(r,a)||Rt(i,l)&&s.has.call(r,i)||(r.add(l),Jt(r,"add",l,l)),this},set(a,r){!t&&!$t(r)&&!eo(r)&&(r=Se(r));const s=Se(this),{has:i,get:l}=ea(s);let c=i.call(s,a);c||(a=Se(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?Rt(r,u)&&Jt(s,"set",a,r):Jt(s,"add",a,r),this},delete(a){const r=Se(this),{has:s,get:i}=ea(r);let l=s.call(r,a);l||(a=Se(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&Jt(r,"delete",a,void 0),c},clear(){const a=Se(this),r=a.size!==0,s=a.clear();return r&&Jt(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=hp(a,e,t)}),o}function oa(e,t){const o=fp(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Pe(o,a)&&a in n?o:n,a,r)}const mp={get:oa(!1,!1)},bp={get:oa(!1,!0)},yp={get:oa(!0,!1)},_p={get:oa(!0,!0)},li=new WeakMap,ci=new WeakMap,ui=new WeakMap,pi=new WeakMap;function $p(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wo(e){return eo(e)?e:na(e,!1,up,mp,li)}function vp(e){return na(e,!1,dp,bp,ci)}function lr(e){return na(e,!0,pp,yp,ui)}function mv(e){return na(e,!0,gp,_p,pi)}function na(e,t,o,n,a){if(!Ne(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=$p(Vu(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function Qt(e){return eo(e)?Qt(e.__v_raw):!!(e&&e.__v_isReactive)}function eo(e){return!!(e&&e.__v_isReadonly)}function $t(e){return!!(e&&e.__v_isShallow)}function aa(e){return e?!!e.__v_raw:!1}function Se(e){const t=e&&e.__v_raw;return t?Se(t):e}function Po(e){return!Pe(e,"__v_skip")&&Object.isExtensible(e)&&Bs(e,"__v_skip",!0),e}const Pt=e=>Ne(e)?Wo(e):e,zo=e=>Ne(e)?lr(e):e;function je(e){return e?e.__v_isRef===!0:!1}function se(e){return di(e,!1)}function Ko(e){return di(e,!0)}function di(e,t){return je(e)?e:new wp(e,t)}class wp{constructor(t,o){this.dep=new nr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Se(t),this._value=o?t:Pt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||$t(t)||eo(t);t=n?t:Se(t),Rt(t,o)&&(this._rawValue=t,this._value=n?t:Pt(t),this.dep.trigger())}}function oe(e){return je(e)?e.value:e}const kp={get:(e,t,o)=>t==="__v_raw"?e:oe(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return je(a)&&!je(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function gi(e){return Qt(e)?e:new Proxy(e,kp)}function Ap(e){const t=me(e)?new Array(e.length):{};for(const o in e)t[o]=fi(e,o);return t}class xp{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=_t(o)?o:String(o),this._raw=Se(t);let a=!0,r=t;if(!me(t)||_t(this._key)||!Hn(this._key))do a=!aa(r)||$t(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=oe(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&je(this._raw[this._key])){const o=this._object[this._key];if(je(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return rp(this._raw,this._key)}}class Sp{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function hi(e,t,o){return je(e)?e:_e(e)?new Sp(e):Ne(e)&&arguments.length>1?fi(e,t,o):se(e)}function fi(e,t,o){return new xp(e,t,o)}class Cp{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new nr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=hn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&De!==this)return Zs(this,!0),!0}get value(){const t=this.dep.track();return Qs(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Lp(e,t,o=!1){let n,a;return _e(e)?n=e:(n=e.get,a=e.set),new Cp(n,a,o)}const ra={},sa=new WeakMap;let No;function Pp(e,t=!1,o=No){if(o){let n=sa.get(o);n||sa.set(o,n=[]),n.push(e)}}function Np(e,t,o=Me){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,c=A=>a?A:$t(A)||a===!1||a===0?to(A,1):to(A);let u,d,p,m,_=!1,f=!1;if(je(e)?(d=()=>e.value,_=$t(e)):Qt(e)?(d=()=>c(e),_=!0):me(e)?(f=!0,_=e.some(A=>Qt(A)||$t(A)),d=()=>e.map(A=>{if(je(A))return A.value;if(Qt(A))return c(A);if(_e(A))return l?l(A,2):A()})):_e(e)?t?d=l?()=>l(e,2):e:d=()=>{if(p){Dt();try{p()}finally{Bt()}}const A=No;No=u;try{return l?l(e,3,[m]):e(m)}finally{No=A}}:d=Ft,t&&a){const A=d,k=a===!0?1/0:a;d=()=>to(A(),k)}const b=Hs(),$=()=>{u.stop(),b&&b.active&&Ha(b.effects,u)};if(r&&t){const A=t;t=(...k)=>{const w=A(...k);return $(),w}}let P=f?new Array(e.length).fill(ra):ra;const x=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(t){const k=u.run();if(A||a||_||(f?k.some((w,C)=>Rt(w,P[C])):Rt(k,P))){p&&p();const w=No;No=u;try{const C=[k,P===ra?void 0:f&&P[0]===ra?[]:P,m];P=k,l?l(t,3,C):t(...C)}finally{No=w}}}else u.run()};return i&&i(x),u=new Ys(d),u.scheduler=s?()=>s(x,!1):x,m=A=>Pp(A,!1,u),p=u.onStop=()=>{const A=sa.get(u);if(A){if(l)l(A,4);else for(const k of A)k();sa.delete(u)}},t?n?x(!0):P=u.run():s?s(x.bind(null,!0),!0):u.run(),$.pause=u.pause.bind(u),$.resume=u.resume.bind(u),$.stop=$,$}function to(e,t=1/0,o){if(t<=0||!Ne(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,je(e))to(e.value,t,o);else if(me(e))for(let n=0;n{to(n,t,o)});else if(Vn(e)){for(const n in e)to(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&to(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const bn=[];let cr=!1;function tv(e,...t){if(cr)return;cr=!0,Dt();const o=bn.length?bn[bn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Pp();if(n)Vo(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${fl(o,r.type)}>`).join(` +**/const bn=[];let cr=!1;function bv(e,...t){if(cr)return;cr=!0,Dt();const o=bn.length?bn[bn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Op();if(n)Vo(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${fl(o,r.type)}>`).join(` `),a]);else{const r=[`[Vue warn]: ${e}`,...t];a.length&&r.push(` -`,...Op(a)),console.warn(...r)}Bt(),cr=!1}function Pp(){let e=bn[bn.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Op(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...Ep(o))}),t}function Ep({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${fl(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...Tp(e.props),r]:[a+r]}function Tp(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...mi(n,e[n]))}),o.length>3&&t.push(" ..."),t}function mi(e,t,o){return Ie(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:Ge(t)?(t=mi(e,Se(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):_e(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Se(t),o?t:[`${e}=`,t])}function Vo(e,t,o,n){try{return n?e(...n):e()}catch(a){yn(a,t,o)}}function Pt(e,t,o,n){if(_e(e)){const a=Vo(e,t,o,n);return a&&Rs(a)&&a.catch(r=>{yn(r,t,o)}),a}if(me(e)){const a=[];for(let r=0;r>>1,a=pt[n],r=_n(a);r=_n(o)?pt.push(e):pt.splice(Ip(t),0,e),e.flags|=1,yi()}}function yi(){ia||(ia=bi.then(vi))}function Fp(e){if(!me(e))fo&&e.id===-1?fo.splice(Yo+1,0,e):e.flags&1||(Ho.push(e),e.flags|=1);else for(let t=0;t_n(o)-_n(n));if(Ho.length=0,fo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function vi(e){try{for(Ut=0;Ut{n._d&&_a(-1);const r=la(t),s=no.length;let i;try{i=e(...a)}finally{for(let l=no.length;l>s;l--)Sr();la(r),n._d&&_a(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function ki(e,t){if(at===null)return e;const o=ka(at),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&_e(t)?t.call(n&&n.proxy):t}}function Rp(){return!!(ro()||To)}const Dp=Symbol.for("v-scx"),Bp=()=>xe(Dp);function Gp(e,t){return pr(e,null,t)}function We(e,t,o){return pr(e,t,o)}function pr(e,t,o=Me){const{immediate:n,deep:a,flush:r,once:s}=o,i=He({},o),l=t&&n||!t&&r!=="post";let c;if(Jo){if(r==="sync"){const m=Bp();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=Ft,m.resume=Ft,m.pause=Ft,m}}const u=rt;i.call=(m,_,f)=>Pt(m,u,_,f);let d=!1;r==="post"?i.scheduler=m=>{gt(m,u&&u.suspense)}:r!=="sync"&&(d=!0,i.scheduler=(m,_)=>{_?m():ur(m)}),i.augmentJob=m=>{t&&(m.flags|=4),d&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const p=Np(e,t,i);return Jo&&(c?c.push(p):l&&p()),p}function Up(e,t,o){const n=this.proxy,a=Ie(e)?e.includes(".")?xi(n,e):()=>n[e]:e.bind(n,n);let r;_e(t)?r=t:(r=t.handler,o=t);const s=On(this),i=pr(a,r.bind(n),o);return s(),i}function xi(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Eo=e=>e&&(e.disabled||e.disabled===""),jp=e=>e&&(e.defer||e.defer===""),Si=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ci=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,dr=(e,t)=>{const o=e&&e.to;return Ie(o)?t?t(o):null:o},Wp={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,c){const{mc:u,pc:d,pbc:p,o:{insert:m,querySelector:_,createText:f,createComment:b,parentNode:$}}=c,L=Eo(t.props);let{dynamicChildren:A}=t;const x=(N,C,y)=>{N.shapeFlag&16&&u(N.children,C,y,a,r,s,i,l)},k=(N=t)=>{const C=Eo(N.props),y=N.target=dr(N.props,_),E=gr(y,N,f,m);y&&(s!=="svg"&&Si(y)?s="svg":s!=="mathml"&&Ci(y)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(y),C||(x(N,y,E),$n(N,!1)))},w=N=>{const C=()=>{if(bo.get(N)===C){if(bo.delete(N),Eo(N.props)){const y=$(N.el)||o;x(N,y,N.anchor),$n(N,!0)}k(N)}};bo.set(N,C),gt(C,r)};if(e==null){const N=t.el=f(""),C=t.anchor=f("");if(m(N,o,n),m(C,o,n),jp(t.props)||r&&r.pendingBranch){w(t);return}L&&(x(t,o,C),$n(t,!0)),k()}else{t.el=e.el;const N=t.anchor=e.anchor,C=bo.get(e);if(C){C.flags|=8,bo.delete(e),w(t);return}t.targetStart=e.targetStart;const y=t.target=e.target,E=t.targetAnchor=e.targetAnchor,I=Eo(e.props),H=I?o:y,ee=I?N:E;if(s==="svg"||Si(y)?s="svg":(s==="mathml"||Ci(y))&&(s="mathml"),A?(p(e.dynamicChildren,A,H,a,r,s,i),Ar(e,t,!0)):l||d(e,t,H,ee,a,r,s,i,!1),L)I?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):ua(t,o,N,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const q=dr(t.props,_);q&&(t.target=q,ua(t,q,null,c,0))}else I&&ua(t,y,E,c,1);$n(t,L)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:d,props:p}=e,m=Eo(p),_=r||!m,f=bo.get(e);if(f&&(f.flags|=8,bo.delete(e)),d&&(a(c),a(u)),r&&a(l),!f&&(m||d)&&s&16)for(let b=0;b1){for(const o of e)if(o.type!==Kt){t=o;break}}return t}function Li(e){if(!ga(e))return ca(e.type)&&e.children?Vp(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&_e(o.default))return o.default()}}function fr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;fr(ca(o.type)&&Li(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function vn(e,t){return _e(e)?He({name:e.name},t,{setup:e}):e}function mr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ni(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const pa=new WeakMap;function wn(e,t,o,n,a=!1){if(me(e)){e.forEach((f,b)=>wn(f,t&&(me(t)?t[b]:t),o,n,a));return}if(qo(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&wn(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?ka(n.component):n.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===Me?i.refs={}:i.refs,d=i.setupState,p=Se(d),m=d===Me?Is:f=>Ni(u,f)?!1:Ne(p,f),_=(f,b)=>!(b&&Ni(u,b));if(c!=null&&c!==l){if(Pi(t),Ie(c))u[c]=null,m(c)&&(d[c]=null);else if(Ge(c)){const f=t;_(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if(_e(l))Vo(l,i,12,[s,u]);else{const f=Ie(l),b=Ge(l);if(f||b){const $=()=>{if(e.f){const L=f?m(l)?d[l]:u[l]:_()||!e.k?l.value:u[e.k];if(a)me(L)&&Ha(L,r);else if(me(L))L.includes(r)||L.push(r);else if(f)u[l]=[r],m(l)&&(d[l]=u[l]);else{const A=[r];_(l,e.k)&&(l.value=A),e.k&&(u[e.k]=A)}}else f?(u[l]=s,m(l)&&(d[l]=s)):b&&(_(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const L=()=>{$(),pa.delete(e)};L.id=-1,pa.set(e,L),gt(L,o)}else Pi(e),$()}}}function Pi(e){const t=pa.get(e);t&&(t.flags|=8,pa.delete(e))}const Oi=e=>e.nodeType===8;Zn().requestIdleCallback,Zn().cancelIdleCallback;function Hp(e,t){if(Oi(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Oi(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const qo=e=>!!e.type.__asyncLoader;function Yp(e){_e(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,d=0;const p=()=>(d++,c=null,m()),m=()=>{let _;return c||(_=c=t().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((b,$)=>{l(f,()=>b(p()),()=>$(f),d+1)});throw f}).then(f=>_!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return vn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(_,f,b){const $=_.isConnected;let L=!1;(f.bu||(f.bu=[])).push(()=>L=!0);const A=()=>{L||!_.parentNode||$&&!_.isConnected||b()},x=r?()=>{const k=r(A,w=>Hp(_,w));k&&(f.bum||(f.bum=[])).push(k)}:A;u?x():m().then(()=>!f.isUnmounted&&x())},get __asyncResolved(){return u},setup(){const _=rt;if(mr(_),u)return()=>da(u,_);const f=k=>{c=null,yn(k,_,13,!n)};if(i&&_.suspense||Jo)return m().then(k=>()=>da(k,_)).catch(k=>(f(k),()=>n?Oe(n,{error:k}):null));const b=re(!1),$=re(),L=re(!!a);let A,x;return fa(()=>{A!=null&&clearTimeout(A),x!=null&&clearTimeout(x)}),a&&(x=setTimeout(()=>{_.isUnmounted||(L.value=!1)},a)),s!=null&&(A=setTimeout(()=>{if(!_.isUnmounted&&!b.value&&!$.value){const k=new Error(`Async component timed out after ${s}ms.`);f(k),$.value=k}},s)),m().then(()=>{_.isUnmounted||(b.value=!0,_.parent&&ga(_.parent.vnode)&&_.parent.update())}).catch(k=>{if(_.isUnmounted){c=null;return}f(k),$.value=k}),()=>{if(b.value&&u)return da(u,_);if($.value&&n)return Oe(n,{error:$.value});if(o&&!L.value)return da(o,_)}}})}function da(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=Oe(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const ga=e=>e.type.__isKeepAlive;function qp(e,t){Ei(e,"a",t)}function Zp(e,t){Ei(e,"da",t)}function Ei(e,t,o=rt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(ha(t,n,o),o){let a=o.parent;for(;a&&a.parent;)ga(a.parent.vnode)&&Jp(n,t,o,a),a=a.parent}}function Jp(e,t,o,n){const a=ha(t,e,n,!0);fa(()=>{Ha(n[t],a)},o)}function ha(e,t,o=rt,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{Dt();const i=On(o),l=Pt(t,o,e,s);return i(),Bt(),l});return n?a.unshift(r):a.push(r),r}}const oo=e=>(t,o=rt)=>{(!Jo||e==="sp")&&ha(e,(...n)=>t(...n),o)},Ti=oo("bm"),jt=oo("m"),Xp=oo("bu"),Qp=oo("u"),Wt=oo("bum"),fa=oo("um"),ed=oo("sp"),td=oo("rtg"),od=oo("rtc");function nd(e,t=rt){ha("ec",e,t)}const ad="components",Mi=Symbol.for("v-ndc");function Ii(e){return Ie(e)?rd(ad,e,!1)||e:e||Mi}function rd(e,t,o=!0,n=!1){const a=at||rt;if(a){const r=a.type;{const i=hl(r,!1);if(i&&(i===t||i===et(t)||i===qn(et(t))))return r}const s=Fi(a[e]||r[e],t)||Fi(a.appContext[e],t);return!s&&n?r:s}}function Fi(e,t){return e&&(e[t]||e[et(t)]||e[qn(et(t))])}function Ye(e,t,o,n){let a;const r=o,s=me(e);if(s||Ie(e)){const i=s&&Qt(e);let l=!1,c=!1;i&&(l=!_t(e),c=eo(e),e=Qn(e)),a=new Array(e.length);for(let u=0,d=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),F(),qe(fe,null,[Oe("slot",c,n)],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=no.length;F();let l;try{const c=s&&Ri(s(o)),u=o.key||r||c&&c.key;l=qe(fe,{key:(u&&!yt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=no.length;u>i;u--)Sr();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Ri(e){return e.some(t=>Ln(t)?!(t.type===Kt||t.type===fe&&!Ri(t.children)):!0)?e:null}const br=e=>e?pl(e)?ka(e):br(e.parent):null,xn=He(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>br(e.parent),$root:e=>br(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ui(e),$forceUpdate:e=>e.f||(e.f=()=>{ur(e.update)}),$nextTick:e=>e.n||(e.n=mo.bind(e.proxy)),$watch:e=>Up.bind(e)}),yr=(e,t)=>e!==Me&&!e.__isScriptSetup&&Ne(e,t),sd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const p=s[t];if(p!==void 0)switch(p){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(yr(n,t))return s[t]=1,n[t];if(a!==Me&&Ne(a,t))return s[t]=2,a[t];if(Ne(r,t))return s[t]=3,r[t];if(o!==Me&&Ne(o,t))return s[t]=4,o[t];_r&&(s[t]=0)}}const c=xn[t];let u,d;if(c)return t==="$attrs"&&it(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Me&&Ne(o,t))return s[t]=4,o[t];if(d=l.config.globalProperties,Ne(d,t))return d[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return yr(a,t)?(a[t]=o,!0):n!==Me&&Ne(n,t)?(n[t]=o,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Me&&i[0]!=="$"&&Ne(e,i)||yr(t,i)||Ne(r,i)||Ne(n,i)||Ne(xn,i)||Ne(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ne(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Di(e){return me(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let _r=!0;function id(e){const t=Ui(e),o=e.proxy,n=e.ctx;_r=!1,t.beforeCreate&&Bi(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:m,updated:_,activated:f,deactivated:b,beforeDestroy:$,beforeUnmount:L,destroyed:A,unmounted:x,render:k,renderTracked:w,renderTriggered:N,errorCaptured:C,serverPrefetch:y,expose:E,inheritAttrs:I,components:H,directives:ee,filters:q}=t;if(c&&ld(c,n,null),s)for(const J in s){const ie=s[J];_e(ie)&&(n[J]=ie.bind(o))}if(a){const J=a.call(o,o);Pe(J)&&(e.data=Wo(J))}if(_r=!0,r)for(const J in r){const ie=r[J],ae=_e(ie)?ie.bind(o,o):_e(ie.get)?ie.get.bind(o,o):Ft,oe=!_e(ie)&&_e(ie.set)?ie.set.bind(o):Ft,ue=K({get:ae,set:oe});Object.defineProperty(n,J,{enumerable:!0,configurable:!0,get:()=>ue.value,set:pe=>ue.value=pe})}if(i)for(const J in i)Gi(i[J],n,o,J);if(l){const J=_e(l)?l.call(o):l;Reflect.ownKeys(J).forEach(ie=>{At(ie,J[ie])})}u&&Bi(u,e,"c");function U(J,ie){me(ie)?ie.forEach(ae=>J(ae.bind(o))):ie&&J(ie.bind(o))}if(U(Ti,d),U(jt,p),U(Xp,m),U(Qp,_),U(qp,f),U(Zp,b),U(nd,C),U(od,w),U(td,N),U(Wt,L),U(fa,x),U(ed,y),me(E))if(E.length){const J=e.exposed||(e.exposed={});E.forEach(ie=>{Object.defineProperty(J,ie,{get:()=>o[ie],set:ae=>o[ie]=ae,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===Ft&&(e.render=k),I!=null&&(e.inheritAttrs=I),H&&(e.components=H),ee&&(e.directives=ee),y&&mr(e)}function ld(e,t,o=Ft){me(e)&&(e=$r(e));for(const n in e){const a=e[n];let r;Pe(a)?"default"in a?r=xe(a.from||n,a.default,!0):r=xe(a.from||n):r=xe(a),Ge(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function Bi(e,t,o){Pt(me(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Gi(e,t,o,n){let a=n.includes(".")?xi(o,n):()=>o[n];if(Ie(e)){const r=t[e];_e(r)&&We(a,r)}else if(_e(e))We(a,e.bind(o));else if(Pe(e))if(me(e))e.forEach(r=>Gi(r,t,o,n));else{const r=_e(e.handler)?e.handler.bind(o):t[e.handler];_e(r)&&We(a,r,e)}}function Ui(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>ma(l,c,s,!0)),ma(l,t,s)),Pe(t)&&r.set(t,l),l}function ma(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&ma(e,r,o,!0),a&&a.forEach(s=>ma(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=cd[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const cd={data:ji,props:Wi,emits:Wi,methods:An,computed:An,beforeCreate:dt,created:dt,beforeMount:dt,mounted:dt,beforeUpdate:dt,updated:dt,beforeDestroy:dt,beforeUnmount:dt,destroyed:dt,unmounted:dt,activated:dt,deactivated:dt,errorCaptured:dt,serverPrefetch:dt,components:An,directives:An,watch:pd,provide:ji,inject:ud};function ji(e,t){return t?e?function(){return He(_e(e)?e.call(this,this):e,_e(t)?t.call(this,this):t)}:t:e}function ud(e,t){return An($r(e),$r(t))}function $r(e){if(me(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${et(t)}Modifiers`]||e[`${xt(t)}Modifiers`];function fd(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Me;let a=o;const r=t.startsWith("update:"),s=r&&hd(n,t.slice(7));s&&(s.trim&&(a=o.map(u=>Ie(u)?u.trim():u)),s.number&&(a=a.map(Yu)));let i,l=n[i=Ya(t)]||n[i=Ya(et(t))];!l&&r&&(l=n[i=Ya(xt(t))]),l&&Pt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Pt(c,e,6,a)}}const md=new WeakMap;function zi(e,t,o=!1){const n=o?md:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!_e(e)){const l=c=>{const u=zi(c,t,!0);u&&(i=!0,He(s,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Pe(e)&&n.set(e,null),null):(me(r)?r.forEach(l=>s[l]=null):He(s,r),Pe(e)&&n.set(e,s),s)}function ba(e,t){return!e||!Wn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,xt(t))||Ne(e,t))}function ov(){}function Vi(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:d,data:p,setupState:m,ctx:_,inheritAttrs:f}=e,b=la(e);let $,L;try{if(o.shapeFlag&4){const x=a||n,k=x;$=zt(c.call(k,x,u,d,m,p,_)),L=i}else{const x=t;$=zt(x.length>1?x(d,{attrs:i,slots:s,emit:l}):x(d,null)),L=t.props?i:bd(i)}}catch(x){no.length=0,yn(x,e,1),$=Oe(Kt)}let A=$;if(L&&f!==!1){const x=Object.keys(L),{shapeFlag:k}=A;x.length&&k&7&&(r&&x.some(Kn)&&(L=yd(L,r)),A=Zo(A,L,!1,!0))}if(o.dirs&&(A=Zo(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(o.dirs):o.dirs),o.transition){const x=ca(A.type)&&Li(A)||A;fr(x,o.transition)}return $=A,la(b),$}const bd=e=>{let t;for(const o in e)(o==="class"||o==="style"||Wn(o))&&((t||(t={}))[o]=e[o]);return t},yd=(e,t)=>{const o={};for(const n in e)(!Kn(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function _d(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Hi(n,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let d=0;dObject.create(qi),Ji=e=>Object.getPrototypeOf(e)===qi;function vd(e,t,o,n=!1){const a={},r=Zi();e.propsDefaults=Object.create(null),Xi(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:$p(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function wd(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Se(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d{l=!0;const[p,m]=Qi(d,t,!0);He(s,p),m&&i.push(...m)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return Pe(e)&&n.set(e,Uo),Uo;if(me(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",kr=e=>me(e)?e.map(zt):[zt(e)],xd=(e,t,o)=>{if(t._n)return t;const n=Ot((...a)=>kr(t(...a)),o);return n._c=!1,n},tl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(wr(a))continue;const r=e[a];if(_e(r))t[a]=xd(a,r,n);else if(r!=null){const s=kr(r);t[a]=()=>s}}},ol=(e,t)=>{const o=kr(t);e.slots.default=()=>o},nl=(e,t,o)=>{for(const n in t)(o||!wr(n))&&(e[n]=t[n])},Ad=(e,t,o)=>{const n=e.slots=Zi();if(e.vnode.shapeFlag&32){const a=t._;a?(nl(n,t,o),o&&Bs(n,"_",a,!0)):tl(t,n)}else t&&ol(e,t)},Sd=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Me;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:nl(a,t,o):(r=!t.$stable,tl(t,a)),s=t}else t&&(ol(e,t),s={default:1});if(r)for(const i in a)!wr(i)&&s[i]==null&&delete a[i]},gt=Od;function Cd(e){return Ld(e)}function Ld(e,t){const o=Zn();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:m=Ft,insertStaticContent:_}=e,f=(S,O,P,W=null,Y=null,V=null,te=void 0,X=null,g=!!O.dynamicChildren)=>{if(S===O)return;S&&!Nn(S,O)&&(W=je(S),pe(S,Y,V,!0),S=null),O.patchFlag===-2&&(g=!1,O.dynamicChildren=null);const{type:h,ref:M,shapeFlag:B}=O;switch(h){case Sn:b(S,O,P,W);break;case Kt:$(S,O,P,W);break;case ya:S==null&&L(O,P,W,te);break;case fe:H(S,O,P,W,Y,V,te,X,g);break;default:B&1?k(S,O,P,W,Y,V,te,X,g):B&6?ee(S,O,P,W,Y,V,te,X,g):(B&64||B&128)&&h.process(S,O,P,W,Y,V,te,X,g,ze)}M!=null&&Y?wn(M,S&&S.ref,V,O||S,!O):M==null&&S&&S.ref!=null&&wn(S.ref,null,V,S,!0)},b=(S,O,P,W)=>{if(S==null)n(O.el=i(O.children),P,W);else{const Y=O.el=S.el;O.children!==S.children&&c(Y,O.children)}},$=(S,O,P,W)=>{S==null?n(O.el=l(O.children||""),P,W):O.el=S.el},L=(S,O,P,W)=>{[S.el,S.anchor]=_(S.children,O,P,W,S.el,S.anchor)},A=({el:S,anchor:O},P,W)=>{let Y;for(;S&&S!==O;)Y=p(S),n(S,P,W),S=Y;n(O,P,W)},x=({el:S,anchor:O})=>{let P;for(;S&&S!==O;)P=p(S),a(S),S=P;a(O)},k=(S,O,P,W,Y,V,te,X,g)=>{if(O.type==="svg"?te="svg":O.type==="math"&&(te="mathml"),S==null)w(O,P,W,Y,V,te,X,g);else{const h=S.el&&S.el._isVueCE?S.el:null;try{h&&h._beginPatch(),y(S,O,Y,V,te,X,g)}finally{h&&h._endPatch()}}},w=(S,O,P,W,Y,V,te,X)=>{let g,h;const{props:M,shapeFlag:B,transition:ne,dirs:Q}=S;if(g=S.el=s(S.type,V,M&&M.is,M),B&8?u(g,S.children):B&16&&C(S.children,g,null,W,Y,xr(S,V),te,X),Q&&Oo(S,null,W,"created"),N(g,S,S.scopeId,te,W),M){for(const z in M)z!=="value"&&!pn(z)&&r(g,z,null,M[z],V,W);"value"in M&&r(g,"value",null,M.value,V),(h=M.onVnodeBeforeMount)&&Vt(h,W,S)}Q&&Oo(S,null,W,"beforeMount");const D=Nd(Y,ne);D&&ne.beforeEnter(g),n(g,O,P),((h=M&&M.onVnodeMounted)||D||Q)&>(()=>{try{h&&Vt(h,W,S),D&&ne.enter(g),Q&&Oo(S,null,W,"mounted")}finally{}},Y)},N=(S,O,P,W,Y)=>{if(P&&m(S,P),W)for(let V=0;V{for(let h=g;h{const X=O.el=S.el;let{patchFlag:g,dynamicChildren:h,dirs:M}=O;g|=S.patchFlag&16;const B=S.props||Me,ne=O.props||Me;let Q;if(P&&Mo(P,!1),(Q=ne.onVnodeBeforeUpdate)&&Vt(Q,P,O,S),M&&Oo(O,S,P,"beforeUpdate"),P&&Mo(P,!0),h&&(!S.dynamicChildren||S.dynamicChildren.length!==h.length)&&(g=0,te=!1,h=null),(B.innerHTML&&ne.innerHTML==null||B.textContent&&ne.textContent==null)&&u(X,""),h?E(S.dynamicChildren,h,X,P,W,xr(O,Y),V):te||ie(S,O,X,null,P,W,xr(O,Y),V,!1),g>0){if(g&16)I(X,B,ne,P,Y);else if(g&2&&B.class!==ne.class&&r(X,"class",null,ne.class,Y),g&4&&r(X,"style",B.style,ne.style,Y),g&8){const D=O.dynamicProps;for(let z=0;z{Q&&Vt(Q,P,O,S),M&&Oo(O,S,P,"updated")},W)},E=(S,O,P,W,Y,V,te)=>{for(let X=0;X{if(O!==P){if(O!==Me)for(const V in O)!pn(V)&&!(V in P)&&r(S,V,O[V],null,Y,W);for(const V in P){if(pn(V))continue;const te=P[V],X=O[V];te!==X&&V!=="value"&&r(S,V,X,te,Y,W)}"value"in P&&r(S,"value",O.value,P.value,Y)}},H=(S,O,P,W,Y,V,te,X,g)=>{const h=O.el=S?S.el:i(""),M=O.anchor=S?S.anchor:i("");let{patchFlag:B,dynamicChildren:ne,slotScopeIds:Q}=O;Q&&(X=X?X.concat(Q):Q),S==null?(n(h,P,W),n(M,P,W),C(O.children||[],P,M,Y,V,te,X,g)):B>0&&B&64&&ne&&S.dynamicChildren&&S.dynamicChildren.length===ne.length?(E(S.dynamicChildren,ne,P,Y,V,te,X),(O.key!=null||Y&&O===Y.subTree)&&Ar(S,O,!0)):ie(S,O,P,M,Y,V,te,X,g)},ee=(S,O,P,W,Y,V,te,X,g)=>{O.slotScopeIds=X,S==null?O.shapeFlag&512?Y.ctx.activate(O,P,W,te,g):q(O,P,W,Y,V,te,g):R(S,O,g)},q=(S,O,P,W,Y,V,te)=>{const X=S.component=Dd(S,W,Y);if(ga(S)&&(X.ctx.renderer=ze),Bd(X,!1,te),X.asyncDep){if(Y&&Y.registerDep(X,U,te),!S.el){const g=X.subTree=Oe(Kt);$(null,g,O,P),S.placeholder=g.el}}else U(X,S,O,P,Y,V,te)},R=(S,O,P)=>{const W=O.component=S.component;if(_d(S,O,P))if(W.asyncDep&&!W.asyncResolved){J(W,O,P);return}else W.next=O,W.update();else O.el=S.el,W.vnode=O},U=(S,O,P,W,Y,V,te)=>{const X=()=>{if(S.isMounted){let{next:B,bu:ne,u:Q,parent:D,vnode:z}=S;{const Qe=al(S);if(Qe){B&&(B.el=z.el,J(S,B,te)),Qe.asyncDep.then(()=>{gt(()=>{S.isUnmounted||h()},Y)});return}}let he=B,we;Mo(S,!1),B?(B.el=z.el,J(S,B,te)):B=z,ne&&qa(ne),(we=B.props&&B.props.onVnodeBeforeUpdate)&&Vt(we,D,B,z),Mo(S,!0);const Te=Vi(S),nt=S.subTree;S.subTree=Te,f(nt,Te,d(nt.el),je(nt),S,Y,V),B.el=Te.el,he===null&&$d(S,Te.el),Q&>(Q,Y),(we=B.props&&B.props.onVnodeUpdated)&>(()=>Vt(we,D,B,z),Y)}else{let B;const{el:ne,props:Q}=O,{bm:D,m:z,parent:he,root:we,type:Te}=S,nt=qo(O);Mo(S,!1),D&&qa(D),!nt&&(B=Q&&Q.onVnodeBeforeMount)&&Vt(B,he,O),Mo(S,!0);{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(Te,S.parent?S.parent.type:void 0);const Qe=S.subTree=Vi(S);f(null,Qe,P,W,S,Y,V),O.el=Qe.el}if(z&>(z,Y),!nt&&(B=Q&&Q.onVnodeMounted)){const Qe=O;gt(()=>Vt(B,he,Qe),Y)}(O.shapeFlag&256||he&&qo(he.vnode)&&he.vnode.shapeFlag&256)&&S.a&>(S.a,Y),S.isMounted=!0,O=P=W=null}};S.scope.on();const g=S.effect=new Ys(X);S.scope.off();const h=S.update=g.run.bind(g),M=S.job=g.runIfDirty.bind(g);M.i=S,M.id=S.uid,g.scheduler=()=>ur(M),Mo(S,!0),h()},J=(S,O,P)=>{O.component=S;const W=S.vnode.props;S.vnode=O,S.next=null,wd(S,O.props,W,P),Sd(S,O.children,P),Dt(),_i(S),Bt()},ie=(S,O,P,W,Y,V,te,X,g=!1)=>{const h=S&&S.children,M=S?S.shapeFlag:0,B=O.children,{patchFlag:ne,shapeFlag:Q}=O;if(ne>0){if(ne&128){oe(h,B,P,W,Y,V,te,X,g);return}else if(ne&256){ae(h,B,P,W,Y,V,te,X,g);return}}Q&8?(M&16&&De(h,Y,V),B!==h&&u(P,B)):M&16?Q&16?oe(h,B,P,W,Y,V,te,X,g):De(h,Y,V,!0):(M&8&&u(P,""),Q&16&&C(B,P,W,Y,V,te,X,g))},ae=(S,O,P,W,Y,V,te,X,g)=>{S=S||Uo,O=O||Uo;const h=S.length,M=O.length,B=Math.min(h,M);let ne;for(ne=0;neM?De(S,Y,V,!0,!1,B):C(O,P,W,Y,V,te,X,g,B)},oe=(S,O,P,W,Y,V,te,X,g)=>{let h=0;const M=O.length;let B=S.length-1,ne=M-1;for(;h<=B&&h<=ne;){const Q=S[h],D=O[h]=g?ao(O[h]):zt(O[h]);if(Nn(Q,D))f(Q,D,P,null,Y,V,te,X,g);else break;h++}for(;h<=B&&h<=ne;){const Q=S[B],D=O[ne]=g?ao(O[ne]):zt(O[ne]);if(Nn(Q,D))f(Q,D,P,null,Y,V,te,X,g);else break;B--,ne--}if(h>B){if(h<=ne){const Q=ne+1,D=Qne)for(;h<=B;)pe(S[h],Y,V,!0),h++;else{const Q=h,D=h,z=new Map;for(h=D;h<=ne;h++){const ce=O[h]=g?ao(O[h]):zt(O[h]);ce.key!=null&&z.set(ce.key,h)}let he,we=0;const Te=ne-D+1;let nt=!1,Qe=0;const T=new Array(Te);for(h=0;h=Te){pe(ce,Y,V,!0);continue}let ge;if(ce.key!=null)ge=z.get(ce.key);else for(he=D;he<=ne;he++)if(T[he-D]===0&&Nn(ce,O[he])){ge=he;break}ge===void 0?pe(ce,Y,V,!0):(T[ge-D]=h+1,ge>=Qe?Qe=ge:nt=!0,f(ce,O[ge],P,null,Y,V,te,X,g),we++)}const j=nt?Pd(T):Uo;for(he=j.length-1,h=Te-1;h>=0;h--){const ce=D+h,ge=O[ce],ye=O[ce+1],Ve=ce+1{const{el:V,type:te,transition:X,children:g,shapeFlag:h}=S;if(h&6){ue(S.component.subTree,O,P,W);return}if(h&128){S.suspense.move(O,P,W);return}if(h&64){te.move(S,O,P,ze);return}if(te===fe){n(V,O,P);for(let B=0;BX.enter(V),Y));else{const{leave:B,delayLeave:ne,afterLeave:Q}=X,D=()=>{S.ctx.isUnmounted?a(V):n(V,O,P)},z=()=>{const he=V._isLeaving||!!V[hr];V._isLeaving&&V[hr](!0),X.persisted&&!he?D():B(V,()=>{D(),Q&&Q()})};ne?ne(V,D,z):z()}else n(V,O,P)},pe=(S,O,P,W=!1,Y=!1)=>{const{type:V,props:te,ref:X,children:g,dynamicChildren:h,shapeFlag:M,patchFlag:B,dirs:ne,cacheIndex:Q,memo:D}=S;if(B===-2&&(Y=!1),X!=null&&(Dt(),wn(X,null,P,S,!0),Bt()),Q!=null&&(O.renderCache[Q]=void 0),M&256){O.ctx.deactivate(S);return}const z=M&1&&ne,he=!qo(S);let we;if(he&&(we=te&&te.onVnodeBeforeUnmount)&&Vt(we,O,S),M&6)Ct(S.component,P,W);else{if(M&128){S.suspense.unmount(P,W);return}z&&Oo(S,null,O,"beforeUnmount"),M&64?S.type.remove(S,O,P,ze,W):h&&!h.hasOnce&&(V!==fe||B>0&&B&64)?De(h,O,P,!1,!0):(V===fe&&B&384||!Y&&M&16)&&De(g,O,P),W&&Ke(S)}const Te=D!=null&&Q==null;(he&&(we=te&&te.onVnodeUnmounted)||z||Te)&>(()=>{we&&Vt(we,O,S),z&&Oo(S,null,O,"unmounted"),Te&&(S.el=null)},P)},Ke=S=>{const{type:O,el:P,anchor:W,transition:Y}=S;if(O===fe){ct(P,W);return}if(O===ya){x(S);return}const V=()=>{a(P),Y&&!Y.persisted&&Y.afterLeave&&Y.afterLeave()};if(S.shapeFlag&1&&Y&&!Y.persisted){const{leave:te,delayLeave:X}=Y,g=()=>te(P,V);X?X(S.el,V,g):g()}else V()},ct=(S,O)=>{let P;for(;S!==O;)P=p(S),a(S),S=P;a(O)},Ct=(S,O,P)=>{const{bum:W,scope:Y,job:V,subTree:te,um:X,m:g,a:h}=S;rl(g),rl(h),W&&qa(W),Y.stop(),V&&(V.flags|=8,pe(te,S,O,P)),X&>(X,O),gt(()=>{S.isUnmounted=!0},O)},De=(S,O,P,W=!1,Y=!1,V=0)=>{for(let te=V;te{if(S.shapeFlag&6)return je(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const O=p(S.anchor||S.el),P=O&&O[Ai];return P?p(P):O};let ut=!1;const wt=(S,O,P)=>{let W;S==null?O._vnode&&(pe(O._vnode,null,null,!0),W=O._vnode.component):f(O._vnode||null,S,O,null,null,null,P),O._vnode=S,ut||(ut=!0,_i(W),$i(),ut=!1)},ze={p:f,um:pe,m:ue,r:Ke,mt:q,mc:C,pc:ie,pbc:E,n:je,o:e};return{render:wt,hydrate:void 0,createApp:gd(wt)}}function xr({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Mo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ar(e,t,o=!1){const n=e.children,a=t.children;if(me(n)&&me(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function al(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:al(t)}function rl(e){if(e)for(let t=0;te.__isSuspense;function Od(e,t){t&&t.pendingBranch?me(e)?t.effects.push(...e):t.effects.push(e):Fp(e)}const fe=Symbol.for("v-fgt"),Sn=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),ya=Symbol.for("v-stc"),no=[];let $t=null;function F(e=!1){no.push($t=e?null:[])}function Sr(){no.pop(),$t=no[no.length-1]||null}let Cn=1;function _a(e,t=!1){Cn+=e,e<0&&$t&&t&&($t.hasOnce=!0)}function ll(e){return e.dynamicChildren=Cn>0?$t||Uo:null,Sr(),Cn>0&&$t&&$t.push(e),e}function G(e,t,o,n,a,r){return ll(v(e,t,o,n,a,r,!0))}function qe(e,t,o,n,a){return ll(Oe(e,t,o,n,a,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function Nn(e,t){return e.type===t.type&&e.key===t.key}const cl=({key:e})=>e??null,$a=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Ie(e)||Ge(e)||_e(e)?{i:at,r:e,k:t,f:!!o}:e:null);function v(e,t=null,o=null,n=0,a=null,r=e===fe?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&cl(t),ref:t&&$a(t),scopeId:wi,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:at};return i?(va(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=Ie(o)?8:16),Cn>0&&!s&&$t&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&$t.push(l),l}const Oe=Ed;function Ed(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===Mi)&&(e=Kt),Ln(e)){const i=Zo(e,t,!0);return o&&va(i,o),Cn>0&&!r&&$t&&(i.shapeFlag&6?$t[$t.indexOf(e)]=i:$t.push(i)),i.patchFlag=-2,i}if(zd(e)&&(e=e.__vccOpts),t){t=Td(t);let{class:i,style:l}=t;i&&!Ie(i)&&(t.class=$e(i)),Pe(l)&&(aa(l)&&!me(l)&&(l=He({},l)),t.style=Be(l))}const s=Ie(e)?1:il(e)?128:ca(e)?64:Pe(e)?4:_e(e)?2:0;return v(e,t,o,n,a,s,r,!0)}function Td(e){return e?aa(e)||Ji(e)?He({},e):e:null}function Zo(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?Id(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&cl(c),ref:t&&t.ref?o&&r?me(r)?r.concat($a(t)):[r,$a(t)]:$a(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Zo(e.ssContent),ssFallback:e.ssFallback&&Zo(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&fr(u,l.clone(u)),u}function Ce(e=" ",t=0){return Oe(Sn,null,e,t)}function Md(e,t){const o=Oe(ya,null,e);return o.staticCount=t,o}function de(e="",t=!1){return t?(F(),qe(Kt,null,e)):Oe(Kt,null,e)}function zt(e){return e==null||typeof e=="boolean"?Oe(Kt):me(e)?Oe(fe,null,e.slice()):Ln(e)?ao(e):Oe(Sn,null,String(e))}function ao(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Zo(e)}function va(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(me(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),va(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Ji(t)?t._ctx=at:a===3&&at&&(at.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(_e(t)){if(n&65){va(e,{default:t});return}t={default:t,_ctx:at},o=32}else t=String(t),n&64?(o=16,t=[Ce(t)]):o=8;e.children=t,e.shapeFlag|=o}function Id(...e){const t={};for(let o=0;ort||at;let wa,Pn;{const e=Zn(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};wa=t("__VUE_INSTANCE_SETTERS__",o=>rt=o),Pn=t("__VUE_SSR_SETTERS__",o=>Jo=o)}const On=e=>{const t=rt;return wa(e),e.scope.on(),()=>{e.scope.off(),wa(t)}},ul=()=>{rt&&rt.scope.off(),wa(null)};function pl(e){return e.vnode.shapeFlag&4}let Jo=!1;function Bd(e,t=!1,o=!1){t&&Pn(t);const{props:n,children:a}=e.vnode,r=pl(e);vd(e,n,r,t),Ad(e,a,o||t);const s=r?Gd(e,t):void 0;return t&&Pn(!1),s}function Gd(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sd);const{setup:n}=o;if(n){Dt();const a=e.setupContext=n.length>1?jd(e):null,r=On(e),s=Vo(n,e,0,[e.props,a]),i=Rs(s);if(Bt(),r(),(i||e.sp)&&!qo(e)&&mr(e),i){if(s.then(ul,ul),t)return s.then(l=>{Pn(!0);try{dl(e,l,t)}finally{Pn(!1)}}).catch(l=>{yn(l,e,0)});e.asyncDep=s}else dl(e,s)}else gl(e)}function dl(e,t,o){_e(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Pe(t)&&(e.setupState=gi(t)),gl(e)}function gl(e,t,o){const n=e.type;e.render||(e.render=n.render||Ft);{const a=On(e);Dt();try{id(e)}finally{Bt(),a()}}}const Ud={get(e,t){return it(e,"get",""),e[t]}};function jd(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Ud),slots:e.slots,emit:e.emit,expose:t}}function ka(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(gi(No(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in xn)return xn[o](e)},has(t,o){return o in t||o in xn}})):e.proxy}const Wd=/(?:^|[-_])\w/g,Kd=e=>e.replace(Wd,t=>t.toUpperCase()).replace(/[-_]/g,"");function hl(e,t=!0){return _e(e)?e.displayName||e.name:e.name||t&&e.__name}function fl(e,t,o=!1){let n=hl(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Kd(n):o?"App":"Anonymous"}function zd(e){return _e(e)&&"__vccOpts"in e}const K=(e,t)=>Cp(e,t,Jo);function ml(e,t,o){try{_a(-1);const n=arguments.length;return n===2?Pe(t)&&!me(t)?Ln(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ln(o)&&(o=[o]),Oe(e,t,o))}finally{_a(1)}}const Vd="3.5.42";/** +`,...Ep(a)),console.warn(...r)}Bt(),cr=!1}function Op(){let e=bn[bn.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Ep(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...Tp(o))}),t}function Tp({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${fl(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...Ip(e.props),r]:[a+r]}function Ip(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...mi(n,e[n]))}),o.length>3&&t.push(" ..."),t}function mi(e,t,o){return Re(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:je(t)?(t=mi(e,Se(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):_e(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Se(t),o?t:[`${e}=`,t])}function Vo(e,t,o,n){try{return n?e(...n):e()}catch(a){yn(a,t,o)}}function Nt(e,t,o,n){if(_e(e)){const a=Vo(e,t,o,n);return a&&Rs(a)&&a.catch(r=>{yn(r,t,o)}),a}if(me(e)){const a=[];for(let r=0;r>>1,a=dt[n],r=_n(a);r=_n(o)?dt.push(e):dt.splice(Fp(t),0,e),e.flags|=1,yi()}}function yi(){ia||(ia=bi.then(vi))}function Rp(e){if(!me(e))fo&&e.id===-1?fo.splice(Yo+1,0,e):e.flags&1||(Ho.push(e),e.flags|=1);else for(let t=0;t_n(o)-_n(n));if(Ho.length=0,fo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function vi(e){try{for(Ut=0;Ut{n._d&&_a(-1);const r=la(t),s=no.length;let i;try{i=e(...a)}finally{for(let l=no.length;l>s;l--)Sr();la(r),n._d&&_a(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function ki(e,t){if(st===null)return e;const o=ka(st),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&_e(t)?t.call(n&&n.proxy):t}}function Dp(){return!!(ro()||To)}const Bp=Symbol.for("v-scx"),Gp=()=>Ae(Bp);function Up(e,t){return pr(e,null,t)}function Ke(e,t,o){return pr(e,t,o)}function pr(e,t,o=Me){const{immediate:n,deep:a,flush:r,once:s}=o,i=Ye({},o),l=t&&n||!t&&r!=="post";let c;if(Jo){if(r==="sync"){const m=Gp();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=Ft,m.resume=Ft,m.pause=Ft,m}}const u=it;i.call=(m,_,f)=>Nt(m,u,_,f);let d=!1;r==="post"?i.scheduler=m=>{ht(m,u&&u.suspense)}:r!=="sync"&&(d=!0,i.scheduler=(m,_)=>{_?m():ur(m)}),i.augmentJob=m=>{t&&(m.flags|=4),d&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const p=Np(e,t,i);return Jo&&(c?c.push(p):l&&p()),p}function jp(e,t,o){const n=this.proxy,a=Re(e)?e.includes(".")?Ai(n,e):()=>n[e]:e.bind(n,n);let r;_e(t)?r=t:(r=t.handler,o=t);const s=On(this),i=pr(a,r.bind(n),o);return s(),i}function Ai(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Eo=e=>e&&(e.disabled||e.disabled===""),Wp=e=>e&&(e.defer||e.defer===""),Si=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ci=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,dr=(e,t)=>{const o=e&&e.to;return Re(o)?t?t(o):null:o},zp={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,c){const{mc:u,pc:d,pbc:p,o:{insert:m,querySelector:_,createText:f,createComment:b,parentNode:$}}=c,P=Eo(t.props);let{dynamicChildren:x}=t;const A=(C,L,y)=>{C.shapeFlag&16&&u(C.children,L,y,a,r,s,i,l)},k=(C=t)=>{const L=Eo(C.props),y=C.target=dr(C.props,_),E=gr(y,C,f,m);y&&(s!=="svg"&&Si(y)?s="svg":s!=="mathml"&&Ci(y)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(y),L||(A(C,y,E),$n(C,!1)))},w=C=>{const L=()=>{if(bo.get(C)===L){if(bo.delete(C),Eo(C.props)){const y=$(C.el)||o;A(C,y,C.anchor),$n(C,!0)}k(C)}};bo.set(C,L),ht(L,r)};if(e==null){const C=t.el=f(""),L=t.anchor=f("");if(m(C,o,n),m(L,o,n),Wp(t.props)||r&&r.pendingBranch){w(t);return}P&&(A(t,o,L),$n(t,!0)),k()}else{t.el=e.el;const C=t.anchor=e.anchor,L=bo.get(e);if(L){L.flags|=8,bo.delete(e),w(t);return}t.targetStart=e.targetStart;const y=t.target=e.target,E=t.targetAnchor=e.targetAnchor,M=Eo(e.props),Y=M?o:y,te=M?C:E;if(s==="svg"||Si(y)?s="svg":(s==="mathml"||Ci(y))&&(s="mathml"),x?(p(e.dynamicChildren,x,Y,a,r,s,i),xr(e,t,!0)):l||d(e,t,Y,te,a,r,s,i,!1),P)M?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):ua(t,o,C,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const he=dr(t.props,_);he&&(t.target=he,ua(t,he,null,c,0))}else M&&ua(t,y,E,c,1);$n(t,P)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:d,props:p}=e,m=Eo(p),_=r||!m,f=bo.get(e);if(f&&(f.flags|=8,bo.delete(e)),d&&(a(c),a(u)),r&&a(l),!f&&(m||d)&&s&16)for(let b=0;b1){for(const o of e)if(o.type!==zt){t=o;break}}return t}function Li(e){if(!ga(e))return ca(e.type)&&e.children?Hp(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&_e(o.default))return o.default()}}function fr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;fr(ca(o.type)&&Li(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function vn(e,t){return _e(e)?Ye({name:e.name},t,{setup:e}):e}function mr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Pi(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const pa=new WeakMap;function wn(e,t,o,n,a=!1){if(me(e)){e.forEach((f,b)=>wn(f,t&&(me(t)?t[b]:t),o,n,a));return}if(qo(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&wn(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?ka(n.component):n.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===Me?i.refs={}:i.refs,d=i.setupState,p=Se(d),m=d===Me?Ms:f=>Pi(u,f)?!1:Pe(p,f),_=(f,b)=>!(b&&Pi(u,b));if(c!=null&&c!==l){if(Ni(t),Re(c))u[c]=null,m(c)&&(d[c]=null);else if(je(c)){const f=t;_(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if(_e(l))Vo(l,i,12,[s,u]);else{const f=Re(l),b=je(l);if(f||b){const $=()=>{if(e.f){const P=f?m(l)?d[l]:u[l]:_()||!e.k?l.value:u[e.k];if(a)me(P)&&Ha(P,r);else if(me(P))P.includes(r)||P.push(r);else if(f)u[l]=[r],m(l)&&(d[l]=u[l]);else{const x=[r];_(l,e.k)&&(l.value=x),e.k&&(u[e.k]=x)}}else f?(u[l]=s,m(l)&&(d[l]=s)):b&&(_(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const P=()=>{$(),pa.delete(e)};P.id=-1,pa.set(e,P),ht(P,o)}else Ni(e),$()}}}function Ni(e){const t=pa.get(e);t&&(t.flags|=8,pa.delete(e))}const Oi=e=>e.nodeType===8;Zn().requestIdleCallback,Zn().cancelIdleCallback;function Yp(e,t){if(Oi(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(Oi(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const qo=e=>!!e.type.__asyncLoader;function qp(e){_e(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,d=0;const p=()=>(d++,c=null,m()),m=()=>{let _;return c||(_=c=t().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((b,$)=>{l(f,()=>b(p()),()=>$(f),d+1)});throw f}).then(f=>_!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return vn({name:"AsyncComponentWrapper",__asyncLoader:m,__asyncHydrate(_,f,b){const $=_.isConnected;let P=!1;(f.bu||(f.bu=[])).push(()=>P=!0);const x=()=>{P||!_.parentNode||$&&!_.isConnected||b()},A=r?()=>{const k=r(x,w=>Yp(_,w));k&&(f.bum||(f.bum=[])).push(k)}:x;u?A():m().then(()=>!f.isUnmounted&&A())},get __asyncResolved(){return u},setup(){const _=it;if(mr(_),u)return()=>da(u,_);const f=k=>{c=null,yn(k,_,13,!n)};if(i&&_.suspense||Jo)return m().then(k=>()=>da(k,_)).catch(k=>(f(k),()=>n?Oe(n,{error:k}):null));const b=se(!1),$=se(),P=se(!!a);let x,A;return fa(()=>{x!=null&&clearTimeout(x),A!=null&&clearTimeout(A)}),a&&(A=setTimeout(()=>{_.isUnmounted||(P.value=!1)},a)),s!=null&&(x=setTimeout(()=>{if(!_.isUnmounted&&!b.value&&!$.value){const k=new Error(`Async component timed out after ${s}ms.`);f(k),$.value=k}},s)),m().then(()=>{_.isUnmounted||(b.value=!0,_.parent&&ga(_.parent.vnode)&&_.parent.update())}).catch(k=>{if(_.isUnmounted){c=null;return}f(k),$.value=k}),()=>{if(b.value&&u)return da(u,_);if($.value&&n)return Oe(n,{error:$.value});if(o&&!P.value)return da(o,_)}}})}function da(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=Oe(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const ga=e=>e.type.__isKeepAlive;function Zp(e,t){Ei(e,"a",t)}function Jp(e,t){Ei(e,"da",t)}function Ei(e,t,o=it){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(ha(t,n,o),o){let a=o.parent;for(;a&&a.parent;)ga(a.parent.vnode)&&Xp(n,t,o,a),a=a.parent}}function Xp(e,t,o,n){const a=ha(t,e,n,!0);fa(()=>{Ha(n[t],a)},o)}function ha(e,t,o=it,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{Dt();const i=On(o),l=Nt(t,o,e,s);return i(),Bt(),l});return n?a.unshift(r):a.push(r),r}}const oo=e=>(t,o=it)=>{(!Jo||e==="sp")&&ha(e,(...n)=>t(...n),o)},Ti=oo("bm"),jt=oo("m"),Qp=oo("bu"),ed=oo("u"),Wt=oo("bum"),fa=oo("um"),td=oo("sp"),od=oo("rtg"),nd=oo("rtc");function ad(e,t=it){ha("ec",e,t)}const rd="components",Ii=Symbol.for("v-ndc");function Mi(e){return Re(e)?sd(rd,e,!1)||e:e||Ii}function sd(e,t,o=!0,n=!1){const a=st||it;if(a){const r=a.type;{const i=hl(r,!1);if(i&&(i===t||i===tt(t)||i===qn(tt(t))))return r}const s=Fi(a[e]||r[e],t)||Fi(a.appContext[e],t);return!s&&n?r:s}}function Fi(e,t){return e&&(e[t]||e[tt(t)]||e[qn(tt(t))])}function qe(e,t,o,n){let a;const r=o,s=me(e);if(s||Re(e)){const i=s&&Qt(e);let l=!1,c=!1;i&&(l=!$t(e),c=eo(e),e=Qn(e)),a=new Array(e.length);for(let u=0,d=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),F(),Ze(fe,null,[Oe("slot",c,n)],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=no.length;F();let l;try{const c=s&&Ri(s(o)),u=o.key||r||c&&c.key;l=Ze(fe,{key:(u&&!_t(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=no.length;u>i;u--)Sr();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Ri(e){return e.some(t=>Ln(t)?!(t.type===zt||t.type===fe&&!Ri(t.children)):!0)?e:null}const br=e=>e?pl(e)?ka(e):br(e.parent):null,An=Ye(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>br(e.parent),$root:e=>br(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ui(e),$forceUpdate:e=>e.f||(e.f=()=>{ur(e.update)}),$nextTick:e=>e.n||(e.n=mo.bind(e.proxy)),$watch:e=>jp.bind(e)}),yr=(e,t)=>e!==Me&&!e.__isScriptSetup&&Pe(e,t),id={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const p=s[t];if(p!==void 0)switch(p){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(yr(n,t))return s[t]=1,n[t];if(a!==Me&&Pe(a,t))return s[t]=2,a[t];if(Pe(r,t))return s[t]=3,r[t];if(o!==Me&&Pe(o,t))return s[t]=4,o[t];_r&&(s[t]=0)}}const c=An[t];let u,d;if(c)return t==="$attrs"&&ut(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Me&&Pe(o,t))return s[t]=4,o[t];if(d=l.config.globalProperties,Pe(d,t))return d[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return yr(a,t)?(a[t]=o,!0):n!==Me&&Pe(n,t)?(n[t]=o,!0):Pe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Me&&i[0]!=="$"&&Pe(e,i)||yr(t,i)||Pe(r,i)||Pe(n,i)||Pe(An,i)||Pe(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Pe(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Di(e){return me(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let _r=!0;function ld(e){const t=Ui(e),o=e.proxy,n=e.ctx;_r=!1,t.beforeCreate&&Bi(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:m,updated:_,activated:f,deactivated:b,beforeDestroy:$,beforeUnmount:P,destroyed:x,unmounted:A,render:k,renderTracked:w,renderTriggered:C,errorCaptured:L,serverPrefetch:y,expose:E,inheritAttrs:M,components:Y,directives:te,filters:he}=t;if(c&&cd(c,n,null),s)for(const D in s){const z=s[D];_e(z)&&(n[D]=z.bind(o))}if(a){const D=a.call(o,o);Ne(D)&&(e.data=Wo(D))}if(_r=!0,r)for(const D in r){const z=r[D],J=_e(z)?z.bind(o,o):_e(z.get)?z.get.bind(o,o):Ft,X=!_e(z)&&_e(z.set)?z.set.bind(o):Ft,le=W({get:J,set:X});Object.defineProperty(n,D,{enumerable:!0,configurable:!0,get:()=>le.value,set:ue=>le.value=ue})}if(i)for(const D in i)Gi(i[D],n,o,D);if(l){const D=_e(l)?l.call(o):l;Reflect.ownKeys(D).forEach(z=>{St(z,D[z])})}u&&Bi(u,e,"c");function q(D,z){me(z)?z.forEach(J=>D(J.bind(o))):z&&D(z.bind(o))}if(q(Ti,d),q(jt,p),q(Qp,m),q(ed,_),q(Zp,f),q(Jp,b),q(ad,L),q(nd,w),q(od,C),q(Wt,P),q(fa,A),q(td,y),me(E))if(E.length){const D=e.exposed||(e.exposed={});E.forEach(z=>{Object.defineProperty(D,z,{get:()=>o[z],set:J=>o[z]=J,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===Ft&&(e.render=k),M!=null&&(e.inheritAttrs=M),Y&&(e.components=Y),te&&(e.directives=te),y&&mr(e)}function cd(e,t,o=Ft){me(e)&&(e=$r(e));for(const n in e){const a=e[n];let r;Ne(a)?"default"in a?r=Ae(a.from||n,a.default,!0):r=Ae(a.from||n):r=Ae(a),je(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function Bi(e,t,o){Nt(me(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Gi(e,t,o,n){let a=n.includes(".")?Ai(o,n):()=>o[n];if(Re(e)){const r=t[e];_e(r)&&Ke(a,r)}else if(_e(e))Ke(a,e.bind(o));else if(Ne(e))if(me(e))e.forEach(r=>Gi(r,t,o,n));else{const r=_e(e.handler)?e.handler.bind(o):t[e.handler];_e(r)&&Ke(a,r,e)}}function Ui(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>ma(l,c,s,!0)),ma(l,t,s)),Ne(t)&&r.set(t,l),l}function ma(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&ma(e,r,o,!0),a&&a.forEach(s=>ma(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=ud[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const ud={data:ji,props:Wi,emits:Wi,methods:xn,computed:xn,beforeCreate:gt,created:gt,beforeMount:gt,mounted:gt,beforeUpdate:gt,updated:gt,beforeDestroy:gt,beforeUnmount:gt,destroyed:gt,unmounted:gt,activated:gt,deactivated:gt,errorCaptured:gt,serverPrefetch:gt,components:xn,directives:xn,watch:dd,provide:ji,inject:pd};function ji(e,t){return t?e?function(){return Ye(_e(e)?e.call(this,this):e,_e(t)?t.call(this,this):t)}:t:e}function pd(e,t){return xn($r(e),$r(t))}function $r(e){if(me(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${tt(t)}Modifiers`]||e[`${xt(t)}Modifiers`];function md(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Me;let a=o;const r=t.startsWith("update:"),s=r&&fd(n,t.slice(7));s&&(s.trim&&(a=o.map(u=>Re(u)?u.trim():u)),s.number&&(a=a.map(qu)));let i,l=n[i=Ya(t)]||n[i=Ya(tt(t))];!l&&r&&(l=n[i=Ya(xt(t))]),l&&Nt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Nt(c,e,6,a)}}const bd=new WeakMap;function Ki(e,t,o=!1){const n=o?bd:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!_e(e)){const l=c=>{const u=Ki(c,t,!0);u&&(i=!0,Ye(s,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Ne(e)&&n.set(e,null),null):(me(r)?r.forEach(l=>s[l]=null):Ye(s,r),Ne(e)&&n.set(e,s),s)}function ba(e,t){return!e||!Wn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Pe(e,t[0].toLowerCase()+t.slice(1))||Pe(e,xt(t))||Pe(e,t))}function yv(){}function Vi(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:d,data:p,setupState:m,ctx:_,inheritAttrs:f}=e,b=la(e);let $,P;try{if(o.shapeFlag&4){const A=a||n,k=A;$=Kt(c.call(k,A,u,d,m,p,_)),P=i}else{const A=t;$=Kt(A.length>1?A(d,{attrs:i,slots:s,emit:l}):A(d,null)),P=t.props?i:yd(i)}}catch(A){no.length=0,yn(A,e,1),$=Oe(zt)}let x=$;if(P&&f!==!1){const A=Object.keys(P),{shapeFlag:k}=x;A.length&&k&7&&(r&&A.some(zn)&&(P=_d(P,r)),x=Zo(x,P,!1,!0))}if(o.dirs&&(x=Zo(x,null,!1,!0),x.dirs=x.dirs?x.dirs.concat(o.dirs):o.dirs),o.transition){const A=ca(x.type)&&Li(x)||x;fr(A,o.transition)}return $=x,la(b),$}const yd=e=>{let t;for(const o in e)(o==="class"||o==="style"||Wn(o))&&((t||(t={}))[o]=e[o]);return t},_d=(e,t)=>{const o={};for(const n in e)(!zn(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function $d(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Hi(n,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let d=0;dObject.create(qi),Ji=e=>Object.getPrototypeOf(e)===qi;function wd(e,t,o,n=!1){const a={},r=Zi();e.propsDefaults=Object.create(null),Xi(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:vp(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function kd(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Se(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let d=0;d{l=!0;const[p,m]=Qi(d,t,!0);Ye(s,p),m&&i.push(...m)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return Ne(e)&&n.set(e,Uo),Uo;if(me(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",kr=e=>me(e)?e.map(Kt):[Kt(e)],xd=(e,t,o)=>{if(t._n)return t;const n=Ot((...a)=>kr(t(...a)),o);return n._c=!1,n},tl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(wr(a))continue;const r=e[a];if(_e(r))t[a]=xd(a,r,n);else if(r!=null){const s=kr(r);t[a]=()=>s}}},ol=(e,t)=>{const o=kr(t);e.slots.default=()=>o},nl=(e,t,o)=>{for(const n in t)(o||!wr(n))&&(e[n]=t[n])},Sd=(e,t,o)=>{const n=e.slots=Zi();if(e.vnode.shapeFlag&32){const a=t._;a?(nl(n,t,o),o&&Bs(n,"_",a,!0)):tl(t,n)}else t&&ol(e,t)},Cd=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Me;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:nl(a,t,o):(r=!t.$stable,tl(t,a)),s=t}else t&&(ol(e,t),s={default:1});if(r)for(const i in a)!wr(i)&&s[i]==null&&delete a[i]},ht=Ed;function Ld(e){return Pd(e)}function Pd(e,t){const o=Zn();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:m=Ft,insertStaticContent:_}=e,f=(S,O,N,j=null,Z=null,V=null,ae=void 0,Q=null,g=!!O.dynamicChildren)=>{if(S===O)return;S&&!Pn(S,O)&&(j=ze(S),ue(S,Z,V,!0),S=null),O.patchFlag===-2&&(g=!1,O.dynamicChildren=null);const{type:h,ref:I,shapeFlag:B}=O;switch(h){case Sn:b(S,O,N,j);break;case zt:$(S,O,N,j);break;case ya:S==null&&P(O,N,j,ae);break;case fe:Y(S,O,N,j,Z,V,ae,Q,g);break;default:B&1?k(S,O,N,j,Z,V,ae,Q,g):B&6?te(S,O,N,j,Z,V,ae,Q,g):(B&64||B&128)&&h.process(S,O,N,j,Z,V,ae,Q,g,Ve)}I!=null&&Z?wn(I,S&&S.ref,V,O||S,!O):I==null&&S&&S.ref!=null&&wn(S.ref,null,V,S,!0)},b=(S,O,N,j)=>{if(S==null)n(O.el=i(O.children),N,j);else{const Z=O.el=S.el;O.children!==S.children&&c(Z,O.children)}},$=(S,O,N,j)=>{S==null?n(O.el=l(O.children||""),N,j):O.el=S.el},P=(S,O,N,j)=>{[S.el,S.anchor]=_(S.children,O,N,j,S.el,S.anchor)},x=({el:S,anchor:O},N,j)=>{let Z;for(;S&&S!==O;)Z=p(S),n(S,N,j),S=Z;n(O,N,j)},A=({el:S,anchor:O})=>{let N;for(;S&&S!==O;)N=p(S),a(S),S=N;a(O)},k=(S,O,N,j,Z,V,ae,Q,g)=>{if(O.type==="svg"?ae="svg":O.type==="math"&&(ae="mathml"),S==null)w(O,N,j,Z,V,ae,Q,g);else{const h=S.el&&S.el._isVueCE?S.el:null;try{h&&h._beginPatch(),y(S,O,Z,V,ae,Q,g)}finally{h&&h._endPatch()}}},w=(S,O,N,j,Z,V,ae,Q)=>{let g,h;const{props:I,shapeFlag:B,transition:re,dirs:ee}=S;if(g=S.el=s(S.type,V,I&&I.is,I),B&8?u(g,S.children):B&16&&L(S.children,g,null,j,Z,Ar(S,V),ae,Q),ee&&Oo(S,null,j,"created"),C(g,S,S.scopeId,ae,j),I){for(const K in I)K!=="value"&&!pn(K)&&r(g,K,null,I[K],V,j);"value"in I&&r(g,"value",null,I.value,V),(h=I.onVnodeBeforeMount)&&Vt(h,j,S)}ee&&Oo(S,null,j,"beforeMount");const R=Nd(Z,re);R&&re.beforeEnter(g),n(g,O,N),((h=I&&I.onVnodeMounted)||R||ee)&&ht(()=>{try{h&&Vt(h,j,S),R&&re.enter(g),ee&&Oo(S,null,j,"mounted")}finally{}},Z)},C=(S,O,N,j,Z)=>{if(N&&m(S,N),j)for(let V=0;V{for(let h=g;h{const Q=O.el=S.el;let{patchFlag:g,dynamicChildren:h,dirs:I}=O;g|=S.patchFlag&16;const B=S.props||Me,re=O.props||Me;let ee;if(N&&Io(N,!1),(ee=re.onVnodeBeforeUpdate)&&Vt(ee,N,O,S),I&&Oo(O,S,N,"beforeUpdate"),N&&Io(N,!0),h&&(!S.dynamicChildren||S.dynamicChildren.length!==h.length)&&(g=0,ae=!1,h=null),(B.innerHTML&&re.innerHTML==null||B.textContent&&re.textContent==null)&&u(Q,""),h?E(S.dynamicChildren,h,Q,N,j,Ar(O,Z),V):ae||z(S,O,Q,null,N,j,Ar(O,Z),V,!1),g>0){if(g&16)M(Q,B,re,N,Z);else if(g&2&&B.class!==re.class&&r(Q,"class",null,re.class,Z),g&4&&r(Q,"style",B.style,re.style,Z),g&8){const R=O.dynamicProps;for(let K=0;K{ee&&Vt(ee,N,O,S),I&&Oo(O,S,N,"updated")},j)},E=(S,O,N,j,Z,V,ae)=>{for(let Q=0;Q{if(O!==N){if(O!==Me)for(const V in O)!pn(V)&&!(V in N)&&r(S,V,O[V],null,Z,j);for(const V in N){if(pn(V))continue;const ae=N[V],Q=O[V];ae!==Q&&V!=="value"&&r(S,V,Q,ae,Z,j)}"value"in N&&r(S,"value",O.value,N.value,Z)}},Y=(S,O,N,j,Z,V,ae,Q,g)=>{const h=O.el=S?S.el:i(""),I=O.anchor=S?S.anchor:i("");let{patchFlag:B,dynamicChildren:re,slotScopeIds:ee}=O;ee&&(Q=Q?Q.concat(ee):ee),S==null?(n(h,N,j),n(I,N,j),L(O.children||[],N,I,Z,V,ae,Q,g)):B>0&&B&64&&re&&S.dynamicChildren&&S.dynamicChildren.length===re.length?(E(S.dynamicChildren,re,N,Z,V,ae,Q),(O.key!=null||Z&&O===Z.subTree)&&xr(S,O,!0)):z(S,O,N,I,Z,V,ae,Q,g)},te=(S,O,N,j,Z,V,ae,Q,g)=>{O.slotScopeIds=Q,S==null?O.shapeFlag&512?Z.ctx.activate(O,N,j,ae,g):he(O,N,j,Z,V,ae,g):ne(S,O,g)},he=(S,O,N,j,Z,V,ae)=>{const Q=S.component=Bd(S,j,Z);if(ga(S)&&(Q.ctx.renderer=Ve),Gd(Q,!1,ae),Q.asyncDep){if(Z&&Z.registerDep(Q,q,ae),!S.el){const g=Q.subTree=Oe(zt);$(null,g,O,N),S.placeholder=g.el}}else q(Q,S,O,N,Z,V,ae)},ne=(S,O,N)=>{const j=O.component=S.component;if($d(S,O,N))if(j.asyncDep&&!j.asyncResolved){D(j,O,N);return}else j.next=O,j.update();else O.el=S.el,j.vnode=O},q=(S,O,N,j,Z,V,ae)=>{const Q=()=>{if(S.isMounted){let{next:B,bu:re,u:ee,parent:R,vnode:K}=S;{const et=al(S);if(et){B&&(B.el=K.el,D(S,B,ae)),et.asyncDep.then(()=>{ht(()=>{S.isUnmounted||h()},Z)});return}}let ge=B,we;Io(S,!1),B?(B.el=K.el,D(S,B,ae)):B=K,re&&qa(re),(we=B.props&&B.props.onVnodeBeforeUpdate)&&Vt(we,R,B,K),Io(S,!0);const Ie=Vi(S),rt=S.subTree;S.subTree=Ie,f(rt,Ie,d(rt.el),ze(rt),S,Z,V),B.el=Ie.el,ge===null&&vd(S,Ie.el),ee&&ht(ee,Z),(we=B.props&&B.props.onVnodeUpdated)&&ht(()=>Vt(we,R,B,K),Z)}else{let B;const{el:re,props:ee}=O,{bm:R,m:K,parent:ge,root:we,type:Ie}=S,rt=qo(O);Io(S,!1),R&&qa(R),!rt&&(B=ee&&ee.onVnodeBeforeMount)&&Vt(B,ge,O),Io(S,!0);{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(Ie,S.parent?S.parent.type:void 0);const et=S.subTree=Vi(S);f(null,et,N,j,S,Z,V),O.el=et.el}if(K&&ht(K,Z),!rt&&(B=ee&&ee.onVnodeMounted)){const et=O;ht(()=>Vt(B,ge,et),Z)}(O.shapeFlag&256||ge&&qo(ge.vnode)&&ge.vnode.shapeFlag&256)&&S.a&&ht(S.a,Z),S.isMounted=!0,O=N=j=null}};S.scope.on();const g=S.effect=new Ys(Q);S.scope.off();const h=S.update=g.run.bind(g),I=S.job=g.runIfDirty.bind(g);I.i=S,I.id=S.uid,g.scheduler=()=>ur(I),Io(S,!0),h()},D=(S,O,N)=>{O.component=S;const j=S.vnode.props;S.vnode=O,S.next=null,kd(S,O.props,j,N),Cd(S,O.children,N),Dt(),_i(S),Bt()},z=(S,O,N,j,Z,V,ae,Q,g=!1)=>{const h=S&&S.children,I=S?S.shapeFlag:0,B=O.children,{patchFlag:re,shapeFlag:ee}=O;if(re>0){if(re&128){X(h,B,N,j,Z,V,ae,Q,g);return}else if(re&256){J(h,B,N,j,Z,V,ae,Q,g);return}}ee&8?(I&16&&Ee(h,Z,V),B!==h&&u(N,B)):I&16?ee&16?X(h,B,N,j,Z,V,ae,Q,g):Ee(h,Z,V,!0):(I&8&&u(N,""),ee&16&&L(B,N,j,Z,V,ae,Q,g))},J=(S,O,N,j,Z,V,ae,Q,g)=>{S=S||Uo,O=O||Uo;const h=S.length,I=O.length,B=Math.min(h,I);let re;for(re=0;reI?Ee(S,Z,V,!0,!1,B):L(O,N,j,Z,V,ae,Q,g,B)},X=(S,O,N,j,Z,V,ae,Q,g)=>{let h=0;const I=O.length;let B=S.length-1,re=I-1;for(;h<=B&&h<=re;){const ee=S[h],R=O[h]=g?ao(O[h]):Kt(O[h]);if(Pn(ee,R))f(ee,R,N,null,Z,V,ae,Q,g);else break;h++}for(;h<=B&&h<=re;){const ee=S[B],R=O[re]=g?ao(O[re]):Kt(O[re]);if(Pn(ee,R))f(ee,R,N,null,Z,V,ae,Q,g);else break;B--,re--}if(h>B){if(h<=re){const ee=re+1,R=eere)for(;h<=B;)ue(S[h],Z,V,!0),h++;else{const ee=h,R=h,K=new Map;for(h=R;h<=re;h++){const ce=O[h]=g?ao(O[h]):Kt(O[h]);ce.key!=null&&K.set(ce.key,h)}let ge,we=0;const Ie=re-R+1;let rt=!1,et=0;const T=new Array(Ie);for(h=0;h=Ie){ue(ce,Z,V,!0);continue}let de;if(ce.key!=null)de=K.get(ce.key);else for(ge=R;ge<=re;ge++)if(T[ge-R]===0&&Pn(ce,O[ge])){de=ge;break}de===void 0?ue(ce,Z,V,!0):(T[de-R]=h+1,de>=et?et=de:rt=!0,f(ce,O[de],N,null,Z,V,ae,Q,g),we++)}const U=rt?Od(T):Uo;for(ge=U.length-1,h=Ie-1;h>=0;h--){const ce=R+h,de=O[ce],ye=O[ce+1],He=ce+1{const{el:V,type:ae,transition:Q,children:g,shapeFlag:h}=S;if(h&6){le(S.component.subTree,O,N,j);return}if(h&128){S.suspense.move(O,N,j);return}if(h&64){ae.move(S,O,N,Ve);return}if(ae===fe){n(V,O,N);for(let B=0;BQ.enter(V),Z));else{const{leave:B,delayLeave:re,afterLeave:ee}=Q,R=()=>{S.ctx.isUnmounted?a(V):n(V,O,N)},K=()=>{const ge=V._isLeaving||!!V[hr];V._isLeaving&&V[hr](!0),Q.persisted&&!ge?R():B(V,()=>{R(),ee&&ee()})};re?re(V,R,K):K()}else n(V,O,N)},ue=(S,O,N,j=!1,Z=!1)=>{const{type:V,props:ae,ref:Q,children:g,dynamicChildren:h,shapeFlag:I,patchFlag:B,dirs:re,cacheIndex:ee,memo:R}=S;if(B===-2&&(Z=!1),Q!=null&&(Dt(),wn(Q,null,N,S,!0),Bt()),ee!=null&&(O.renderCache[ee]=void 0),I&256){O.ctx.deactivate(S);return}const K=I&1&&re,ge=!qo(S);let we;if(ge&&(we=ae&&ae.onVnodeBeforeUnmount)&&Vt(we,O,S),I&6)at(S.component,N,j);else{if(I&128){S.suspense.unmount(N,j);return}K&&Oo(S,null,O,"beforeUnmount"),I&64?S.type.remove(S,O,N,Ve,j):h&&!h.hasOnce&&(V!==fe||B>0&&B&64)?Ee(h,O,N,!1,!0):(V===fe&&B&384||!Z&&I&16)&&Ee(g,O,N),j&&Fe(S)}const Ie=R!=null&&ee==null;(ge&&(we=ae&&ae.onVnodeUnmounted)||K||Ie)&&ht(()=>{we&&Vt(we,O,S),K&&Oo(S,null,O,"unmounted"),Ie&&(S.el=null)},N)},Fe=S=>{const{type:O,el:N,anchor:j,transition:Z}=S;if(O===fe){Ge(N,j);return}if(O===ya){A(S);return}const V=()=>{a(N),Z&&!Z.persisted&&Z.afterLeave&&Z.afterLeave()};if(S.shapeFlag&1&&Z&&!Z.persisted){const{leave:ae,delayLeave:Q}=Z,g=()=>ae(N,V);Q?Q(S.el,V,g):g()}else V()},Ge=(S,O)=>{let N;for(;S!==O;)N=p(S),a(S),S=N;a(O)},at=(S,O,N)=>{const{bum:j,scope:Z,job:V,subTree:ae,um:Q,m:g,a:h}=S;rl(g),rl(h),j&&qa(j),Z.stop(),V&&(V.flags|=8,ue(ae,S,O,N)),Q&&ht(Q,O),ht(()=>{S.isUnmounted=!0},O)},Ee=(S,O,N,j=!1,Z=!1,V=0)=>{for(let ae=V;ae{if(S.shapeFlag&6)return ze(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const O=p(S.anchor||S.el),N=O&&O[xi];return N?p(N):O};let pt=!1;const kt=(S,O,N)=>{let j;S==null?O._vnode&&(ue(O._vnode,null,null,!0),j=O._vnode.component):f(O._vnode||null,S,O,null,null,null,N),O._vnode=S,pt||(pt=!0,_i(j),$i(),pt=!1)},Ve={p:f,um:ue,m:le,r:Fe,mt:he,mc:L,pc:z,pbc:E,n:ze,o:e};return{render:kt,hydrate:void 0,createApp:hd(kt)}}function Ar({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Io({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function xr(e,t,o=!1){const n=e.children,a=t.children;if(me(n)&&me(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function al(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:al(t)}function rl(e){if(e)for(let t=0;te.__isSuspense;function Ed(e,t){t&&t.pendingBranch?me(e)?t.effects.push(...e):t.effects.push(e):Rp(e)}const fe=Symbol.for("v-fgt"),Sn=Symbol.for("v-txt"),zt=Symbol.for("v-cmt"),ya=Symbol.for("v-stc"),no=[];let vt=null;function F(e=!1){no.push(vt=e?null:[])}function Sr(){no.pop(),vt=no[no.length-1]||null}let Cn=1;function _a(e,t=!1){Cn+=e,e<0&&vt&&t&&(vt.hasOnce=!0)}function ll(e){return e.dynamicChildren=Cn>0?vt||Uo:null,Sr(),Cn>0&&vt&&vt.push(e),e}function G(e,t,o,n,a,r){return ll(v(e,t,o,n,a,r,!0))}function Ze(e,t,o,n,a){return ll(Oe(e,t,o,n,a,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function Pn(e,t){return e.type===t.type&&e.key===t.key}const cl=({key:e})=>e??null,$a=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Re(e)||je(e)||_e(e)?{i:st,r:e,k:t,f:!!o}:e:null);function v(e,t=null,o=null,n=0,a=null,r=e===fe?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&cl(t),ref:t&&$a(t),scopeId:wi,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:st};return i?(va(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=Re(o)?8:16),Cn>0&&!s&&vt&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&vt.push(l),l}const Oe=Td;function Td(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===Ii)&&(e=zt),Ln(e)){const i=Zo(e,t,!0);return o&&va(i,o),Cn>0&&!r&&vt&&(i.shapeFlag&6?vt[vt.indexOf(e)]=i:vt.push(i)),i.patchFlag=-2,i}if(Vd(e)&&(e=e.__vccOpts),t){t=Id(t);let{class:i,style:l}=t;i&&!Re(i)&&(t.class=$e(i)),Ne(l)&&(aa(l)&&!me(l)&&(l=Ye({},l)),t.style=Ue(l))}const s=Re(e)?1:il(e)?128:ca(e)?64:Ne(e)?4:_e(e)?2:0;return v(e,t,o,n,a,s,r,!0)}function Id(e){return e?aa(e)||Ji(e)?Ye({},e):e:null}function Zo(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?Fd(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&cl(c),ref:t&&t.ref?o&&r?me(r)?r.concat($a(t)):[r,$a(t)]:$a(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==fe?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Zo(e.ssContent),ssFallback:e.ssFallback&&Zo(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&fr(u,l.clone(u)),u}function Ce(e=" ",t=0){return Oe(Sn,null,e,t)}function Md(e,t){const o=Oe(ya,null,e);return o.staticCount=t,o}function pe(e="",t=!1){return t?(F(),Ze(zt,null,e)):Oe(zt,null,e)}function Kt(e){return e==null||typeof e=="boolean"?Oe(zt):me(e)?Oe(fe,null,e.slice()):Ln(e)?ao(e):Oe(Sn,null,String(e))}function ao(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Zo(e)}function va(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(me(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),va(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Ji(t)?t._ctx=st:a===3&&st&&(st.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(_e(t)){if(n&65){va(e,{default:t});return}t={default:t,_ctx:st},o=32}else t=String(t),n&64?(o=16,t=[Ce(t)]):o=8;e.children=t,e.shapeFlag|=o}function Fd(...e){const t={};for(let o=0;oit||st;let wa,Nn;{const e=Zn(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};wa=t("__VUE_INSTANCE_SETTERS__",o=>it=o),Nn=t("__VUE_SSR_SETTERS__",o=>Jo=o)}const On=e=>{const t=it;return wa(e),e.scope.on(),()=>{e.scope.off(),wa(t)}},ul=()=>{it&&it.scope.off(),wa(null)};function pl(e){return e.vnode.shapeFlag&4}let Jo=!1;function Gd(e,t=!1,o=!1){t&&Nn(t);const{props:n,children:a}=e.vnode,r=pl(e);wd(e,n,r,t),Sd(e,a,o||t);const s=r?Ud(e,t):void 0;return t&&Nn(!1),s}function Ud(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,id);const{setup:n}=o;if(n){Dt();const a=e.setupContext=n.length>1?Wd(e):null,r=On(e),s=Vo(n,e,0,[e.props,a]),i=Rs(s);if(Bt(),r(),(i||e.sp)&&!qo(e)&&mr(e),i){if(s.then(ul,ul),t)return s.then(l=>{Nn(!0);try{dl(e,l,t)}finally{Nn(!1)}}).catch(l=>{yn(l,e,0)});e.asyncDep=s}else dl(e,s)}else gl(e)}function dl(e,t,o){_e(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ne(t)&&(e.setupState=gi(t)),gl(e)}function gl(e,t,o){const n=e.type;e.render||(e.render=n.render||Ft);{const a=On(e);Dt();try{ld(e)}finally{Bt(),a()}}}const jd={get(e,t){return ut(e,"get",""),e[t]}};function Wd(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,jd),slots:e.slots,emit:e.emit,expose:t}}function ka(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(gi(Po(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in An)return An[o](e)},has(t,o){return o in t||o in An}})):e.proxy}const zd=/(?:^|[-_])\w/g,Kd=e=>e.replace(zd,t=>t.toUpperCase()).replace(/[-_]/g,"");function hl(e,t=!0){return _e(e)?e.displayName||e.name:e.name||t&&e.__name}function fl(e,t,o=!1){let n=hl(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Kd(n):o?"App":"Anonymous"}function Vd(e){return _e(e)&&"__vccOpts"in e}const W=(e,t)=>Lp(e,t,Jo);function ml(e,t,o){try{_a(-1);const n=arguments.length;return n===2?Ne(t)&&!me(t)?Ln(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ln(o)&&(o=[o]),Oe(e,t,o))}finally{_a(1)}}const Hd="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Cr;const bl=typeof window<"u"&&window.trustedTypes;if(bl)try{Cr=bl.createPolicy("vue",{createHTML:e=>e})}catch{}const yl=Cr?e=>Cr.createHTML(e):e=>e,Hd="http://www.w3.org/2000/svg",Yd="http://www.w3.org/1998/Math/MathML",so=typeof document<"u"?document:null,_l=so&&so.createElement("template"),qd={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?so.createElementNS(Hd,e):t==="mathml"?so.createElementNS(Yd,e):o?so.createElement(e,{is:o}):so.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>so.createTextNode(e),createComment:e=>so.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>so.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{_l.innerHTML=yl(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=_l.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Zd=Symbol("_vtc");function Jd(e,t,o){const n=e[Zd];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const xa=Symbol("_vod"),$l=Symbol("_vsh"),vl={name:"show",beforeMount(e,{value:t},{transition:o}){e[xa]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):En(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),En(e,!0),n.enter(e)):n.leave(e,()=>{En(e,!1)}):En(e,t))},beforeUnmount(e,{value:t}){En(e,t)}};function En(e,t){e.style.display=t?e[xa]:"none",e[$l]=!t}const Xd=Symbol(""),Qd=/(?:^|;)\s*display\s*:/;function eg(e,t,o){const n=e.style,a=Ie(o);let r=!1;if(o&&!a){if(t)if(Ie(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&Tn(n,i,"")}else for(const s in t)o[s]==null&&Tn(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?og(e,s,!Ie(t)&&t?t[s]:void 0,i)||Tn(n,s,i):Tn(n,s,"")}}else if(a){if(t!==o){const s=n[Xd];s&&(o+=";"+s),n.cssText=o,r=Qd.test(o)}}else t&&e.removeAttribute("style");xa in e&&(e[xa]=r?n.display:"",e[$l]&&(n.display="none"))}const Aa=/\s*!important$/;function Tn(e,t,o){if(me(o))o.forEach(n=>Tn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Aa.test(o)?e.setProperty(t,o.replace(Aa,""),"important"):e.setProperty(t,o);else{const n=tg(e,t);Aa.test(o)?e.setProperty(xt(n),o.replace(Aa,""),"important"):e[n]=o}}const wl=["Webkit","Moz","ms"],Lr={};function tg(e,t){const o=Lr[t];if(o)return o;let n=et(t);if(n!=="filter"&&n in e)return Lr[t]=n;n=qn(n);for(let a=0;aNr||(cg.then(()=>Nr=0),Nr=Date.now());function pg(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(me(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,dg=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Jd(e,n,s):t==="style"?eg(e,o,n):Wn(t)?Kn(t)||rg(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):gg(e,t,n,s))?(Al(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&xl(e,t,n,s,r,t!=="value")):e._isVueCE&&(hg(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ie(n)))?Al(e,et(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),xl(e,t,n,s))};function gg(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cl(t)&&_e(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Cl(t)&&Ie(o)?!1:t in e}function hg(e,t){const o=e._def.props;if(!o)return!1;const n=et(t);return Array.isArray(o)?o.some(a=>et(a)===n):Object.keys(o).some(a=>et(a)===n)}const Ll={};function fg(e,t,o){let n=vn(e,t);Vn(n)&&(n=He({},n,t));class a extends Pr{constructor(s){super(n,s,o)}}return a.def=n,a}const mg=typeof HTMLElement<"u"?HTMLElement:class{};class Pr extends mg{constructor(t,o={},n=Ol){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==Ol?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(He({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof Pr){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,mo(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!me(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Gs(this._props[l])),(i||(i=Object.create(null)))[et(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Ne(this,n)||Object.defineProperty(this,n,{get:()=>se(o[n])})}_resolveProps(t){const{props:o}=t,n=me(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(et))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ll;const a=et(t);o&&this._numberProps&&this._numberProps[a]&&(n=Gs(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ll?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(xt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(xt(t),o+""):o||this.removeAttribute(xt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),$g(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Oe(this._def,He(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,Vn(s[0])?He({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),xt(r)!==r&&a(xt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;oe.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>bg.some(o=>e[`${o}Key`]&&!t.includes(o))},tt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{Pl().render(...e)},Ol=(...e)=>{const t=Pl().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=wg(n);if(!a)return;const r=t._component;!_e(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,vg(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function vg(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wg(e){return Ie(e)?document.querySelector(e):e}/*! +**/let Cr;const bl=typeof window<"u"&&window.trustedTypes;if(bl)try{Cr=bl.createPolicy("vue",{createHTML:e=>e})}catch{}const yl=Cr?e=>Cr.createHTML(e):e=>e,Yd="http://www.w3.org/2000/svg",qd="http://www.w3.org/1998/Math/MathML",so=typeof document<"u"?document:null,_l=so&&so.createElement("template"),Zd={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?so.createElementNS(Yd,e):t==="mathml"?so.createElementNS(qd,e):o?so.createElement(e,{is:o}):so.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>so.createTextNode(e),createComment:e=>so.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>so.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{_l.innerHTML=yl(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=_l.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Jd=Symbol("_vtc");function Xd(e,t,o){const n=e[Jd];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Aa=Symbol("_vod"),$l=Symbol("_vsh"),vl={name:"show",beforeMount(e,{value:t},{transition:o}){e[Aa]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):En(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),En(e,!0),n.enter(e)):n.leave(e,()=>{En(e,!1)}):En(e,t))},beforeUnmount(e,{value:t}){En(e,t)}};function En(e,t){e.style.display=t?e[Aa]:"none",e[$l]=!t}const Qd=Symbol(""),eg=/(?:^|;)\s*display\s*:/;function tg(e,t,o){const n=e.style,a=Re(o);let r=!1;if(o&&!a){if(t)if(Re(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&Tn(n,i,"")}else for(const s in t)o[s]==null&&Tn(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?ng(e,s,!Re(t)&&t?t[s]:void 0,i)||Tn(n,s,i):Tn(n,s,"")}}else if(a){if(t!==o){const s=n[Qd];s&&(o+=";"+s),n.cssText=o,r=eg.test(o)}}else t&&e.removeAttribute("style");Aa in e&&(e[Aa]=r?n.display:"",e[$l]&&(n.display="none"))}const xa=/\s*!important$/;function Tn(e,t,o){if(me(o))o.forEach(n=>Tn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))xa.test(o)?e.setProperty(t,o.replace(xa,""),"important"):e.setProperty(t,o);else{const n=og(e,t);xa.test(o)?e.setProperty(xt(n),o.replace(xa,""),"important"):e[n]=o}}const wl=["Webkit","Moz","ms"],Lr={};function og(e,t){const o=Lr[t];if(o)return o;let n=tt(t);if(n!=="filter"&&n in e)return Lr[t]=n;n=qn(n);for(let a=0;aPr||(ug.then(()=>Pr=0),Pr=Date.now());function dg(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(me(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,gg=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Xd(e,n,s):t==="style"?tg(e,o,n):Wn(t)?zn(t)||sg(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):hg(e,t,n,s))?(xl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Al(e,t,n,s,r,t!=="value")):e._isVueCE&&(fg(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Re(n)))?xl(e,tt(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Al(e,t,n,s))};function hg(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cl(t)&&_e(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Cl(t)&&Re(o)?!1:t in e}function fg(e,t){const o=e._def.props;if(!o)return!1;const n=tt(t);return Array.isArray(o)?o.some(a=>tt(a)===n):Object.keys(o).some(a=>tt(a)===n)}const Ll={};function mg(e,t,o){let n=vn(e,t);Vn(n)&&(n=Ye({},n,t));class a extends Nr{constructor(s){super(n,s,o)}}return a.def=n,a}const bg=typeof HTMLElement<"u"?HTMLElement:class{};class Nr extends bg{constructor(t,o={},n=Ol){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==Ol?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Ye({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof Nr){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,mo(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!me(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Gs(this._props[l])),(i||(i=Object.create(null)))[tt(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Pe(this,n)||Object.defineProperty(this,n,{get:()=>oe(o[n])})}_resolveProps(t){const{props:o}=t,n=me(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(tt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ll;const a=tt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Gs(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ll?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(xt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(xt(t),o+""):o||this.removeAttribute(xt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),vg(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Oe(this._def,Ye(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,Vn(s[0])?Ye({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),xt(r)!==r&&a(xt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;oe.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>yg.some(o=>e[`${o}Key`]&&!t.includes(o))},ot=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{Nl().render(...e)},Ol=(...e)=>{const t=Nl().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=kg(n);if(!a)return;const r=t._component;!_e(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,wg(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function wg(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function kg(e){return Re(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let El;const Sa=e=>El=e,Tl=Symbol();function Or(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Mn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Mn||(Mn={}));function kg(){const e=Ja(!0),t=e.run(()=>re({}));let o=[],n=[];const a=No({install(r){Sa(a),a._a=r,r.provide(Tl,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Ml=()=>{};function Il(e,t,o,n=Ml){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&Hs()&&tp(a),a}function Xo(e,...t){e.slice().forEach(o=>{o(...t)})}const xg=e=>e(),Fl=Symbol(),Er=Symbol();function Tr(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];Or(a)&&Or(n)&&e.hasOwnProperty(o)&&!Ge(n)&&!Qt(n)?e[o]=Tr(a,n):e[o]=n}return e}const Ag=Symbol();function Sg(e){return!Or(e)||!e.hasOwnProperty(Ag)}const{assign:yo}=Object;function Cg(e){return!!(Ge(e)&&e.effect)}function Lg(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=kp(o.state.value[e]);return yo(u,r,Object.keys(s||{}).reduce((d,p)=>(d[p]=No(K(()=>{Sa(o);const m=o._s.get(e);return s[p].call(m,m)})),d),{}))}return l=Rl(e,c,t,o,n,!0),l}function Rl(e,t,o={},n,a,r){let s;const i=yo({actions:{}},o),l={deep:!0};let c,u,d=[],p=[],m;const _=n.state.value[e];!r&&!_&&(n.state.value[e]={});let f;function b(C){let y;c=u=!1,typeof C=="function"?(C(n.state.value[e]),y={type:Mn.patchFunction,storeId:e,events:m}):(Tr(n.state.value[e],C),y={type:Mn.patchObject,payload:C,storeId:e,events:m});const E=f=Symbol();mo().then(()=>{f===E&&(c=!0)}),u=!0,Xo(d,y,n.state.value[e])}const $=r?function(){const{state:y}=o,E=y?y():{};this.$patch(I=>{yo(I,E)})}:Ml;function L(){s.stop(),d=[],p=[],n._s.delete(e)}const A=(C,y="")=>{if(Fl in C)return C[Er]=y,C;const E=function(){Sa(n);const I=Array.from(arguments),H=[],ee=[];function q(J){H.push(J)}function R(J){ee.push(J)}Xo(p,{args:I,name:E[Er],store:k,after:q,onError:R});let U;try{U=C.apply(this&&this.$id===e?this:k,I)}catch(J){throw Xo(ee,J),J}return U instanceof Promise?U.then(J=>(Xo(H,J),J)).catch(J=>(Xo(ee,J),Promise.reject(J))):(Xo(H,U),U)};return E[Fl]=!0,E[Er]=y,E},x={_p:n,$id:e,$onAction:Il.bind(null,p),$patch:b,$reset:$,$subscribe(C,y={}){const E=Il(d,C,y.detached,()=>I()),I=s.run(()=>We(()=>n.state.value[e],H=>{(y.flush==="sync"?u:c)&&C({storeId:e,type:Mn.direct,events:m},H)},yo({},l,y)));return E},$dispose:L},k=Wo(x);n._s.set(e,k);const N=(n._a&&n._a.runWithContext||xg)(()=>n._e.run(()=>(s=Ja()).run(()=>t({action:A}))));for(const C in N){const y=N[C];if(Ge(y)&&!Cg(y)||Qt(y))r||(_&&Sg(y)&&(Ge(y)?y.value=_[C]:Tr(y,_[C])),n.state.value[e][C]=y);else if(typeof y=="function"){const E=A(y,C);N[C]=E,i.actions[C]=y}}return yo(k,N),yo(Se(k),N),Object.defineProperty(k,"$state",{get:()=>n.state.value[e],set:C=>{b(y=>{yo(y,C)})}}),n._p.forEach(C=>{yo(k,s.run(()=>C({store:k,app:n._a,pinia:n,options:i})))}),_&&r&&o.hydrate&&o.hydrate(k.$state,_),c=!0,u=!0,k}/*! #__NO_SIDE_EFFECTS__ */function Mr(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=Rp();return i=i||(c?xe(Tl,null):null),i&&Sa(i),i=El,i._s.has(n)||(r?Rl(n,t,a,i):Lg(n,a,i)),i._s.get(n)}return s.$id=n,s}const Ir="__doxaMapToken",Fr="doxa:map-token",Dl="__doxaMapTokenBridge",Qo=()=>{if(typeof window>"u")return"";const e=window[Ir];return typeof e=="string"?e:""};function Bl(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Qo())return Qo();window[Ir]=t;try{window.dispatchEvent(new CustomEvent(Fr,{detail:t}))}catch{}return t}function Ng(){if(typeof window>"u"||window[Dl])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Qo()&&(window[Ir]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Qo()},set(t){Bl(t)}}),window[Dl]=!0}catch{}}function Pg(){Ng();const e=re(Qo());if(typeof window<"u"){const t=()=>{e.value=Qo()};window.addEventListener(Fr,t);try{Wt(()=>window.removeEventListener(Fr,t))}catch{}}return e}function Rr(e){return Yp({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Og={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Eg={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},Tg={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Mg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"}},Ig={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},Fg={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"}},Rg={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Dg={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Bg={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Gg={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Ug={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},jg={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},Wg={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية"},Kg={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},zg={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Vg={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Hg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"}},Yg={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},qg={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"}},Zg={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Jg={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Xg={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Qg={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},eh={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},th={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},oh={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe"},nh={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},ah={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},rh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},sh={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"}},ih={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},lh={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"}},ch={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},uh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},ph={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},dh={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},gh={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},hh={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},fh={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group"},mh={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},bh={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},yh={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},_h={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"}},$h={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},vh={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"}},wh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},kh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},xh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Ah={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Sh={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},Ch={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},Lh={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico"},Nh={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},Ph={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},Oh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Eh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"}},Th={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},Mh={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"}},Ih={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Fh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Rh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Dh={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},Bh={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Gh={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},Uh={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples"},jh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Wh={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},Kh={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},zh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"}},Vh={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},Hh={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"}},Yh={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},qh={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Zh={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Jh={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Xh={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Qh={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},ef={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह"},tf={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},of={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},nf={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},af={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"}},rf={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},sf={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"}},lf={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},cf={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},uf={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},pf={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},df={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},gf={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},hf={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico"},ff={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},mf={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},bf={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},yf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"}},_f={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},$f={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"}},vf={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},wf={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},kf={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},xf={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},Af={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},Sf={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},Cf={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico"},Lf={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Nf={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},Pf={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Of={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"}},Ef={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},Tf={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"}},Mf={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},If={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Ff={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Rf={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},Df={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},Bf={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},Gf={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic"},Uf={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},jf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},Wf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Kf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"}},zf={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},Vf={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"}},Hf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Yf={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},qf={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Zf={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},Jf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},Xf={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},Qf={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ"},em={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},tm={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},om={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},nm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"}},am={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},rm={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"}},sm={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},im={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},lm={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},cm={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},um={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},pm={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},dm={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群"};/*! + */let El;const Sa=e=>El=e,Tl=Symbol();function Or(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var In;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(In||(In={}));function Ag(){const e=Ja(!0),t=e.run(()=>se({}));let o=[],n=[];const a=Po({install(r){Sa(a),a._a=r,r.provide(Tl,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Il=()=>{};function Ml(e,t,o,n=Il){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&Hs()&&op(a),a}function Xo(e,...t){e.slice().forEach(o=>{o(...t)})}const xg=e=>e(),Fl=Symbol(),Er=Symbol();function Tr(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];Or(a)&&Or(n)&&e.hasOwnProperty(o)&&!je(n)&&!Qt(n)?e[o]=Tr(a,n):e[o]=n}return e}const Sg=Symbol();function Cg(e){return!Or(e)||!e.hasOwnProperty(Sg)}const{assign:yo}=Object;function Lg(e){return!!(je(e)&&e.effect)}function Pg(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=Ap(o.state.value[e]);return yo(u,r,Object.keys(s||{}).reduce((d,p)=>(d[p]=Po(W(()=>{Sa(o);const m=o._s.get(e);return s[p].call(m,m)})),d),{}))}return l=Rl(e,c,t,o,n,!0),l}function Rl(e,t,o={},n,a,r){let s;const i=yo({actions:{}},o),l={deep:!0};let c,u,d=[],p=[],m;const _=n.state.value[e];!r&&!_&&(n.state.value[e]={});let f;function b(L){let y;c=u=!1,typeof L=="function"?(L(n.state.value[e]),y={type:In.patchFunction,storeId:e,events:m}):(Tr(n.state.value[e],L),y={type:In.patchObject,payload:L,storeId:e,events:m});const E=f=Symbol();mo().then(()=>{f===E&&(c=!0)}),u=!0,Xo(d,y,n.state.value[e])}const $=r?function(){const{state:y}=o,E=y?y():{};this.$patch(M=>{yo(M,E)})}:Il;function P(){s.stop(),d=[],p=[],n._s.delete(e)}const x=(L,y="")=>{if(Fl in L)return L[Er]=y,L;const E=function(){Sa(n);const M=Array.from(arguments),Y=[],te=[];function he(D){Y.push(D)}function ne(D){te.push(D)}Xo(p,{args:M,name:E[Er],store:k,after:he,onError:ne});let q;try{q=L.apply(this&&this.$id===e?this:k,M)}catch(D){throw Xo(te,D),D}return q instanceof Promise?q.then(D=>(Xo(Y,D),D)).catch(D=>(Xo(te,D),Promise.reject(D))):(Xo(Y,q),q)};return E[Fl]=!0,E[Er]=y,E},A={_p:n,$id:e,$onAction:Ml.bind(null,p),$patch:b,$reset:$,$subscribe(L,y={}){const E=Ml(d,L,y.detached,()=>M()),M=s.run(()=>Ke(()=>n.state.value[e],Y=>{(y.flush==="sync"?u:c)&&L({storeId:e,type:In.direct,events:m},Y)},yo({},l,y)));return E},$dispose:P},k=Wo(A);n._s.set(e,k);const C=(n._a&&n._a.runWithContext||xg)(()=>n._e.run(()=>(s=Ja()).run(()=>t({action:x}))));for(const L in C){const y=C[L];if(je(y)&&!Lg(y)||Qt(y))r||(_&&Cg(y)&&(je(y)?y.value=_[L]:Tr(y,_[L])),n.state.value[e][L]=y);else if(typeof y=="function"){const E=x(y,L);C[L]=E,i.actions[L]=y}}return yo(k,C),yo(Se(k),C),Object.defineProperty(k,"$state",{get:()=>n.state.value[e],set:L=>{b(y=>{yo(y,L)})}}),n._p.forEach(L=>{yo(k,s.run(()=>L({store:k,app:n._a,pinia:n,options:i})))}),_&&r&&o.hydrate&&o.hydrate(k.$state,_),c=!0,u=!0,k}/*! #__NO_SIDE_EFFECTS__ */function Ir(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=Dp();return i=i||(c?Ae(Tl,null):null),i&&Sa(i),i=El,i._s.has(n)||(r?Rl(n,t,a,i):Pg(n,a,i)),i._s.get(n)}return s.$id=n,s}const Mr="__doxaMapToken",Fr="doxa:map-token",Dl="__doxaMapTokenBridge",Qo=()=>{if(typeof window>"u")return"";const e=window[Mr];return typeof e=="string"?e:""};function Bl(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===Qo())return Qo();window[Mr]=t;try{window.dispatchEvent(new CustomEvent(Fr,{detail:t}))}catch{}return t}function Ng(){if(typeof window>"u"||window[Dl])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Qo()&&(window[Mr]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Qo()},set(t){Bl(t)}}),window[Dl]=!0}catch{}}function Og(){Ng();const e=se(Qo());if(typeof window<"u"){const t=()=>{e.value=Qo()};window.addEventListener(Fr,t);try{Wt(()=>window.removeEventListener(Fr,t))}catch{}}return e}function Rr(e){return qp({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Eg={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Tg={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},Ig={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Mg={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Fg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"}},Rg={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"}},Dg={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"}},Bg={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Gg={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Ug={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},jg={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة بشرية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة البشرية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مُخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة بشرية غير مبشرة تتبناها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات البشرية غير المُبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة بشرية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"الهدف هو القضاء على جميع الشعوب الغير مخدومة روحيا بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة بشرية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة البشرية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعات بشرية في %country%. تحقق من الخريطة لمعرفة المجموعات البشرية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مُخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Wg={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},zg={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},Kg={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية"},Vg={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},Hg={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Yg={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},qg={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Zg={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"}},Jg={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"}},Xg={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"}},Qg={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},eh={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},th={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},oh={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},nh={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"}},ah={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},rh={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe"},sh={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},ih={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},Gl={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},lh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},ch={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"}},uh={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"}},ph={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"}},dh={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},gh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},hh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},fh={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},mh={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},bh={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},yh={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group"},_h={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},$h={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},vh={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},wh={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},kh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"}},Ah={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"}},xh={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"}},Sh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Ch={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Lh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Ph={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Nh={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},Oh={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},Eh={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico"},Th={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende"},Ih={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},Mh={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},Fh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Rh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"}},Dh={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"}},Bh={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"}},Gh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Uh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},jh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Wh={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},zh={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Kh={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},Vh={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples"},Hh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Yh={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},qh={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Zh={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Jh={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"}},Xh={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"}},Qh={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"}},ef={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},tf={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},of={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},nf={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},af={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},rf={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},sf={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह"},lf={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},cf={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},uf={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},pf={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},df={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"}},gf={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"}},hf={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"}},ff={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},mf={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},bf={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},yf={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},_f={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"}},$f={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},vf={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico"},wf={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},kf={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},Af={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},xf={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Sf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"}},Cf={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"}},Lf={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"}},Pf={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Nf={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Of={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Ef={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},Tf={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},If={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},Mf={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico"},Ff={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Rf={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},Df={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},Bf={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Gf={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"}},Uf={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"}},jf={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"}},Wf={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},zf={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Kf={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Vf={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},Hf={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"}},Yf={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},qf={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic"},Zf={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Jf={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},Xf={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Qf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},em={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"}},tm={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"}},om={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"}},nm={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},am={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},rm={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},sm={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},im={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},lm={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},cm={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ"},um={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},pm={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},dm={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},gm={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},hm={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"}},fm={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"}},mm={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"}},bm={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},ym={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},_m={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},$m={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},vm={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},wm={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},km={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function gm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Ca=typeof window<"u",_o=(e,t=!1)=>t?Symbol.for(e):Symbol(e),hm=(e,t,o)=>fm({l:e,k:t,s:o}),fm=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ze=e=>typeof e=="number"&&isFinite(e),mm=e=>Kl(e)==="[object Date]",$o=e=>Kl(e)==="[object RegExp]",La=e=>ve(e)&&Object.keys(e).length===0,st=Object.assign,bm=Object.create,Ee=(e=null)=>bm(e);let Gl;const io=()=>Gl||(Gl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ee());function Ul(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function jl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function ym(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${jl(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${jl(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const _m=Object.prototype.hasOwnProperty;function Et(e,t){return _m.call(e,t)}const Ue=Array.isArray,Re=e=>typeof e=="function",le=e=>typeof e=="string",Ae=e=>typeof e=="boolean",Le=e=>e!==null&&typeof e=="object",$m=e=>Le(e)&&Re(e.then)&&Re(e.catch),Wl=Object.prototype.toString,Kl=e=>Wl.call(e),ve=e=>{if(!Le(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},vm=e=>e==null?"":Ue(e)||ve(e)&&e.toString===Wl?JSON.stringify(e,null,2):String(e);function wm(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Na(e){let t=e;return()=>++t}const Pa=e=>!Le(e)||Ue(e);function Oa(e,t){if(Pa(e)||Pa(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Le(n[r])&&!Le(a[r])&&(a[r]=Array.isArray(n[r])?[]:Ee()),Pa(a[r])||Pa(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! + */function Am(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Ca=typeof window<"u",_o=(e,t=!1)=>t?Symbol.for(e):Symbol(e),xm=(e,t,o)=>Sm({l:e,k:t,s:o}),Sm=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Je=e=>typeof e=="number"&&isFinite(e),Cm=e=>Kl(e)==="[object Date]",$o=e=>Kl(e)==="[object RegExp]",La=e=>ve(e)&&Object.keys(e).length===0,lt=Object.assign,Lm=Object.create,Te=(e=null)=>Lm(e);let Ul;const io=()=>Ul||(Ul=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Te());function jl(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Wl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Pm(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${Wl(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${Wl(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const Nm=Object.prototype.hasOwnProperty;function Et(e,t){return Nm.call(e,t)}const We=Array.isArray,Be=e=>typeof e=="function",ie=e=>typeof e=="string",xe=e=>typeof e=="boolean",Le=e=>e!==null&&typeof e=="object",Om=e=>Le(e)&&Be(e.then)&&Be(e.catch),zl=Object.prototype.toString,Kl=e=>zl.call(e),ve=e=>{if(!Le(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Em=e=>e==null?"":We(e)||ve(e)&&e.toString===zl?JSON.stringify(e,null,2):String(e);function Tm(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Pa(e){let t=e;return()=>++t}const Na=e=>!Le(e)||We(e);function Oa(e,t){if(Na(e)||Na(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Le(n[r])&&!Le(a[r])&&(a[r]=Array.isArray(n[r])?[]:Te()),Na(a[r])||Na(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function km(e,t,o){return{line:e,column:t,offset:o}}function Ea(e,t,o){return{start:e,end:t}}const xm=/\{([0-9a-zA-Z]+)\}/g;function zl(e,...t){return t.length===1&&Am(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(xm,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Vl=Object.assign,Hl=e=>typeof e=="string",Am=e=>e!==null&&typeof e=="object";function Yl(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Dr={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Sm={[Dr.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Cm(e,t,...o){const n=zl(Sm[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const be={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Lm={[be.EXPECTED_TOKEN]:"Expected token: '{0}'",[be.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[be.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[be.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[be.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[be.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[be.EMPTY_PLACEHOLDER]:"Empty placeholder",[be.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[be.INVALID_LINKED_FORMAT]:"Invalid linked format",[be.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[be.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[be.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[be.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[be.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[be.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function en(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=zl((a||Lm)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function Nm(e){throw e}const lo=" ",Pm="\r",ht=` -`,Om="\u2028",Em="\u2029";function Tm(e){const t=e;let o=0,n=1,a=1,r=0;const s=N=>t[N]===Pm&&t[N+1]===ht,i=N=>t[N]===ht,l=N=>t[N]===Em,c=N=>t[N]===Om,u=N=>s(N)||i(N)||l(N)||c(N),d=()=>o,p=()=>n,m=()=>a,_=()=>r,f=N=>s(N)||l(N)||c(N)?ht:t[N],b=()=>f(o),$=()=>f(o+r);function L(){return r=0,u(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function A(){return s(o+r)&&r++,r++,t[o+r]}function x(){o=0,n=1,a=1,r=0}function k(N=0){r=N}function w(){const N=o+r;for(;N!==o;)L();r=0}return{index:d,line:p,column:m,peekOffset:_,charAt:f,currentChar:b,currentPeek:$,next:L,peek:A,reset:x,resetPeek:k,skipToPeek:w}}const vo=void 0,Mm=".",ql="'",Im="tokenizer";function Fm(e,t={}){const o=t.location!==!1,n=Tm(e),a=()=>n.index(),r=()=>km(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function d(g,h,M,...B){const ne=c();if(h.column+=M,h.offset+=M,u){const Q=o?Ea(ne.startLoc,h):null,D=en(g,Q,{domain:Im,args:B});u(D)}}function p(g,h,M){g.endLoc=r(),g.currentType=h;const B={type:h};return o&&(B.loc=Ea(g.startLoc,g.endLoc)),M!=null&&(B.value=M),B}const m=g=>p(g,14);function _(g,h){return g.currentChar()===h?(g.next(),h):(d(be.EXPECTED_TOKEN,r(),0,h),"")}function f(g){let h="";for(;g.currentPeek()===lo||g.currentPeek()===ht;)h+=g.currentPeek(),g.peek();return h}function b(g){const h=f(g);return g.skipToPeek(),h}function $(g){if(g===vo)return!1;const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h===95}function L(g){if(g===vo)return!1;const h=g.charCodeAt(0);return h>=48&&h<=57}function A(g,h){const{currentType:M}=h;if(M!==2)return!1;f(g);const B=$(g.currentPeek());return g.resetPeek(),B}function x(g,h){const{currentType:M}=h;if(M!==2)return!1;f(g);const B=g.currentPeek()==="-"?g.peek():g.currentPeek(),ne=L(B);return g.resetPeek(),ne}function k(g,h){const{currentType:M}=h;if(M!==2)return!1;f(g);const B=g.currentPeek()===ql;return g.resetPeek(),B}function w(g,h){const{currentType:M}=h;if(M!==8)return!1;f(g);const B=g.currentPeek()===".";return g.resetPeek(),B}function N(g,h){const{currentType:M}=h;if(M!==9)return!1;f(g);const B=$(g.currentPeek());return g.resetPeek(),B}function C(g,h){const{currentType:M}=h;if(!(M===8||M===12))return!1;f(g);const B=g.currentPeek()===":";return g.resetPeek(),B}function y(g,h){const{currentType:M}=h;if(M!==10)return!1;const B=()=>{const Q=g.currentPeek();return Q==="{"?$(g.peek()):Q==="@"||Q==="%"||Q==="|"||Q===":"||Q==="."||Q===lo||!Q?!1:Q===ht?(g.peek(),B()):H(g,!1)},ne=B();return g.resetPeek(),ne}function E(g){f(g);const h=g.currentPeek()==="|";return g.resetPeek(),h}function I(g){const h=f(g),M=g.currentPeek()==="%"&&g.peek()==="{";return g.resetPeek(),{isModulo:M,hasSpace:h.length>0}}function H(g,h=!0){const M=(ne=!1,Q="",D=!1)=>{const z=g.currentPeek();return z==="{"?Q==="%"?!1:ne:z==="@"||!z?Q==="%"?!0:ne:z==="%"?(g.peek(),M(ne,"%",!0)):z==="|"?Q==="%"||D?!0:!(Q===lo||Q===ht):z===lo?(g.peek(),M(!0,lo,D)):z===ht?(g.peek(),M(!0,ht,D)):!0},B=M();return h&&g.resetPeek(),B}function ee(g,h){const M=g.currentChar();return M===vo?vo:h(M)?(g.next(),M):null}function q(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36}function R(g){return ee(g,q)}function U(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36||h===45}function J(g){return ee(g,U)}function ie(g){const h=g.charCodeAt(0);return h>=48&&h<=57}function ae(g){return ee(g,ie)}function oe(g){const h=g.charCodeAt(0);return h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102}function ue(g){return ee(g,oe)}function pe(g){let h="",M="";for(;h=ae(g);)M+=h;return M}function Ke(g){b(g);const h=g.currentChar();return h!=="%"&&d(be.EXPECTED_TOKEN,r(),0,h),g.next(),"%"}function ct(g){let h="";for(;;){const M=g.currentChar();if(M==="{"||M==="}"||M==="@"||M==="|"||!M)break;if(M==="%")if(H(g))h+=M,g.next();else break;else if(M===lo||M===ht)if(H(g))h+=M,g.next();else{if(E(g))break;h+=M,g.next()}else h+=M,g.next()}return h}function Ct(g){b(g);let h="",M="";for(;h=J(g);)M+=h;return g.currentChar()===vo&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),M}function De(g){b(g);let h="";return g.currentChar()==="-"?(g.next(),h+=`-${pe(g)}`):h+=pe(g),g.currentChar()===vo&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),h}function je(g){return g!==ql&&g!==ht}function ut(g){b(g),_(g,"'");let h="",M="";for(;h=ee(g,je);)h==="\\"?M+=wt(g):M+=h;const B=g.currentChar();return B===ht||B===vo?(d(be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),B===ht&&(g.next(),_(g,"'")),M):(_(g,"'"),M)}function wt(g){const h=g.currentChar();switch(h){case"\\":case"'":return g.next(),`\\${h}`;case"u":return ze(g,h,4);case"U":return ze(g,h,6);default:return d(be.UNKNOWN_ESCAPE_SEQUENCE,r(),0,h),""}}function ze(g,h,M){_(g,h);let B="";for(let ne=0;ne{const B=g.currentChar();return B==="{"||B==="%"||B==="@"||B==="|"||B==="("||B===")"||!B||B===lo?M:(M+=B,g.next(),h(M))};return h("")}function W(g){b(g);const h=_(g,"|");return b(g),h}function Y(g,h){let M=null;switch(g.currentChar()){case"{":return h.braceNest>=1&&d(be.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),g.next(),M=p(h,2,"{"),b(g),h.braceNest++,M;case"}":return h.braceNest>0&&h.currentType===2&&d(be.EMPTY_PLACEHOLDER,r(),0),g.next(),M=p(h,3,"}"),h.braceNest--,h.braceNest>0&&b(g),h.inLinked&&h.braceNest===0&&(h.inLinked=!1),M;case"@":return h.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),M=V(g,h)||m(h),h.braceNest=0,M;default:{let ne=!0,Q=!0,D=!0;if(E(g))return h.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),M=p(h,1,W(g)),h.braceNest=0,h.inLinked=!1,M;if(h.braceNest>0&&(h.currentType===5||h.currentType===6||h.currentType===7))return d(be.UNTERMINATED_CLOSING_BRACE,r(),0),h.braceNest=0,te(g,h);if(ne=A(g,h))return M=p(h,5,Ct(g)),b(g),M;if(Q=x(g,h))return M=p(h,6,De(g)),b(g),M;if(D=k(g,h))return M=p(h,7,ut(g)),b(g),M;if(!ne&&!Q&&!D)return M=p(h,13,S(g)),d(be.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,M.value),b(g),M;break}}return M}function V(g,h){const{currentType:M}=h;let B=null;const ne=g.currentChar();switch((M===8||M===9||M===12||M===10)&&(ne===ht||ne===lo)&&d(be.INVALID_LINKED_FORMAT,r(),0),ne){case"@":return g.next(),B=p(h,8,"@"),h.inLinked=!0,B;case".":return b(g),g.next(),p(h,9,".");case":":return b(g),g.next(),p(h,10,":");default:return E(g)?(B=p(h,1,W(g)),h.braceNest=0,h.inLinked=!1,B):w(g,h)||C(g,h)?(b(g),V(g,h)):N(g,h)?(b(g),p(h,12,O(g))):y(g,h)?(b(g),ne==="{"?Y(g,h)||B:p(h,11,P(g))):(M===8&&d(be.INVALID_LINKED_FORMAT,r(),0),h.braceNest=0,h.inLinked=!1,te(g,h))}}function te(g,h){let M={type:14};if(h.braceNest>0)return Y(g,h)||m(h);if(h.inLinked)return V(g,h)||m(h);switch(g.currentChar()){case"{":return Y(g,h)||m(h);case"}":return d(be.UNBALANCED_CLOSING_BRACE,r(),0),g.next(),p(h,3,"}");case"@":return V(g,h)||m(h);default:{if(E(g))return M=p(h,1,W(g)),h.braceNest=0,h.inLinked=!1,M;const{isModulo:ne,hasSpace:Q}=I(g);if(ne)return Q?p(h,0,ct(g)):p(h,4,Ke(g));if(H(g))return p(h,0,ct(g));break}}return M}function X(){const{currentType:g,offset:h,startLoc:M,endLoc:B}=l;return l.lastType=g,l.lastOffset=h,l.lastStartLoc=M,l.lastEndLoc=B,l.offset=a(),l.startLoc=r(),n.currentChar()===vo?p(l,14):te(n,l)}return{nextToken:X,currentOffset:a,currentPosition:r,context:c}}const Rm="parser",Dm=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Bm(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function Gm(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(A,x,k,w,...N){const C=A.currentPosition();if(C.offset+=w,C.column+=w,o){const y=t?Ea(k,C):null,E=en(x,y,{domain:Rm,args:N});o(E)}}function r(A,x,k,w,...N){const C=A.currentPosition();if(C.offset+=w,C.column+=w,n){const y=t?Ea(k,C):null;n(Cm(x,y,N))}}function s(A,x,k){const w={type:A};return t&&(w.start=x,w.end=x,w.loc={start:k,end:k}),w}function i(A,x,k,w){t&&(A.end=x,A.loc&&(A.loc.end=k))}function l(A,x){const k=A.context(),w=s(3,k.offset,k.startLoc);return w.value=x,i(w,A.currentOffset(),A.currentPosition()),w}function c(A,x){const k=A.context(),{lastOffset:w,lastStartLoc:N}=k,C=s(5,w,N);return C.index=parseInt(x,10),A.nextToken(),i(C,A.currentOffset(),A.currentPosition()),C}function u(A,x,k){const w=A.context(),{lastOffset:N,lastStartLoc:C}=w,y=s(4,N,C);return y.key=x,k===!0&&(y.modulo=!0),A.nextToken(),i(y,A.currentOffset(),A.currentPosition()),y}function d(A,x){const k=A.context(),{lastOffset:w,lastStartLoc:N}=k,C=s(9,w,N);return C.value=x.replace(Dm,Bm),A.nextToken(),i(C,A.currentOffset(),A.currentPosition()),C}function p(A){const x=A.nextToken(),k=A.context(),{lastOffset:w,lastStartLoc:N}=k,C=s(8,w,N);return x.type!==12?(a(A,be.UNEXPECTED_EMPTY_LINKED_MODIFIER,k.lastStartLoc,0),C.value="",i(C,w,N),{nextConsumeToken:x,node:C}):(x.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,Tt(x)),C.value=x.value||"",i(C,A.currentOffset(),A.currentPosition()),{node:C})}function m(A,x){const k=A.context(),w=s(7,k.offset,k.startLoc);return w.value=x,i(w,A.currentOffset(),A.currentPosition()),w}function _(A){const x=A.context(),k=s(6,x.offset,x.startLoc);let w=A.nextToken();if(w.type===9){const N=p(A);k.modifier=N.node,w=N.nextConsumeToken||A.nextToken()}switch(w.type!==10&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(w)),w=A.nextToken(),w.type===2&&(w=A.nextToken()),w.type){case 11:w.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(w)),k.key=m(A,w.value||"");break;case 5:w.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(w)),k.key=u(A,w.value||"");break;case 6:w.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(w)),k.key=c(A,w.value||"");break;case 7:w.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(w)),k.key=d(A,w.value||"");break;default:{a(A,be.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const N=A.context(),C=s(7,N.offset,N.startLoc);return C.value="",i(C,N.offset,N.startLoc),k.key=C,i(k,N.offset,N.startLoc),{nextConsumeToken:w,node:k}}}return i(k,A.currentOffset(),A.currentPosition()),{node:k}}function f(A){const x=A.context(),k=x.currentType===1?A.currentOffset():x.offset,w=x.currentType===1?x.endLoc:x.startLoc,N=s(2,k,w);N.items=[];let C=null,y=null;do{const H=C||A.nextToken();switch(C=null,H.type){case 0:H.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(H)),N.items.push(l(A,H.value||""));break;case 6:H.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(H)),N.items.push(c(A,H.value||""));break;case 4:y=!0;break;case 5:H.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(H)),N.items.push(u(A,H.value||"",!!y)),y&&(r(A,Dr.USE_MODULO_SYNTAX,x.lastStartLoc,0,Tt(H)),y=null);break;case 7:H.value==null&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Tt(H)),N.items.push(d(A,H.value||""));break;case 8:{const ee=_(A);N.items.push(ee.node),C=ee.nextConsumeToken||null;break}}}while(x.currentType!==14&&x.currentType!==1);const E=x.currentType===1?x.lastOffset:A.currentOffset(),I=x.currentType===1?x.lastEndLoc:A.currentPosition();return i(N,E,I),N}function b(A,x,k,w){const N=A.context();let C=w.items.length===0;const y=s(1,x,k);y.cases=[],y.cases.push(w);do{const E=f(A);C||(C=E.items.length===0),y.cases.push(E)}while(N.currentType!==14);return C&&a(A,be.MUST_HAVE_MESSAGES_IN_PLURAL,k,0),i(y,A.currentOffset(),A.currentPosition()),y}function $(A){const x=A.context(),{offset:k,startLoc:w}=x,N=f(A);return x.currentType===14?N:b(A,k,w,N)}function L(A){const x=Fm(A,Vl({},e)),k=x.context(),w=s(0,k.offset,k.startLoc);return t&&w.loc&&(w.loc.source=A),w.body=$(x),e.onCacheKey&&(w.cacheKey=e.onCacheKey(A)),k.currentType!==14&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,A[k.offset]||""),i(w,x.currentOffset(),x.currentPosition()),w}return{parse:L}}function Tt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Um(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function Zl(e,t){for(let o=0;oJl(o)),e}function Jl(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(f,b){s.code+=f}function c(f,b=!0){const $=b?n:"";l(a?$+" ".repeat(f):$)}function u(f=!0){const b=++s.indentLevel;f&&c(b)}function d(f=!0){const b=--s.indentLevel;f&&c(b)}function p(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:d,newline:p,helper:f=>`_${f}`,needIndent:()=>s.needIndent}}function Hm(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),on(e,t.key),t.modifier?(e.push(", "),on(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Ym(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=Hl(t.mode)?t.mode:"normal",n=Hl(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=Vm(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${Yl(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),on(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function Xm(e,t={}){const o=Vl({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=Gm(o).parse(e);return n?(r&&Wm(i),a&&tn(i),{ast:i,code:""}):(jm(i,o),Jm(i,o))}/*! + */function Im(e,t,o){return{line:e,column:t,offset:o}}function Ea(e,t,o){return{start:e,end:t}}const Mm=/\{([0-9a-zA-Z]+)\}/g;function Vl(e,...t){return t.length===1&&Fm(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Mm,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Hl=Object.assign,Yl=e=>typeof e=="string",Fm=e=>e!==null&&typeof e=="object";function ql(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Dr={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Rm={[Dr.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Dm(e,t,...o){const n=Vl(Rm[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const be={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Bm={[be.EXPECTED_TOKEN]:"Expected token: '{0}'",[be.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[be.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[be.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[be.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[be.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[be.EMPTY_PLACEHOLDER]:"Empty placeholder",[be.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[be.INVALID_LINKED_FORMAT]:"Invalid linked format",[be.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[be.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[be.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[be.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[be.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[be.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function en(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=Vl((a||Bm)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function Gm(e){throw e}const lo=" ",Um="\r",ft=` +`,jm="\u2028",Wm="\u2029";function zm(e){const t=e;let o=0,n=1,a=1,r=0;const s=C=>t[C]===Um&&t[C+1]===ft,i=C=>t[C]===ft,l=C=>t[C]===Wm,c=C=>t[C]===jm,u=C=>s(C)||i(C)||l(C)||c(C),d=()=>o,p=()=>n,m=()=>a,_=()=>r,f=C=>s(C)||l(C)||c(C)?ft:t[C],b=()=>f(o),$=()=>f(o+r);function P(){return r=0,u(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function x(){return s(o+r)&&r++,r++,t[o+r]}function A(){o=0,n=1,a=1,r=0}function k(C=0){r=C}function w(){const C=o+r;for(;C!==o;)P();r=0}return{index:d,line:p,column:m,peekOffset:_,charAt:f,currentChar:b,currentPeek:$,next:P,peek:x,reset:A,resetPeek:k,skipToPeek:w}}const vo=void 0,Km=".",Zl="'",Vm="tokenizer";function Hm(e,t={}){const o=t.location!==!1,n=zm(e),a=()=>n.index(),r=()=>Im(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function d(g,h,I,...B){const re=c();if(h.column+=I,h.offset+=I,u){const ee=o?Ea(re.startLoc,h):null,R=en(g,ee,{domain:Vm,args:B});u(R)}}function p(g,h,I){g.endLoc=r(),g.currentType=h;const B={type:h};return o&&(B.loc=Ea(g.startLoc,g.endLoc)),I!=null&&(B.value=I),B}const m=g=>p(g,14);function _(g,h){return g.currentChar()===h?(g.next(),h):(d(be.EXPECTED_TOKEN,r(),0,h),"")}function f(g){let h="";for(;g.currentPeek()===lo||g.currentPeek()===ft;)h+=g.currentPeek(),g.peek();return h}function b(g){const h=f(g);return g.skipToPeek(),h}function $(g){if(g===vo)return!1;const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h===95}function P(g){if(g===vo)return!1;const h=g.charCodeAt(0);return h>=48&&h<=57}function x(g,h){const{currentType:I}=h;if(I!==2)return!1;f(g);const B=$(g.currentPeek());return g.resetPeek(),B}function A(g,h){const{currentType:I}=h;if(I!==2)return!1;f(g);const B=g.currentPeek()==="-"?g.peek():g.currentPeek(),re=P(B);return g.resetPeek(),re}function k(g,h){const{currentType:I}=h;if(I!==2)return!1;f(g);const B=g.currentPeek()===Zl;return g.resetPeek(),B}function w(g,h){const{currentType:I}=h;if(I!==8)return!1;f(g);const B=g.currentPeek()===".";return g.resetPeek(),B}function C(g,h){const{currentType:I}=h;if(I!==9)return!1;f(g);const B=$(g.currentPeek());return g.resetPeek(),B}function L(g,h){const{currentType:I}=h;if(!(I===8||I===12))return!1;f(g);const B=g.currentPeek()===":";return g.resetPeek(),B}function y(g,h){const{currentType:I}=h;if(I!==10)return!1;const B=()=>{const ee=g.currentPeek();return ee==="{"?$(g.peek()):ee==="@"||ee==="%"||ee==="|"||ee===":"||ee==="."||ee===lo||!ee?!1:ee===ft?(g.peek(),B()):Y(g,!1)},re=B();return g.resetPeek(),re}function E(g){f(g);const h=g.currentPeek()==="|";return g.resetPeek(),h}function M(g){const h=f(g),I=g.currentPeek()==="%"&&g.peek()==="{";return g.resetPeek(),{isModulo:I,hasSpace:h.length>0}}function Y(g,h=!0){const I=(re=!1,ee="",R=!1)=>{const K=g.currentPeek();return K==="{"?ee==="%"?!1:re:K==="@"||!K?ee==="%"?!0:re:K==="%"?(g.peek(),I(re,"%",!0)):K==="|"?ee==="%"||R?!0:!(ee===lo||ee===ft):K===lo?(g.peek(),I(!0,lo,R)):K===ft?(g.peek(),I(!0,ft,R)):!0},B=I();return h&&g.resetPeek(),B}function te(g,h){const I=g.currentChar();return I===vo?vo:h(I)?(g.next(),I):null}function he(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36}function ne(g){return te(g,he)}function q(g){const h=g.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36||h===45}function D(g){return te(g,q)}function z(g){const h=g.charCodeAt(0);return h>=48&&h<=57}function J(g){return te(g,z)}function X(g){const h=g.charCodeAt(0);return h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102}function le(g){return te(g,X)}function ue(g){let h="",I="";for(;h=J(g);)I+=h;return I}function Fe(g){b(g);const h=g.currentChar();return h!=="%"&&d(be.EXPECTED_TOKEN,r(),0,h),g.next(),"%"}function Ge(g){let h="";for(;;){const I=g.currentChar();if(I==="{"||I==="}"||I==="@"||I==="|"||!I)break;if(I==="%")if(Y(g))h+=I,g.next();else break;else if(I===lo||I===ft)if(Y(g))h+=I,g.next();else{if(E(g))break;h+=I,g.next()}else h+=I,g.next()}return h}function at(g){b(g);let h="",I="";for(;h=D(g);)I+=h;return g.currentChar()===vo&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),I}function Ee(g){b(g);let h="";return g.currentChar()==="-"?(g.next(),h+=`-${ue(g)}`):h+=ue(g),g.currentChar()===vo&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),h}function ze(g){return g!==Zl&&g!==ft}function pt(g){b(g),_(g,"'");let h="",I="";for(;h=te(g,ze);)h==="\\"?I+=kt(g):I+=h;const B=g.currentChar();return B===ft||B===vo?(d(be.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),B===ft&&(g.next(),_(g,"'")),I):(_(g,"'"),I)}function kt(g){const h=g.currentChar();switch(h){case"\\":case"'":return g.next(),`\\${h}`;case"u":return Ve(g,h,4);case"U":return Ve(g,h,6);default:return d(be.UNKNOWN_ESCAPE_SEQUENCE,r(),0,h),""}}function Ve(g,h,I){_(g,h);let B="";for(let re=0;re{const B=g.currentChar();return B==="{"||B==="%"||B==="@"||B==="|"||B==="("||B===")"||!B||B===lo?I:(I+=B,g.next(),h(I))};return h("")}function j(g){b(g);const h=_(g,"|");return b(g),h}function Z(g,h){let I=null;switch(g.currentChar()){case"{":return h.braceNest>=1&&d(be.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),g.next(),I=p(h,2,"{"),b(g),h.braceNest++,I;case"}":return h.braceNest>0&&h.currentType===2&&d(be.EMPTY_PLACEHOLDER,r(),0),g.next(),I=p(h,3,"}"),h.braceNest--,h.braceNest>0&&b(g),h.inLinked&&h.braceNest===0&&(h.inLinked=!1),I;case"@":return h.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),I=V(g,h)||m(h),h.braceNest=0,I;default:{let re=!0,ee=!0,R=!0;if(E(g))return h.braceNest>0&&d(be.UNTERMINATED_CLOSING_BRACE,r(),0),I=p(h,1,j(g)),h.braceNest=0,h.inLinked=!1,I;if(h.braceNest>0&&(h.currentType===5||h.currentType===6||h.currentType===7))return d(be.UNTERMINATED_CLOSING_BRACE,r(),0),h.braceNest=0,ae(g,h);if(re=x(g,h))return I=p(h,5,at(g)),b(g),I;if(ee=A(g,h))return I=p(h,6,Ee(g)),b(g),I;if(R=k(g,h))return I=p(h,7,pt(g)),b(g),I;if(!re&&!ee&&!R)return I=p(h,13,S(g)),d(be.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,I.value),b(g),I;break}}return I}function V(g,h){const{currentType:I}=h;let B=null;const re=g.currentChar();switch((I===8||I===9||I===12||I===10)&&(re===ft||re===lo)&&d(be.INVALID_LINKED_FORMAT,r(),0),re){case"@":return g.next(),B=p(h,8,"@"),h.inLinked=!0,B;case".":return b(g),g.next(),p(h,9,".");case":":return b(g),g.next(),p(h,10,":");default:return E(g)?(B=p(h,1,j(g)),h.braceNest=0,h.inLinked=!1,B):w(g,h)||L(g,h)?(b(g),V(g,h)):C(g,h)?(b(g),p(h,12,O(g))):y(g,h)?(b(g),re==="{"?Z(g,h)||B:p(h,11,N(g))):(I===8&&d(be.INVALID_LINKED_FORMAT,r(),0),h.braceNest=0,h.inLinked=!1,ae(g,h))}}function ae(g,h){let I={type:14};if(h.braceNest>0)return Z(g,h)||m(h);if(h.inLinked)return V(g,h)||m(h);switch(g.currentChar()){case"{":return Z(g,h)||m(h);case"}":return d(be.UNBALANCED_CLOSING_BRACE,r(),0),g.next(),p(h,3,"}");case"@":return V(g,h)||m(h);default:{if(E(g))return I=p(h,1,j(g)),h.braceNest=0,h.inLinked=!1,I;const{isModulo:re,hasSpace:ee}=M(g);if(re)return ee?p(h,0,Ge(g)):p(h,4,Fe(g));if(Y(g))return p(h,0,Ge(g));break}}return I}function Q(){const{currentType:g,offset:h,startLoc:I,endLoc:B}=l;return l.lastType=g,l.lastOffset=h,l.lastStartLoc=I,l.lastEndLoc=B,l.offset=a(),l.startLoc=r(),n.currentChar()===vo?p(l,14):ae(n,l)}return{nextToken:Q,currentOffset:a,currentPosition:r,context:c}}const Ym="parser",qm=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Zm(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function Jm(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(x,A,k,w,...C){const L=x.currentPosition();if(L.offset+=w,L.column+=w,o){const y=t?Ea(k,L):null,E=en(A,y,{domain:Ym,args:C});o(E)}}function r(x,A,k,w,...C){const L=x.currentPosition();if(L.offset+=w,L.column+=w,n){const y=t?Ea(k,L):null;n(Dm(A,y,C))}}function s(x,A,k){const w={type:x};return t&&(w.start=A,w.end=A,w.loc={start:k,end:k}),w}function i(x,A,k,w){t&&(x.end=A,x.loc&&(x.loc.end=k))}function l(x,A){const k=x.context(),w=s(3,k.offset,k.startLoc);return w.value=A,i(w,x.currentOffset(),x.currentPosition()),w}function c(x,A){const k=x.context(),{lastOffset:w,lastStartLoc:C}=k,L=s(5,w,C);return L.index=parseInt(A,10),x.nextToken(),i(L,x.currentOffset(),x.currentPosition()),L}function u(x,A,k){const w=x.context(),{lastOffset:C,lastStartLoc:L}=w,y=s(4,C,L);return y.key=A,k===!0&&(y.modulo=!0),x.nextToken(),i(y,x.currentOffset(),x.currentPosition()),y}function d(x,A){const k=x.context(),{lastOffset:w,lastStartLoc:C}=k,L=s(9,w,C);return L.value=A.replace(qm,Zm),x.nextToken(),i(L,x.currentOffset(),x.currentPosition()),L}function p(x){const A=x.nextToken(),k=x.context(),{lastOffset:w,lastStartLoc:C}=k,L=s(8,w,C);return A.type!==12?(a(x,be.UNEXPECTED_EMPTY_LINKED_MODIFIER,k.lastStartLoc,0),L.value="",i(L,w,C),{nextConsumeToken:A,node:L}):(A.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,Tt(A)),L.value=A.value||"",i(L,x.currentOffset(),x.currentPosition()),{node:L})}function m(x,A){const k=x.context(),w=s(7,k.offset,k.startLoc);return w.value=A,i(w,x.currentOffset(),x.currentPosition()),w}function _(x){const A=x.context(),k=s(6,A.offset,A.startLoc);let w=x.nextToken();if(w.type===9){const C=p(x);k.modifier=C.node,w=C.nextConsumeToken||x.nextToken()}switch(w.type!==10&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(w)),w=x.nextToken(),w.type===2&&(w=x.nextToken()),w.type){case 11:w.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(w)),k.key=m(x,w.value||"");break;case 5:w.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(w)),k.key=u(x,w.value||"");break;case 6:w.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(w)),k.key=c(x,w.value||"");break;case 7:w.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(w)),k.key=d(x,w.value||"");break;default:{a(x,be.UNEXPECTED_EMPTY_LINKED_KEY,A.lastStartLoc,0);const C=x.context(),L=s(7,C.offset,C.startLoc);return L.value="",i(L,C.offset,C.startLoc),k.key=L,i(k,C.offset,C.startLoc),{nextConsumeToken:w,node:k}}}return i(k,x.currentOffset(),x.currentPosition()),{node:k}}function f(x){const A=x.context(),k=A.currentType===1?x.currentOffset():A.offset,w=A.currentType===1?A.endLoc:A.startLoc,C=s(2,k,w);C.items=[];let L=null,y=null;do{const Y=L||x.nextToken();switch(L=null,Y.type){case 0:Y.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(Y)),C.items.push(l(x,Y.value||""));break;case 6:Y.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(Y)),C.items.push(c(x,Y.value||""));break;case 4:y=!0;break;case 5:Y.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(Y)),C.items.push(u(x,Y.value||"",!!y)),y&&(r(x,Dr.USE_MODULO_SYNTAX,A.lastStartLoc,0,Tt(Y)),y=null);break;case 7:Y.value==null&&a(x,be.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,Tt(Y)),C.items.push(d(x,Y.value||""));break;case 8:{const te=_(x);C.items.push(te.node),L=te.nextConsumeToken||null;break}}}while(A.currentType!==14&&A.currentType!==1);const E=A.currentType===1?A.lastOffset:x.currentOffset(),M=A.currentType===1?A.lastEndLoc:x.currentPosition();return i(C,E,M),C}function b(x,A,k,w){const C=x.context();let L=w.items.length===0;const y=s(1,A,k);y.cases=[],y.cases.push(w);do{const E=f(x);L||(L=E.items.length===0),y.cases.push(E)}while(C.currentType!==14);return L&&a(x,be.MUST_HAVE_MESSAGES_IN_PLURAL,k,0),i(y,x.currentOffset(),x.currentPosition()),y}function $(x){const A=x.context(),{offset:k,startLoc:w}=A,C=f(x);return A.currentType===14?C:b(x,k,w,C)}function P(x){const A=Hm(x,Hl({},e)),k=A.context(),w=s(0,k.offset,k.startLoc);return t&&w.loc&&(w.loc.source=x),w.body=$(A),e.onCacheKey&&(w.cacheKey=e.onCacheKey(x)),k.currentType!==14&&a(A,be.UNEXPECTED_LEXICAL_ANALYSIS,k.lastStartLoc,0,x[k.offset]||""),i(w,A.currentOffset(),A.currentPosition()),w}return{parse:P}}function Tt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Xm(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function Jl(e,t){for(let o=0;oXl(o)),e}function Xl(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(f,b){s.code+=f}function c(f,b=!0){const $=b?n:"";l(a?$+" ".repeat(f):$)}function u(f=!0){const b=++s.indentLevel;f&&c(b)}function d(f=!0){const b=--s.indentLevel;f&&c(b)}function p(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:d,newline:p,helper:f=>`_${f}`,needIndent:()=>s.needIndent}}function ab(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),on(e,t.key),t.modifier?(e.push(", "),on(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function rb(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=Yl(t.mode)?t.mode:"normal",n=Yl(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=nb(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${ql(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),on(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function cb(e,t={}){const o=Hl({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=Jm(o).parse(e);return n?(r&&eb(i),a&&tn(i),{ast:i,code:""}):(Qm(i,o),lb(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Qm(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(io().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(io().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(io().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Ht(e){return Le(e)&&Gr(e)===0&&(Et(e,"b")||Et(e,"body"))}const Xl=["b","body"];function eb(e){return wo(e,Xl)}const Ql=["c","cases"];function tb(e){return wo(e,Ql,[])}const ec=["s","static"];function ob(e){return wo(e,ec)}const tc=["i","items"];function nb(e){return wo(e,tc,[])}const oc=["t","type"];function Gr(e){return wo(e,oc)}const nc=["v","value"];function Ta(e,t){const o=wo(e,nc);if(o!=null)return o;throw In(t)}const ac=["m","modifier"];function ab(e){return wo(e,ac)}const rc=["k","key"];function rb(e){const t=wo(e,rc);if(t)return t;throw In(6)}function wo(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},p[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},p[2]=()=>{p[0](),a++},p[3]=()=>{if(a>0)a--,n=4,p[0]();else{if(a=0,s===void 0||(s=ub(s),s===!1))return!1;p[1]()}};function m(){const _=e[o+1];if(n===5&&_==="'"||n===6&&_==='"')return o++,i="\\"+_,p[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&m())){if(l=cb(r),d=ko[n],c=d[l]||d.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=p[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return t}}const ic=new Map;function db(e,t){return Le(e)?e[t]:null}function gb(e,t){if(!Le(e))return null;let o=ic.get(t);if(o||(o=pb(t),o&&ic.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,fb=e=>"",mb="text",bb=e=>e.length===0?"":wm(e),yb=vm;function lc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function _b(e){const t=Ze(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ze(e.named.count)||Ze(e.named.n))?Ze(e.named.count)?e.named.count:Ze(e.named.n)?e.named.n:t:t}function $b(e,t){t.count||(t.count=e),t.n||(t.n=e)}function vb(e={}){const t=e.locale,o=_b(e),n=Le(e.pluralRules)&&le(t)&&Re(e.pluralRules[t])?e.pluralRules[t]:lc,a=Le(e.pluralRules)&&le(t)&&Re(e.pluralRules[t])?lc:void 0,r=$=>$[n(o,$.length,a)],s=e.list||[],i=$=>s[$],l=e.named||Ee();Ze(e.pluralIndex)&&$b(o,l);const c=$=>l[$];function u($){const L=Re(e.messages)?e.messages($):Le(e.messages)?e.messages[$]:!1;return L||(e.parent?e.parent.message($):fb)}const d=$=>e.modifiers?e.modifiers[$]:hb,p=ve(e.processor)&&Re(e.processor.normalize)?e.processor.normalize:bb,m=ve(e.processor)&&Re(e.processor.interpolate)?e.processor.interpolate:yb,_=ve(e.processor)&&le(e.processor.type)?e.processor.type:mb,b={list:i,named:c,plural:r,linked:($,...L)=>{const[A,x]=L;let k="text",w="";L.length===1?Le(A)?(w=A.modifier||w,k=A.type||k):le(A)&&(w=A||w):L.length===2&&(le(A)&&(w=A||w),le(x)&&(k=x||k));const N=u($)(b),C=k==="vnode"&&Ue(N)&&w?N[0]:N;return w?d(w)(C,k):C},message:u,type:_,interpolate:m,normalize:p,values:st(Ee(),s,l)};return b}let Fn=null;function wb(e){Fn=e}function kb(e,t,o){Fn&&Fn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const xb=Ab("function:translate");function Ab(e){return t=>Fn&&Fn.emit(e,t)}const Sb=Dr.__EXTEND_POINT__,Io=Na(Sb),Cb={FALLBACK_TO_TRANSLATE:Io(),CANNOT_FORMAT_NUMBER:Io(),FALLBACK_TO_NUMBER_FORMAT:Io(),CANNOT_FORMAT_DATE:Io(),FALLBACK_TO_DATE_FORMAT:Io(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Io(),__EXTEND_POINT__:Io()},cc=be.__EXTEND_POINT__,Fo=Na(cc),Mt={INVALID_ARGUMENT:cc,INVALID_DATE_ARGUMENT:Fo(),INVALID_ISO_DATE_ARGUMENT:Fo(),NOT_SUPPORT_NON_STRING_MESSAGE:Fo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Fo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Fo(),NOT_SUPPORT_LOCALE_TYPE:Fo(),__EXTEND_POINT__:Fo()};function Yt(e){return en(e,null,void 0)}function Ur(e,t){return t.locale!=null?uc(t.locale):uc(e.locale)}let jr;function uc(e){if(le(e))return e;if(Re(e)){if(e.resolvedOnce&&jr!=null)return jr;if(e.constructor.name==="Function"){const t=e();if($m(t))throw Yt(Mt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return jr=t}else throw Yt(Mt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Yt(Mt.NOT_SUPPORT_LOCALE_TYPE)}function Lb(e,t,o){return[...new Set([o,...Ue(t)?t:Le(t)?Object.keys(t):le(t)?[t]:[o]])]}function pc(e,t,o){const n=le(o)?o:nn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;Ue(s);)s=dc(r,s,t);const i=Ue(t)||!ve(t)?t:t.default?t.default:null;s=le(i)?[i]:i,Ue(s)&&dc(r,s,!1),a.__localeChainCache.set(n,r)}return r}function dc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Eb(){return{upper:(e,t)=>t==="text"&&le(e)?e.toUpperCase():t==="vnode"&&Le(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&le(e)?e.toLowerCase():t==="vnode"&&Le(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&le(e)?hc(e):t==="vnode"&&Le(e)&&"__v_isVNode"in e?hc(e.children):e}}let fc;function mc(e){fc=e}let bc;function Tb(e){bc=e}let yc;function Mb(e){yc=e}let _c=null;const Ib=e=>{_c=e},Fb=()=>_c;let $c=null;const vc=e=>{$c=e},Rb=()=>$c;let wc=0;function Db(e={}){const t=Re(e.onWarn)?e.onWarn:gm,o=le(e.version)?e.version:Ob,n=le(e.locale)||Re(e.locale)?e.locale:nn,a=Re(n)?nn:n,r=Ue(e.fallbackLocale)||ve(e.fallbackLocale)||le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=ve(e.messages)?e.messages:Wr(a),i=ve(e.datetimeFormats)?e.datetimeFormats:Wr(a),l=ve(e.numberFormats)?e.numberFormats:Wr(a),c=st(Ee(),e.modifiers,Eb()),u=e.pluralRules||Ee(),d=Re(e.missing)?e.missing:null,p=Ae(e.missingWarn)||$o(e.missingWarn)?e.missingWarn:!0,m=Ae(e.fallbackWarn)||$o(e.fallbackWarn)?e.fallbackWarn:!0,_=!!e.fallbackFormat,f=!!e.unresolving,b=Re(e.postTranslation)?e.postTranslation:null,$=ve(e.processor)?e.processor:null,L=Ae(e.warnHtmlMessage)?e.warnHtmlMessage:!0,A=!!e.escapeParameter,x=Re(e.messageCompiler)?e.messageCompiler:fc,k=Re(e.messageResolver)?e.messageResolver:bc||db,w=Re(e.localeFallbacker)?e.localeFallbacker:yc||Lb,N=Le(e.fallbackContext)?e.fallbackContext:void 0,C=e,y=Le(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,E=Le(C.__numberFormatters)?C.__numberFormatters:new Map,I=Le(C.__meta)?C.__meta:{};wc++;const H={version:o,cid:wc,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:d,missingWarn:p,fallbackWarn:m,fallbackFormat:_,unresolving:f,postTranslation:b,processor:$,warnHtmlMessage:L,escapeParameter:A,messageCompiler:x,messageResolver:k,localeFallbacker:w,fallbackContext:N,onWarn:t,__meta:I};return H.datetimeFormats=i,H.numberFormats=l,H.__datetimeFormatters=y,H.__numberFormatters=E,__INTLIFY_PROD_DEVTOOLS__&&kb(H,o,I),H}const Wr=e=>({[e]:Ee()});function Kr(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return le(i)?i:t}else return t}function Rn(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function Bb(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Gb(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nUb(o,e)}function Ub(e,t){const o=eb(t);if(o==null)throw In(0);if(Gr(o)===1){const r=tb(o);return e.plural(r.reduce((s,i)=>[...s,kc(e,i)],[]))}else return kc(e,o)}function kc(e,t){const o=ob(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=nb(t).reduce((a,r)=>[...a,Vr(e,r)],[]);return e.normalize(n)}}function Vr(e,t){const o=Gr(t);switch(o){case 3:return Ta(t,o);case 9:return Ta(t,o);case 4:{const n=t;if(Et(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Et(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw In(o)}case 5:{const n=t;if(Et(n,"i")&&Ze(n.i))return e.interpolate(e.list(n.i));if(Et(n,"index")&&Ze(n.index))return e.interpolate(e.list(n.index));throw In(o)}case 6:{const n=t,a=ab(n),r=rb(n);return e.linked(Vr(e,r),a?Vr(e,a):void 0,e.type)}case 7:return Ta(t,o);case 8:return Ta(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const xc=e=>e;let an=Ee();function Ac(e,t={}){let o=!1;const n=t.onError||Nm;return t.onError=a=>{o=!0,n(a)},{...Xm(e,t),detectError:o}}const jb=(e,t)=>{if(!le(e))throw Yt(Mt.NOT_SUPPORT_NON_STRING_MESSAGE);{Ae(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xc)(e),a=an[n];if(a)return a;const{code:r,detectError:s}=Ac(e,t),i=new Function(`return ${r}`)();return s?i:an[n]=i}};function Wb(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&le(e)){Ae(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xc)(e),a=an[n];if(a)return a;const{ast:r,detectError:s}=Ac(e,{...t,location:!1,jit:!0}),i=zr(r);return s?i:an[n]=i}else{const o=e.cacheKey;if(o){const n=an[o];return n||(an[o]=zr(e))}else return zr(e)}}const Sc=()=>"",St=e=>Re(e);function Cc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=Hr(...t),u=Ae(c.missingWarn)?c.missingWarn:e.missingWarn,d=Ae(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,p=Ae(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,_=le(c.default)||Ae(c.default)?Ae(c.default)?r?l:()=>l:c.default:o?r?l:()=>l:"",f=o||_!=="",b=Ur(e,c);p&&Kb(c);let[$,L,A]=m?[l,b,i[b]||Ee()]:Lc(e,l,b,s,d,u),x=$,k=l;if(!m&&!(le(x)||Ht(x)||St(x))&&f&&(x=_,k=x),!m&&(!(le(x)||Ht(x)||St(x))||!le(L)))return a?Ma:l;let w=!1;const N=()=>{w=!0},C=St(x)?x:Nc(e,l,L,x,k,N);if(w)return x;const y=Hb(e,L,A,c),E=vb(y),I=zb(e,C,E);let H=n?n(I,l):I;if(p&&le(H)&&(H=ym(H)),__INTLIFY_PROD_DEVTOOLS__){const ee={timestamp:Date.now(),key:le(l)?l:St(x)?x.key:"",locale:L||(St(x)?x.locale:""),format:le(x)?x:St(x)?x.source:"",message:H};ee.meta=st({},e.__meta,Fb()||{}),xb(ee)}return H}function Kb(e){Ue(e.list)?e.list=e.list.map(t=>le(t)?Ul(t):t):Le(e.named)&&Object.keys(e.named).forEach(t=>{le(e.named[t])&&(e.named[t]=Ul(e.named[t]))})}function Lc(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let d=Ee(),p,m=null;const _="translate";for(let f=0;fn;return c.locale=o,c.key=t,c}const l=s(n,Vb(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function zb(e,t,o){return t(o)}function Hr(...e){const[t,o,n]=e,a=Ee();if(!le(t)&&!Ze(t)&&!St(t)&&!Ht(t))throw Yt(Mt.INVALID_ARGUMENT);const r=Ze(t)?String(t):(St(t),t);return Ze(o)?a.plural=o:le(o)?a.default=o:ve(o)&&!La(o)?a.named=o:Ue(o)&&(a.list=o),Ze(n)?a.plural=n:le(n)?a.default=n:ve(n)&&st(a,n),[r,a]}function Vb(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>hm(t,o,s)}}function Hb(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,p={locale:t,modifiers:a,pluralRules:r,messages:m=>{let _=s(o,m);if(_==null&&u){const[,,f]=Lc(u,m,t,i,l,c);_=s(f,m)}if(le(_)||Ht(_)){let f=!1;const $=Nc(e,m,t,_,m,()=>{f=!0});return f?Sc:$}else return St(_)?_:Sc}};return e.processor&&(p.processor=e.processor),n.list&&(p.list=n.list),n.named&&(p.named=n.named),Ze(n.plural)&&(p.pluralIndex=n.plural),p}function Pc(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,d]=Yr(...t),p=Ae(u.missingWarn)?u.missingWarn:e.missingWarn;Ae(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,_=Ur(e,u),f=s(e,a,_);if(!le(l)||l==="")return new Intl.DateTimeFormat(_,d).format(c);let b={},$,L=null;const A="datetime format";for(let w=0;w{Oc.includes(l)?s[l]=o[l]:r[l]=o[l]}),le(n)?r.locale=n:ve(n)&&(s=n),ve(a)&&(s=a),[r.key||"",i,r,s]}function Ec(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function Tc(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,d]=qr(...t),p=Ae(u.missingWarn)?u.missingWarn:e.missingWarn;Ae(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,_=Ur(e,u),f=s(e,a,_);if(!le(l)||l==="")return new Intl.NumberFormat(_,d).format(c);let b={},$,L=null;const A="number format";for(let w=0;w{Mc.includes(l)?s[l]=o[l]:r[l]=o[l]}),le(n)?r.locale=n:ve(n)&&(s=n),ve(a)&&(s=a),[r.key||"",i,r,s]}function Ic(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}Qm();/*! + */function ub(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(io().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(io().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(io().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Ht(e){return Le(e)&&Gr(e)===0&&(Et(e,"b")||Et(e,"body"))}const Ql=["b","body"];function pb(e){return wo(e,Ql)}const ec=["c","cases"];function db(e){return wo(e,ec,[])}const tc=["s","static"];function gb(e){return wo(e,tc)}const oc=["i","items"];function hb(e){return wo(e,oc,[])}const nc=["t","type"];function Gr(e){return wo(e,nc)}const ac=["v","value"];function Ta(e,t){const o=wo(e,ac);if(o!=null)return o;throw Mn(t)}const rc=["m","modifier"];function fb(e){return wo(e,rc)}const sc=["k","key"];function mb(e){const t=wo(e,sc);if(t)return t;throw Mn(6)}function wo(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},p[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},p[2]=()=>{p[0](),a++},p[3]=()=>{if(a>0)a--,n=4,p[0]();else{if(a=0,s===void 0||(s=vb(s),s===!1))return!1;p[1]()}};function m(){const _=e[o+1];if(n===5&&_==="'"||n===6&&_==='"')return o++,i="\\"+_,p[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&m())){if(l=$b(r),d=ko[n],c=d[l]||d.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=p[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return t}}const lc=new Map;function kb(e,t){return Le(e)?e[t]:null}function Ab(e,t){if(!Le(e))return null;let o=lc.get(t);if(o||(o=wb(t),o&&lc.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,Sb=e=>"",Cb="text",Lb=e=>e.length===0?"":Tm(e),Pb=Em;function cc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Nb(e){const t=Je(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Je(e.named.count)||Je(e.named.n))?Je(e.named.count)?e.named.count:Je(e.named.n)?e.named.n:t:t}function Ob(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Eb(e={}){const t=e.locale,o=Nb(e),n=Le(e.pluralRules)&&ie(t)&&Be(e.pluralRules[t])?e.pluralRules[t]:cc,a=Le(e.pluralRules)&&ie(t)&&Be(e.pluralRules[t])?cc:void 0,r=$=>$[n(o,$.length,a)],s=e.list||[],i=$=>s[$],l=e.named||Te();Je(e.pluralIndex)&&Ob(o,l);const c=$=>l[$];function u($){const P=Be(e.messages)?e.messages($):Le(e.messages)?e.messages[$]:!1;return P||(e.parent?e.parent.message($):Sb)}const d=$=>e.modifiers?e.modifiers[$]:xb,p=ve(e.processor)&&Be(e.processor.normalize)?e.processor.normalize:Lb,m=ve(e.processor)&&Be(e.processor.interpolate)?e.processor.interpolate:Pb,_=ve(e.processor)&&ie(e.processor.type)?e.processor.type:Cb,b={list:i,named:c,plural:r,linked:($,...P)=>{const[x,A]=P;let k="text",w="";P.length===1?Le(x)?(w=x.modifier||w,k=x.type||k):ie(x)&&(w=x||w):P.length===2&&(ie(x)&&(w=x||w),ie(A)&&(k=A||k));const C=u($)(b),L=k==="vnode"&&We(C)&&w?C[0]:C;return w?d(w)(L,k):L},message:u,type:_,interpolate:m,normalize:p,values:lt(Te(),s,l)};return b}let Fn=null;function Tb(e){Fn=e}function Ib(e,t,o){Fn&&Fn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Mb=Fb("function:translate");function Fb(e){return t=>Fn&&Fn.emit(e,t)}const Rb=Dr.__EXTEND_POINT__,Mo=Pa(Rb),Db={FALLBACK_TO_TRANSLATE:Mo(),CANNOT_FORMAT_NUMBER:Mo(),FALLBACK_TO_NUMBER_FORMAT:Mo(),CANNOT_FORMAT_DATE:Mo(),FALLBACK_TO_DATE_FORMAT:Mo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Mo(),__EXTEND_POINT__:Mo()},uc=be.__EXTEND_POINT__,Fo=Pa(uc),It={INVALID_ARGUMENT:uc,INVALID_DATE_ARGUMENT:Fo(),INVALID_ISO_DATE_ARGUMENT:Fo(),NOT_SUPPORT_NON_STRING_MESSAGE:Fo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Fo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Fo(),NOT_SUPPORT_LOCALE_TYPE:Fo(),__EXTEND_POINT__:Fo()};function Yt(e){return en(e,null,void 0)}function Ur(e,t){return t.locale!=null?pc(t.locale):pc(e.locale)}let jr;function pc(e){if(ie(e))return e;if(Be(e)){if(e.resolvedOnce&&jr!=null)return jr;if(e.constructor.name==="Function"){const t=e();if(Om(t))throw Yt(It.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return jr=t}else throw Yt(It.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Yt(It.NOT_SUPPORT_LOCALE_TYPE)}function Bb(e,t,o){return[...new Set([o,...We(t)?t:Le(t)?Object.keys(t):ie(t)?[t]:[o]])]}function dc(e,t,o){const n=ie(o)?o:nn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;We(s);)s=gc(r,s,t);const i=We(t)||!ve(t)?t:t.default?t.default:null;s=ie(i)?[i]:i,We(s)&&gc(r,s,!1),a.__localeChainCache.set(n,r)}return r}function gc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Wb(){return{upper:(e,t)=>t==="text"&&ie(e)?e.toUpperCase():t==="vnode"&&Le(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&ie(e)?e.toLowerCase():t==="vnode"&&Le(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&ie(e)?fc(e):t==="vnode"&&Le(e)&&"__v_isVNode"in e?fc(e.children):e}}let mc;function bc(e){mc=e}let yc;function zb(e){yc=e}let _c;function Kb(e){_c=e}let $c=null;const Vb=e=>{$c=e},Hb=()=>$c;let vc=null;const wc=e=>{vc=e},Yb=()=>vc;let kc=0;function qb(e={}){const t=Be(e.onWarn)?e.onWarn:Am,o=ie(e.version)?e.version:jb,n=ie(e.locale)||Be(e.locale)?e.locale:nn,a=Be(n)?nn:n,r=We(e.fallbackLocale)||ve(e.fallbackLocale)||ie(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=ve(e.messages)?e.messages:Wr(a),i=ve(e.datetimeFormats)?e.datetimeFormats:Wr(a),l=ve(e.numberFormats)?e.numberFormats:Wr(a),c=lt(Te(),e.modifiers,Wb()),u=e.pluralRules||Te(),d=Be(e.missing)?e.missing:null,p=xe(e.missingWarn)||$o(e.missingWarn)?e.missingWarn:!0,m=xe(e.fallbackWarn)||$o(e.fallbackWarn)?e.fallbackWarn:!0,_=!!e.fallbackFormat,f=!!e.unresolving,b=Be(e.postTranslation)?e.postTranslation:null,$=ve(e.processor)?e.processor:null,P=xe(e.warnHtmlMessage)?e.warnHtmlMessage:!0,x=!!e.escapeParameter,A=Be(e.messageCompiler)?e.messageCompiler:mc,k=Be(e.messageResolver)?e.messageResolver:yc||kb,w=Be(e.localeFallbacker)?e.localeFallbacker:_c||Bb,C=Le(e.fallbackContext)?e.fallbackContext:void 0,L=e,y=Le(L.__datetimeFormatters)?L.__datetimeFormatters:new Map,E=Le(L.__numberFormatters)?L.__numberFormatters:new Map,M=Le(L.__meta)?L.__meta:{};kc++;const Y={version:o,cid:kc,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:d,missingWarn:p,fallbackWarn:m,fallbackFormat:_,unresolving:f,postTranslation:b,processor:$,warnHtmlMessage:P,escapeParameter:x,messageCompiler:A,messageResolver:k,localeFallbacker:w,fallbackContext:C,onWarn:t,__meta:M};return Y.datetimeFormats=i,Y.numberFormats=l,Y.__datetimeFormatters=y,Y.__numberFormatters=E,__INTLIFY_PROD_DEVTOOLS__&&Ib(Y,o,M),Y}const Wr=e=>({[e]:Te()});function zr(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return ie(i)?i:t}else return t}function Rn(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function Zb(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Jb(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nXb(o,e)}function Xb(e,t){const o=pb(t);if(o==null)throw Mn(0);if(Gr(o)===1){const r=db(o);return e.plural(r.reduce((s,i)=>[...s,Ac(e,i)],[]))}else return Ac(e,o)}function Ac(e,t){const o=gb(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=hb(t).reduce((a,r)=>[...a,Vr(e,r)],[]);return e.normalize(n)}}function Vr(e,t){const o=Gr(t);switch(o){case 3:return Ta(t,o);case 9:return Ta(t,o);case 4:{const n=t;if(Et(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Et(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Mn(o)}case 5:{const n=t;if(Et(n,"i")&&Je(n.i))return e.interpolate(e.list(n.i));if(Et(n,"index")&&Je(n.index))return e.interpolate(e.list(n.index));throw Mn(o)}case 6:{const n=t,a=fb(n),r=mb(n);return e.linked(Vr(e,r),a?Vr(e,a):void 0,e.type)}case 7:return Ta(t,o);case 8:return Ta(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const xc=e=>e;let an=Te();function Sc(e,t={}){let o=!1;const n=t.onError||Gm;return t.onError=a=>{o=!0,n(a)},{...cb(e,t),detectError:o}}const Qb=(e,t)=>{if(!ie(e))throw Yt(It.NOT_SUPPORT_NON_STRING_MESSAGE);{xe(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xc)(e),a=an[n];if(a)return a;const{code:r,detectError:s}=Sc(e,t),i=new Function(`return ${r}`)();return s?i:an[n]=i}};function e0(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&ie(e)){xe(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||xc)(e),a=an[n];if(a)return a;const{ast:r,detectError:s}=Sc(e,{...t,location:!1,jit:!0}),i=Kr(r);return s?i:an[n]=i}else{const o=e.cacheKey;if(o){const n=an[o];return n||(an[o]=Kr(e))}else return Kr(e)}}const Cc=()=>"",Ct=e=>Be(e);function Lc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=Hr(...t),u=xe(c.missingWarn)?c.missingWarn:e.missingWarn,d=xe(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,p=xe(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,_=ie(c.default)||xe(c.default)?xe(c.default)?r?l:()=>l:c.default:o?r?l:()=>l:"",f=o||_!=="",b=Ur(e,c);p&&t0(c);let[$,P,x]=m?[l,b,i[b]||Te()]:Pc(e,l,b,s,d,u),A=$,k=l;if(!m&&!(ie(A)||Ht(A)||Ct(A))&&f&&(A=_,k=A),!m&&(!(ie(A)||Ht(A)||Ct(A))||!ie(P)))return a?Ia:l;let w=!1;const C=()=>{w=!0},L=Ct(A)?A:Nc(e,l,P,A,k,C);if(w)return A;const y=a0(e,P,x,c),E=Eb(y),M=o0(e,L,E);let Y=n?n(M,l):M;if(p&&ie(Y)&&(Y=Pm(Y)),__INTLIFY_PROD_DEVTOOLS__){const te={timestamp:Date.now(),key:ie(l)?l:Ct(A)?A.key:"",locale:P||(Ct(A)?A.locale:""),format:ie(A)?A:Ct(A)?A.source:"",message:Y};te.meta=lt({},e.__meta,Hb()||{}),Mb(te)}return Y}function t0(e){We(e.list)?e.list=e.list.map(t=>ie(t)?jl(t):t):Le(e.named)&&Object.keys(e.named).forEach(t=>{ie(e.named[t])&&(e.named[t]=jl(e.named[t]))})}function Pc(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let d=Te(),p,m=null;const _="translate";for(let f=0;fn;return c.locale=o,c.key=t,c}const l=s(n,n0(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function o0(e,t,o){return t(o)}function Hr(...e){const[t,o,n]=e,a=Te();if(!ie(t)&&!Je(t)&&!Ct(t)&&!Ht(t))throw Yt(It.INVALID_ARGUMENT);const r=Je(t)?String(t):(Ct(t),t);return Je(o)?a.plural=o:ie(o)?a.default=o:ve(o)&&!La(o)?a.named=o:We(o)&&(a.list=o),Je(n)?a.plural=n:ie(n)?a.default=n:ve(n)&<(a,n),[r,a]}function n0(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>xm(t,o,s)}}function a0(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,p={locale:t,modifiers:a,pluralRules:r,messages:m=>{let _=s(o,m);if(_==null&&u){const[,,f]=Pc(u,m,t,i,l,c);_=s(f,m)}if(ie(_)||Ht(_)){let f=!1;const $=Nc(e,m,t,_,m,()=>{f=!0});return f?Cc:$}else return Ct(_)?_:Cc}};return e.processor&&(p.processor=e.processor),n.list&&(p.list=n.list),n.named&&(p.named=n.named),Je(n.plural)&&(p.pluralIndex=n.plural),p}function Oc(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,d]=Yr(...t),p=xe(u.missingWarn)?u.missingWarn:e.missingWarn;xe(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,_=Ur(e,u),f=s(e,a,_);if(!ie(l)||l==="")return new Intl.DateTimeFormat(_,d).format(c);let b={},$,P=null;const x="datetime format";for(let w=0;w{Ec.includes(l)?s[l]=o[l]:r[l]=o[l]}),ie(n)?r.locale=n:ve(n)&&(s=n),ve(a)&&(s=a),[r.key||"",i,r,s]}function Tc(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function Ic(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,d]=qr(...t),p=xe(u.missingWarn)?u.missingWarn:e.missingWarn;xe(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,_=Ur(e,u),f=s(e,a,_);if(!ie(l)||l==="")return new Intl.NumberFormat(_,d).format(c);let b={},$,P=null;const x="number format";for(let w=0;w{Mc.includes(l)?s[l]=o[l]:r[l]=o[l]}),ie(n)?r.locale=n:ve(n)&&(s=n),ve(a)&&(s=a),[r.key||"",i,r,s]}function Fc(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}ub();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Yb="9.14.5";function qb(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(io().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(io().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(io().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(io().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(io().__INTLIFY_PROD_DEVTOOLS__=!1)}const Zb=Cb.__EXTEND_POINT__,co=Na(Zb);co(),co(),co(),co(),co(),co(),co(),co(),co();const Fc=Mt.__EXTEND_POINT__,bt=Na(Fc),Xe={UNEXPECTED_RETURN_TYPE:Fc,INVALID_ARGUMENT:bt(),MUST_BE_CALL_SETUP_TOP:bt(),NOT_INSTALLED:bt(),NOT_AVAILABLE_IN_LEGACY_MODE:bt(),REQUIRED_VALUE:bt(),INVALID_VALUE:bt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:bt(),NOT_INSTALLED_WITH_PROVIDE:bt(),UNEXPECTED_ERROR:bt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:bt(),BRIDGE_SUPPORT_VUE_2_ONLY:bt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:bt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:bt(),__EXTEND_POINT__:bt()};function ot(e,...t){return en(e,null,void 0)}const Zr=_o("__translateVNode"),Jr=_o("__datetimeParts"),Xr=_o("__numberParts"),Rc=_o("__setPluralRules"),Dc=_o("__injectWithOption"),Qr=_o("__dispose");function Dn(e){if(!Le(e)||Ht(e))return e;for(const t in e)if(Et(e,t))if(!t.includes("."))Le(e[t])&&Dn(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Ee(),Oa(c,s[l])):Oa(c,s)}else le(i)&&Oa(JSON.parse(i),s)}),a==null&&r)for(const i in s)Et(s,i)&&Dn(s[i]);return s}function Bc(e){return e.type}function Gc(e,t,o){let n=Le(t.messages)?t.messages:Ee();"__i18nGlobal"in o&&(n=Ia(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Le(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Le(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function Uc(e){return Oe(Sn,null,e,0)}const jc="__INTLIFY_META__",Wc=()=>[],Jb=()=>!1;let Kc=0;function zc(e){return(t,o,n,a)=>e(o,n,ro()||void 0,a)}const Xb=()=>{const e=ro();let t=null;return e&&(t=Bc(e)[jc])?{[jc]:t}:null};function es(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=Ca?re:zo,i=!!e.translateExistCompatible;let l=Ae(e.inheritLocale)?e.inheritLocale:!0;const c=s(o&&l?o.locale.value:le(e.locale)?e.locale:nn),u=s(o&&l?o.fallbackLocale.value:le(e.fallbackLocale)||Ue(e.fallbackLocale)||ve(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),d=s(Ia(c.value,e)),p=s(ve(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=s(ve(e.numberFormats)?e.numberFormats:{[c.value]:{}});let _=o?o.missingWarn:Ae(e.missingWarn)||$o(e.missingWarn)?e.missingWarn:!0,f=o?o.fallbackWarn:Ae(e.fallbackWarn)||$o(e.fallbackWarn)?e.fallbackWarn:!0,b=o?o.fallbackRoot:Ae(e.fallbackRoot)?e.fallbackRoot:!0,$=!!e.fallbackFormat,L=Re(e.missing)?e.missing:null,A=Re(e.missing)?zc(e.missing):null,x=Re(e.postTranslation)?e.postTranslation:null,k=o?o.warnHtmlMessage:Ae(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter;const N=o?o.modifiers:ve(e.modifiers)?e.modifiers:{};let C=e.pluralRules||o&&o.pluralRules,y;y=(()=>{a&&vc(null);const D={version:Yb,locale:c.value,fallbackLocale:u.value,messages:d.value,modifiers:N,pluralRules:C,missing:A===null?void 0:A,missingWarn:_,fallbackWarn:f,fallbackFormat:$,unresolving:!0,postTranslation:x===null?void 0:x,warnHtmlMessage:k,escapeParameter:w,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};D.datetimeFormats=p.value,D.numberFormats=m.value,D.__datetimeFormatters=ve(y)?y.__datetimeFormatters:void 0,D.__numberFormatters=ve(y)?y.__numberFormatters:void 0;const z=Db(D);return a&&vc(z),z})(),Rn(y,c.value,u.value);function I(){return[c.value,u.value,d.value,p.value,m.value]}const H=K({get:()=>c.value,set:D=>{c.value=D,y.locale=c.value}}),ee=K({get:()=>u.value,set:D=>{u.value=D,y.fallbackLocale=u.value,Rn(y,c.value,D)}}),q=K(()=>d.value),R=K(()=>p.value),U=K(()=>m.value);function J(){return Re(x)?x:null}function ie(D){x=D,y.postTranslation=D}function ae(){return L}function oe(D){D!==null&&(A=zc(D)),L=D,y.missing=A}const ue=(D,z,he,we,Te,nt)=>{I();let Qe;try{__INTLIFY_PROD_DEVTOOLS__,a||(y.fallbackContext=o?Rb():void 0),Qe=D(y)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(y.fallbackContext=void 0)}if(he!=="translate exists"&&Ze(Qe)&&Qe===Ma||he==="translate exists"&&!Qe){const[T,j]=z();return o&&b?we(o):Te(T)}else{if(nt(Qe))return Qe;throw ot(Xe.UNEXPECTED_RETURN_TYPE)}};function pe(...D){return ue(z=>Reflect.apply(Cc,null,[z,...D]),()=>Hr(...D),"translate",z=>Reflect.apply(z.t,z,[...D]),z=>z,z=>le(z))}function Ke(...D){const[z,he,we]=D;if(we&&!Le(we))throw ot(Xe.INVALID_ARGUMENT);return pe(z,he,st({resolvedMessage:!0},we||{}))}function ct(...D){return ue(z=>Reflect.apply(Pc,null,[z,...D]),()=>Yr(...D),"datetime format",z=>Reflect.apply(z.d,z,[...D]),()=>gc,z=>le(z))}function Ct(...D){return ue(z=>Reflect.apply(Tc,null,[z,...D]),()=>qr(...D),"number format",z=>Reflect.apply(z.n,z,[...D]),()=>gc,z=>le(z))}function De(D){return D.map(z=>le(z)||Ze(z)||Ae(z)?Uc(String(z)):z)}const ut={normalize:De,interpolate:D=>D,type:"vnode"};function wt(...D){return ue(z=>{let he;const we=z;try{we.processor=ut,he=Reflect.apply(Cc,null,[we,...D])}finally{we.processor=null}return he},()=>Hr(...D),"translate",z=>z[Zr](...D),z=>[Uc(z)],z=>Ue(z))}function ze(...D){return ue(z=>Reflect.apply(Tc,null,[z,...D]),()=>qr(...D),"number format",z=>z[Xr](...D),Wc,z=>le(z)||Ue(z))}function qt(...D){return ue(z=>Reflect.apply(Pc,null,[z,...D]),()=>Yr(...D),"datetime format",z=>z[Jr](...D),Wc,z=>le(z)||Ue(z))}function S(D){C=D,y.pluralRules=C}function O(D,z){return ue(()=>{if(!D)return!1;const he=le(z)?z:c.value,we=Y(he),Te=y.messageResolver(we,D);return i?Te!=null:Ht(Te)||St(Te)||le(Te)},()=>[D],"translate exists",he=>Reflect.apply(he.te,he,[D,z]),Jb,he=>Ae(he))}function P(D){let z=null;const he=pc(y,u.value,c.value);for(let we=0;we{l&&(c.value=D,y.locale=D,Rn(y,c.value,u.value))}),We(o.fallbackLocale,D=>{l&&(u.value=D,y.fallbackLocale=D,Rn(y,c.value,u.value))}));const Q={id:Kc,locale:H,fallbackLocale:ee,get inheritLocale(){return l},set inheritLocale(D){l=D,D&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,Rn(y,c.value,u.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:q,get modifiers(){return N},get pluralRules(){return C||{}},get isGlobal(){return a},get missingWarn(){return _},set missingWarn(D){_=D,y.missingWarn=_},get fallbackWarn(){return f},set fallbackWarn(D){f=D,y.fallbackWarn=f},get fallbackRoot(){return b},set fallbackRoot(D){b=D},get fallbackFormat(){return $},set fallbackFormat(D){$=D,y.fallbackFormat=$},get warnHtmlMessage(){return k},set warnHtmlMessage(D){k=D,y.warnHtmlMessage=D},get escapeParameter(){return w},set escapeParameter(D){w=D,y.escapeParameter=D},t:pe,getLocaleMessage:Y,setLocaleMessage:V,mergeLocaleMessage:te,getPostTranslationHandler:J,setPostTranslationHandler:ie,getMissingHandler:ae,setMissingHandler:oe,[Rc]:S};return Q.datetimeFormats=R,Q.numberFormats=U,Q.rt=Ke,Q.te=O,Q.tm=W,Q.d=ct,Q.n=Ct,Q.getDateTimeFormat=X,Q.setDateTimeFormat=g,Q.mergeDateTimeFormat=h,Q.getNumberFormat=M,Q.setNumberFormat=B,Q.mergeNumberFormat=ne,Q[Dc]=n,Q[Zr]=wt,Q[Jr]=qt,Q[Xr]=ze,Q}function Qb(e){const t=le(e.locale)?e.locale:nn,o=le(e.fallbackLocale)||Ue(e.fallbackLocale)||ve(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Re(e.missing)?e.missing:void 0,a=Ae(e.silentTranslationWarn)||$o(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=Ae(e.silentFallbackWarn)||$o(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=Ae(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=ve(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Re(e.postTranslation)?e.postTranslation:void 0,d=le(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,p=!!e.escapeParameterHtml,m=Ae(e.sync)?e.sync:!0;let _=e.messages;if(ve(e.sharedMessages)){const w=e.sharedMessages;_=Object.keys(w).reduce((C,y)=>{const E=C[y]||(C[y]={});return st(E,w[y]),C},_||{})}const{__i18n:f,__root:b,__injectWithOption:$}=e,L=e.datetimeFormats,A=e.numberFormats,x=e.flatJson,k=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:_,flatJson:x,datetimeFormats:L,numberFormats:A,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:k,__i18n:f,__root:b,__injectWithOption:$}}function ts(e={},t){{const o=es(Qb(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return Ae(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=Ae(r)?!r:r},get silentFallbackWarn(){return Ae(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=Ae(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,c={};let u=null,d=null;if(!le(s))throw ot(Xe.INVALID_ARGUMENT);const p=s;return le(i)?c.locale=i:Ue(i)?u=i:ve(i)&&(d=i),Ue(l)?u=l:ve(l)&&(d=l),Reflect.apply(o.t,o,[p,u||d||{},c])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,d=null;if(!le(s))throw ot(Xe.INVALID_ARGUMENT);const p=s;return le(i)?c.locale=i:Ze(i)?c.plural=i:Ue(i)?u=i:ve(i)&&(d=i),le(l)?c.locale=l:Ue(l)?u=l:ve(l)&&(d=l),Reflect.apply(o.t,o,[p,u||d||{},c])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const os={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function e0({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===fe?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ee())}function Vc(e){return fe}const Hc=vn({name:"i18n-t",props:st({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ze(e)||!isNaN(e)}},os),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||lt({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(d=>d!=="_"),s=Ee();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=le(e.plural)?+e.plural:e.plural);const i=e0(t,r),l=a[Zr](e.keypath,i,s),c=st(Ee(),n),u=le(e.tag)||Le(e.tag)?e.tag:Vc();return ml(u,c,l)}}});function t0(e){return Ue(e)&&!le(e[0])}function Yc(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Ee();e.locale&&(s.locale=e.locale),le(e.format)?s.key=e.format:Le(e.format)&&(le(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((p,m)=>o.includes(m)?st(Ee(),p,{[m]:e.format[m]}):p,Ee()));const l=n(e.value,s,i);let c=[s.key];Ue(l)?c=l.map((p,m)=>{const _=a[p.type],f=_?_({[p.type]:p.value,index:m,parts:l}):[p.value];return t0(f)&&(f[0].key=`${p.type}-${m}`),f}):le(l)&&(c=[l]);const u=st(Ee(),r),d=le(e.tag)||Le(e.tag)?e.tag:Vc();return ml(d,u,c)}}const qc=vn({name:"i18n-n",props:st({value:{type:Number,required:!0},format:{type:[String,Object]}},os),setup(e,t){const o=e.i18n||lt({useScope:e.scope,__useComponent:!0});return Yc(e,t,Mc,(...n)=>o[Xr](...n))}}),Zc=vn({name:"i18n-d",props:st({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},os),setup(e,t){const o=e.i18n||lt({useScope:e.scope,__useComponent:!0});return Yc(e,t,Oc,(...n)=>o[Jr](...n))}});function o0(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function n0(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw ot(Xe.UNEXPECTED_ERROR);const u=o0(e,i.$),d=Jc(c);return[Reflect.apply(u.t,u,[...Xc(d)]),u]};return{created:(s,i)=>{const[l,c]=t(i);Ca&&e.global===c&&(s.__i18nWatcher=We(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{Ca&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=Jc(i);s.textContent=Reflect.apply(l.t,l,[...Xc(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function Jc(e){if(le(e))return{path:e};if(ve(e)){if(!("path"in e))throw ot(Xe.REQUIRED_VALUE,"path");return e}else throw ot(Xe.INVALID_VALUE)}function Xc(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return le(o)&&(s.locale=o),Ze(a)&&(s.plural=a),Ze(r)&&(s.plural=r),[t,i,s]}function a0(e,t,...o){const n=ve(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ae(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Hc.name,"I18nT"].forEach(s=>e.component(s,Hc)),[qc.name,"I18nN"].forEach(s=>e.component(s,qc)),[Zc.name,"I18nD"].forEach(s=>e.component(s,Zc))),e.directive("t",n0(t))}function r0(e,t,o){return{beforeCreate(){const n=ro();if(!n)throw ot(Xe.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Qc(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=ts(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Qc(e,a);else{this.$i18n=ts({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Gc(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=ro();if(!n)throw ot(Xe.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function Qc(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Rc](t.pluralizationRules||e.pluralizationRules);const o=Ia(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const s0=_o("global-vue-i18n");function i0(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ae(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ae(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=l0(e,o),l=_o("");function c(p){return r.get(p)||null}function u(p,m){r.set(p,m)}function d(p){r.delete(p)}{const p={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(m,..._){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,p),ve(_[0])){const $=_[0];p.__composerExtend=$.__composerExtend,p.__vueI18nExtend=$.__vueI18nExtend}let f=null;!o&&n&&(f=b0(m,p.global)),__VUE_I18N_FULL_INSTALL__&&a0(m,p,..._),__VUE_I18N_LEGACY_API__&&o&&m.mixin(r0(i,i.__composer,p));const b=m.unmount;m.unmount=()=>{f&&f(),p.dispose(),b()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:d};return p}}function lt(e={}){const t=ro();if(t==null)throw ot(Xe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ot(Xe.NOT_INSTALLED);const o=c0(t),n=p0(o),a=Bc(t),r=u0(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw ot(Xe.NOT_AVAILABLE_IN_LEGACY_MODE);return f0(t,r,n,e)}if(r==="global")return Gc(n,e,a),n;if(r==="parent"){let l=d0(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=st({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=es(l),s.__composerExtend&&(i[Qr]=s.__composerExtend(i)),h0(s,t,i),s.__setInstance(t,i)}return i}function l0(e,t,o){const n=Ja();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>ts(e)):n.run(()=>es(e));if(a==null)throw ot(Xe.UNEXPECTED_ERROR);return[n,a]}}function c0(e){{const t=xe(e.isCE?s0:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ot(e.isCE?Xe.NOT_INSTALLED_WITH_PROVIDE:Xe.UNEXPECTED_ERROR);return t}}function u0(e,t){return La(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function p0(e){return e.mode==="composition"?e.global:e.global.__composer}function d0(e,t,o=!1){let n=null;const a=t.root;let r=g0(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[Dc]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function g0(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function h0(e,t,o){jt(()=>{},t),fa(()=>{const n=o;e.__deleteInstance(t);const a=n[Qr];a&&(a(),delete n[Qr])},t)}function f0(e,t,o,n={}){const a=t==="local",r=zo(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ot(Xe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=Ae(n.inheritLocale)?n.inheritLocale:!le(n.locale),i=re(!a||s?o.locale.value:le(n.locale)?n.locale:nn),l=re(!a||s?o.fallbackLocale.value:le(n.fallbackLocale)||Ue(n.fallbackLocale)||ve(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=re(Ia(i.value,n)),u=re(ve(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),d=re(ve(n.numberFormats)?n.numberFormats:{[i.value]:{}}),p=a?o.missingWarn:Ae(n.missingWarn)||$o(n.missingWarn)?n.missingWarn:!0,m=a?o.fallbackWarn:Ae(n.fallbackWarn)||$o(n.fallbackWarn)?n.fallbackWarn:!0,_=a?o.fallbackRoot:Ae(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,b=Re(n.missing)?n.missing:null,$=Re(n.postTranslation)?n.postTranslation:null,L=a?o.warnHtmlMessage:Ae(n.warnHtmlMessage)?n.warnHtmlMessage:!0,A=!!n.escapeParameter,x=a?o.modifiers:ve(n.modifiers)?n.modifiers:{},k=n.pluralRules||a&&o.pluralRules;function w(){return[i.value,l.value,c.value,u.value,d.value]}const N=K({get:()=>r.value?r.value.locale.value:i.value,set:P=>{r.value&&(r.value.locale.value=P),i.value=P}}),C=K({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:P=>{r.value&&(r.value.fallbackLocale.value=P),l.value=P}}),y=K(()=>r.value?r.value.messages.value:c.value),E=K(()=>u.value),I=K(()=>d.value);function H(){return r.value?r.value.getPostTranslationHandler():$}function ee(P){r.value&&r.value.setPostTranslationHandler(P)}function q(){return r.value?r.value.getMissingHandler():b}function R(P){r.value&&r.value.setMissingHandler(P)}function U(P){return w(),P()}function J(...P){return r.value?U(()=>Reflect.apply(r.value.t,null,[...P])):U(()=>"")}function ie(...P){return r.value?Reflect.apply(r.value.rt,null,[...P]):""}function ae(...P){return r.value?U(()=>Reflect.apply(r.value.d,null,[...P])):U(()=>"")}function oe(...P){return r.value?U(()=>Reflect.apply(r.value.n,null,[...P])):U(()=>"")}function ue(P){return r.value?r.value.tm(P):{}}function pe(P,W){return r.value?r.value.te(P,W):!1}function Ke(P){return r.value?r.value.getLocaleMessage(P):{}}function ct(P,W){r.value&&(r.value.setLocaleMessage(P,W),c.value[P]=W)}function Ct(P,W){r.value&&r.value.mergeLocaleMessage(P,W)}function De(P){return r.value?r.value.getDateTimeFormat(P):{}}function je(P,W){r.value&&(r.value.setDateTimeFormat(P,W),u.value[P]=W)}function ut(P,W){r.value&&r.value.mergeDateTimeFormat(P,W)}function wt(P){return r.value?r.value.getNumberFormat(P):{}}function ze(P,W){r.value&&(r.value.setNumberFormat(P,W),d.value[P]=W)}function qt(P,W){r.value&&r.value.mergeNumberFormat(P,W)}const S={get id(){return r.value?r.value.id:-1},locale:N,fallbackLocale:C,messages:y,datetimeFormats:E,numberFormats:I,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(P){r.value&&(r.value.inheritLocale=P)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:x},get pluralRules(){return r.value?r.value.pluralRules:k},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:p},set missingWarn(P){r.value&&(r.value.missingWarn=P)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(P){r.value&&(r.value.missingWarn=P)},get fallbackRoot(){return r.value?r.value.fallbackRoot:_},set fallbackRoot(P){r.value&&(r.value.fallbackRoot=P)},get fallbackFormat(){return r.value?r.value.fallbackFormat:f},set fallbackFormat(P){r.value&&(r.value.fallbackFormat=P)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:L},set warnHtmlMessage(P){r.value&&(r.value.warnHtmlMessage=P)},get escapeParameter(){return r.value?r.value.escapeParameter:A},set escapeParameter(P){r.value&&(r.value.escapeParameter=P)},t:J,getPostTranslationHandler:H,setPostTranslationHandler:ee,getMissingHandler:q,setMissingHandler:R,rt:ie,d:ae,n:oe,tm:ue,te:pe,getLocaleMessage:Ke,setLocaleMessage:ct,mergeLocaleMessage:Ct,getDateTimeFormat:De,setDateTimeFormat:je,mergeDateTimeFormat:ut,getNumberFormat:wt,setNumberFormat:ze,mergeNumberFormat:qt};function O(P){P.locale.value=i.value,P.fallbackLocale.value=l.value,Object.keys(c.value).forEach(W=>{P.mergeLocaleMessage(W,c.value[W])}),Object.keys(u.value).forEach(W=>{P.mergeDateTimeFormat(W,u.value[W])}),Object.keys(d.value).forEach(W=>{P.mergeNumberFormat(W,d.value[W])}),P.escapeParameter=A,P.fallbackFormat=f,P.fallbackRoot=_,P.fallbackWarn=m,P.missingWarn=p,P.warnHtmlMessage=L}return Ti(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ot(Xe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const P=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=P.locale.value,l.value=P.fallbackLocale.value,c.value=P.messages.value,u.value=P.datetimeFormats.value,d.value=P.numberFormats.value):a&&O(P)}),S}const m0=["locale","fallbackLocale","availableLocales"],eu=["t","rt","d","n","tm","te"];function b0(e,t){const o=Object.create(null);return m0.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw ot(Xe.UNEXPECTED_ERROR);const s=Ge(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,eu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw ot(Xe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,eu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(qb(),__INTLIFY_JIT_COMPILATION__?mc(Wb):mc(jb),Tb(gb),Mb(pc),__INTLIFY_PROD_DEVTOOLS__){const e=io();e.__INTLIFY__=!0,wb(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const y0=Object.assign({"./locales/ar/aria.json":Og,"./locales/ar/buttons.json":Eg,"./locales/ar/detail.json":Tg,"./locales/ar/gospel.json":Mg,"./locales/ar/legend.json":Ig,"./locales/ar/messages.json":Fg,"./locales/ar/options.json":Rg,"./locales/ar/popup.json":Dg,"./locales/ar/prayerLaps.json":Bg,"./locales/ar/regions.json":Gg,"./locales/ar/search.json":Ug,"./locales/ar/studio.json":jg,"./locales/ar/tabs.json":Wg,"./locales/de/aria.json":Kg,"./locales/de/buttons.json":zg,"./locales/de/detail.json":Vg,"./locales/de/gospel.json":Hg,"./locales/de/legend.json":Yg,"./locales/de/messages.json":qg,"./locales/de/options.json":Zg,"./locales/de/popup.json":Jg,"./locales/de/prayerLaps.json":Xg,"./locales/de/regions.json":Qg,"./locales/de/search.json":eh,"./locales/de/studio.json":th,"./locales/de/tabs.json":oh,"./locales/en/aria.json":nh,"./locales/en/buttons.json":ah,"./locales/en/detail.json":rh,"./locales/en/gospel.json":sh,"./locales/en/legend.json":ih,"./locales/en/messages.json":lh,"./locales/en/options.json":ch,"./locales/en/popup.json":uh,"./locales/en/prayerLaps.json":ph,"./locales/en/regions.json":dh,"./locales/en/search.json":gh,"./locales/en/studio.json":hh,"./locales/en/tabs.json":fh,"./locales/es/aria.json":mh,"./locales/es/buttons.json":bh,"./locales/es/detail.json":yh,"./locales/es/gospel.json":_h,"./locales/es/legend.json":$h,"./locales/es/messages.json":vh,"./locales/es/options.json":wh,"./locales/es/popup.json":kh,"./locales/es/prayerLaps.json":xh,"./locales/es/regions.json":Ah,"./locales/es/search.json":Sh,"./locales/es/studio.json":Ch,"./locales/es/tabs.json":Lh,"./locales/fr/aria.json":Nh,"./locales/fr/buttons.json":Ph,"./locales/fr/detail.json":Oh,"./locales/fr/gospel.json":Eh,"./locales/fr/legend.json":Th,"./locales/fr/messages.json":Mh,"./locales/fr/options.json":Ih,"./locales/fr/popup.json":Fh,"./locales/fr/prayerLaps.json":Rh,"./locales/fr/regions.json":Dh,"./locales/fr/search.json":Bh,"./locales/fr/studio.json":Gh,"./locales/fr/tabs.json":Uh,"./locales/hi/aria.json":jh,"./locales/hi/buttons.json":Wh,"./locales/hi/detail.json":Kh,"./locales/hi/gospel.json":zh,"./locales/hi/legend.json":Vh,"./locales/hi/messages.json":Hh,"./locales/hi/options.json":Yh,"./locales/hi/popup.json":qh,"./locales/hi/prayerLaps.json":Zh,"./locales/hi/regions.json":Jh,"./locales/hi/search.json":Xh,"./locales/hi/studio.json":Qh,"./locales/hi/tabs.json":ef,"./locales/it/aria.json":tf,"./locales/it/buttons.json":of,"./locales/it/detail.json":nf,"./locales/it/gospel.json":af,"./locales/it/legend.json":rf,"./locales/it/messages.json":sf,"./locales/it/options.json":lf,"./locales/it/popup.json":cf,"./locales/it/prayerLaps.json":uf,"./locales/it/regions.json":pf,"./locales/it/search.json":df,"./locales/it/studio.json":gf,"./locales/it/tabs.json":hf,"./locales/pt/aria.json":ff,"./locales/pt/buttons.json":mf,"./locales/pt/detail.json":bf,"./locales/pt/gospel.json":yf,"./locales/pt/legend.json":_f,"./locales/pt/messages.json":$f,"./locales/pt/options.json":vf,"./locales/pt/popup.json":wf,"./locales/pt/prayerLaps.json":kf,"./locales/pt/regions.json":xf,"./locales/pt/search.json":Af,"./locales/pt/studio.json":Sf,"./locales/pt/tabs.json":Cf,"./locales/ro/aria.json":Lf,"./locales/ro/buttons.json":Nf,"./locales/ro/detail.json":Pf,"./locales/ro/gospel.json":Of,"./locales/ro/legend.json":Ef,"./locales/ro/messages.json":Tf,"./locales/ro/options.json":Mf,"./locales/ro/popup.json":If,"./locales/ro/prayerLaps.json":Ff,"./locales/ro/regions.json":Rf,"./locales/ro/search.json":Df,"./locales/ro/studio.json":Bf,"./locales/ro/tabs.json":Gf,"./locales/ru/aria.json":Uf,"./locales/ru/buttons.json":jf,"./locales/ru/detail.json":Wf,"./locales/ru/gospel.json":Kf,"./locales/ru/legend.json":zf,"./locales/ru/messages.json":Vf,"./locales/ru/options.json":Hf,"./locales/ru/popup.json":Yf,"./locales/ru/prayerLaps.json":qf,"./locales/ru/regions.json":Zf,"./locales/ru/search.json":Jf,"./locales/ru/studio.json":Xf,"./locales/ru/tabs.json":Qf,"./locales/zh/aria.json":em,"./locales/zh/buttons.json":tm,"./locales/zh/detail.json":om,"./locales/zh/gospel.json":nm,"./locales/zh/legend.json":am,"./locales/zh/messages.json":rm,"./locales/zh/options.json":sm,"./locales/zh/popup.json":im,"./locales/zh/prayerLaps.json":lm,"./locales/zh/regions.json":cm,"./locales/zh/search.json":um,"./locales/zh/studio.json":pm,"./locales/zh/tabs.json":dm}),Bn={};for(const[e,t]of Object.entries(y0)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Bn[n]??(Bn[n]={}),Bn[n][a]=t}const ns=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],_0=new Set(["ar"]);function $0(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(ns.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ns.includes(o)?o:"en"}function v0(){const e=$0();try{_0.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return i0({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Bn,missingWarn:!1,fallbackWarn:!1})}function ft(e,t){const o=t||w0(e);jt(()=>{var i;const n=ro();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function w0(e){let t=0;for(let o=0;ot[C]||C,n=()=>!1;try{const C=lt();o=C.t,n=C.te}catch{}const a=xe("uiStore",null),r=xe("profileConfig",null),s=K(()=>(a==null?void 0:a.theme)==="dark"),i=K(()=>{var E;const C=(E=r==null?void 0:r.value)==null?void 0:E.pinHintLabel;if(C)return C;const y="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):y}catch{return y}}),l=re(!1),c=re(null);let u=null,d=null,p=null,m=null,_=null,f=null,b=[],$=null,L=null;function A(){l.value=!1}function x(C,y){var I;let E=C==null?void 0:C.parentElement;for(let H=0;E&&H<12;H++,E=E.parentElement){if(E===y||(I=E.classList)!=null&&I.contains("profile-loader"))return null;let ee="";try{ee=getComputedStyle(E).position}catch{}if(ee&&ee!=="static"){const q=E.getBoundingClientRect();if(q.height>=120&&q.width>=160)return E}}return null}function k(C){var E;const y=(E=m==null?void 0:m.querySelector)==null?void 0:E.call(m,".legend-mobile-sheet");if(!y)return 1/0;if(_&&f!==y){try{_.disconnect()}catch{}_=null}if(!_&&typeof ResizeObserver<"u")try{_=new ResizeObserver(()=>w()),_.observe(y),f=y}catch{_=null}try{const I=y.getBoundingClientRect();return!(I.height>16)||!(I.width>16)||C.right<=I.left||I.right<=C.left?1/0:I.top}catch{return 1/0}}function w(){const C=c.value;if(C)try{C.style.removeProperty("--pin-hint-lift");const y=C.getBoundingClientRect();if(!y.height)return;const E=Math.min(window.innerHeight,k(y)),I=Math.round(y.bottom-E);I>0&&C.style.setProperty("--pin-hint-lift",I+8+"px")}catch{}}function N(C){const y=c.value;if(!y||!(C!=null&&C.querySelector))return;let E=0;try{const H=C.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(H){const ee=H.getBoundingClientRect(),q=y.parentElement,R=q?q.getBoundingClientRect():null;if(E=R?Math.max(ee.height||0,R.bottom-ee.top):ee.height||0,L!==H&&typeof ResizeObserver<"u"){if(p)try{p.disconnect()}catch{}L=H,p=new ResizeObserver(()=>N(C)),p.observe(H)}}}catch{}const I=Math.min(Math.max(Math.ceil(E)||20,20),72);y.style.setProperty("--pin-hint-attrib-clear",I+"px"),w()}return jt(()=>{var I,H,ee;const C=ro(),y=(ee=(H=(I=C==null?void 0:C.proxy)==null?void 0:I.$el)==null?void 0:H.getRootNode)==null?void 0:ee.call(H);if(!y||typeof y.querySelector!="function")return;m=y;let E=0;u=setInterval(()=>{E++;const q=y.querySelector("canvas");q?(clearInterval(u),u=null,l.value=!0,mo(()=>{const R=x(q,y),U=c.value;if(R&&U&&U.parentElement!==R)try{R.appendChild(U),d=R}catch{}N(y),w(),b.push(setTimeout(w,1200),setTimeout(w,3e3),setTimeout(w,6e3));try{const J=c.value&&c.value.offsetParent||null;if(J&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}$=new ResizeObserver(()=>w()),$.observe(J)}}catch{}})):E>40&&(clearInterval(u),u=null)},300)}),Wt(()=>{var C;if(u&&clearInterval(u),p){try{p.disconnect()}catch{}p=null}if(L=null,$){try{$.disconnect()}catch{}$=null}if(_){try{_.disconnect()}catch{}_=null}f=null;for(const y of b)clearTimeout(y);if(b=[],m=null,d&&((C=c.value)==null?void 0:C.parentElement)===d)try{d.removeChild(c.value)}catch{}d=null}),ft(` + */const r0="9.14.5";function s0(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(io().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(io().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(io().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(io().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(io().__INTLIFY_PROD_DEVTOOLS__=!1)}const i0=Db.__EXTEND_POINT__,co=Pa(i0);co(),co(),co(),co(),co(),co(),co(),co(),co();const Rc=It.__EXTEND_POINT__,yt=Pa(Rc),Qe={UNEXPECTED_RETURN_TYPE:Rc,INVALID_ARGUMENT:yt(),MUST_BE_CALL_SETUP_TOP:yt(),NOT_INSTALLED:yt(),NOT_AVAILABLE_IN_LEGACY_MODE:yt(),REQUIRED_VALUE:yt(),INVALID_VALUE:yt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:yt(),NOT_INSTALLED_WITH_PROVIDE:yt(),UNEXPECTED_ERROR:yt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:yt(),BRIDGE_SUPPORT_VUE_2_ONLY:yt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:yt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:yt(),__EXTEND_POINT__:yt()};function nt(e,...t){return en(e,null,void 0)}const Zr=_o("__translateVNode"),Jr=_o("__datetimeParts"),Xr=_o("__numberParts"),Dc=_o("__setPluralRules"),Bc=_o("__injectWithOption"),Qr=_o("__dispose");function Dn(e){if(!Le(e)||Ht(e))return e;for(const t in e)if(Et(e,t))if(!t.includes("."))Le(e[t])&&Dn(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Te(),Oa(c,s[l])):Oa(c,s)}else ie(i)&&Oa(JSON.parse(i),s)}),a==null&&r)for(const i in s)Et(s,i)&&Dn(s[i]);return s}function Gc(e){return e.type}function Uc(e,t,o){let n=Le(t.messages)?t.messages:Te();"__i18nGlobal"in o&&(n=Ma(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Le(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Le(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function jc(e){return Oe(Sn,null,e,0)}const Wc="__INTLIFY_META__",zc=()=>[],l0=()=>!1;let Kc=0;function Vc(e){return(t,o,n,a)=>e(o,n,ro()||void 0,a)}const c0=()=>{const e=ro();let t=null;return e&&(t=Gc(e)[Wc])?{[Wc]:t}:null};function es(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=Ca?se:Ko,i=!!e.translateExistCompatible;let l=xe(e.inheritLocale)?e.inheritLocale:!0;const c=s(o&&l?o.locale.value:ie(e.locale)?e.locale:nn),u=s(o&&l?o.fallbackLocale.value:ie(e.fallbackLocale)||We(e.fallbackLocale)||ve(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),d=s(Ma(c.value,e)),p=s(ve(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=s(ve(e.numberFormats)?e.numberFormats:{[c.value]:{}});let _=o?o.missingWarn:xe(e.missingWarn)||$o(e.missingWarn)?e.missingWarn:!0,f=o?o.fallbackWarn:xe(e.fallbackWarn)||$o(e.fallbackWarn)?e.fallbackWarn:!0,b=o?o.fallbackRoot:xe(e.fallbackRoot)?e.fallbackRoot:!0,$=!!e.fallbackFormat,P=Be(e.missing)?e.missing:null,x=Be(e.missing)?Vc(e.missing):null,A=Be(e.postTranslation)?e.postTranslation:null,k=o?o.warnHtmlMessage:xe(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter;const C=o?o.modifiers:ve(e.modifiers)?e.modifiers:{};let L=e.pluralRules||o&&o.pluralRules,y;y=(()=>{a&&wc(null);const R={version:r0,locale:c.value,fallbackLocale:u.value,messages:d.value,modifiers:C,pluralRules:L,missing:x===null?void 0:x,missingWarn:_,fallbackWarn:f,fallbackFormat:$,unresolving:!0,postTranslation:A===null?void 0:A,warnHtmlMessage:k,escapeParameter:w,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};R.datetimeFormats=p.value,R.numberFormats=m.value,R.__datetimeFormatters=ve(y)?y.__datetimeFormatters:void 0,R.__numberFormatters=ve(y)?y.__numberFormatters:void 0;const K=qb(R);return a&&wc(K),K})(),Rn(y,c.value,u.value);function M(){return[c.value,u.value,d.value,p.value,m.value]}const Y=W({get:()=>c.value,set:R=>{c.value=R,y.locale=c.value}}),te=W({get:()=>u.value,set:R=>{u.value=R,y.fallbackLocale=u.value,Rn(y,c.value,R)}}),he=W(()=>d.value),ne=W(()=>p.value),q=W(()=>m.value);function D(){return Be(A)?A:null}function z(R){A=R,y.postTranslation=R}function J(){return P}function X(R){R!==null&&(x=Vc(R)),P=R,y.missing=x}const le=(R,K,ge,we,Ie,rt)=>{M();let et;try{__INTLIFY_PROD_DEVTOOLS__,a||(y.fallbackContext=o?Yb():void 0),et=R(y)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(y.fallbackContext=void 0)}if(ge!=="translate exists"&&Je(et)&&et===Ia||ge==="translate exists"&&!et){const[T,U]=K();return o&&b?we(o):Ie(T)}else{if(rt(et))return et;throw nt(Qe.UNEXPECTED_RETURN_TYPE)}};function ue(...R){return le(K=>Reflect.apply(Lc,null,[K,...R]),()=>Hr(...R),"translate",K=>Reflect.apply(K.t,K,[...R]),K=>K,K=>ie(K))}function Fe(...R){const[K,ge,we]=R;if(we&&!Le(we))throw nt(Qe.INVALID_ARGUMENT);return ue(K,ge,lt({resolvedMessage:!0},we||{}))}function Ge(...R){return le(K=>Reflect.apply(Oc,null,[K,...R]),()=>Yr(...R),"datetime format",K=>Reflect.apply(K.d,K,[...R]),()=>hc,K=>ie(K))}function at(...R){return le(K=>Reflect.apply(Ic,null,[K,...R]),()=>qr(...R),"number format",K=>Reflect.apply(K.n,K,[...R]),()=>hc,K=>ie(K))}function Ee(R){return R.map(K=>ie(K)||Je(K)||xe(K)?jc(String(K)):K)}const pt={normalize:Ee,interpolate:R=>R,type:"vnode"};function kt(...R){return le(K=>{let ge;const we=K;try{we.processor=pt,ge=Reflect.apply(Lc,null,[we,...R])}finally{we.processor=null}return ge},()=>Hr(...R),"translate",K=>K[Zr](...R),K=>[jc(K)],K=>We(K))}function Ve(...R){return le(K=>Reflect.apply(Ic,null,[K,...R]),()=>qr(...R),"number format",K=>K[Xr](...R),zc,K=>ie(K)||We(K))}function qt(...R){return le(K=>Reflect.apply(Oc,null,[K,...R]),()=>Yr(...R),"datetime format",K=>K[Jr](...R),zc,K=>ie(K)||We(K))}function S(R){L=R,y.pluralRules=L}function O(R,K){return le(()=>{if(!R)return!1;const ge=ie(K)?K:c.value,we=Z(ge),Ie=y.messageResolver(we,R);return i?Ie!=null:Ht(Ie)||Ct(Ie)||ie(Ie)},()=>[R],"translate exists",ge=>Reflect.apply(ge.te,ge,[R,K]),l0,ge=>xe(ge))}function N(R){let K=null;const ge=dc(y,u.value,c.value);for(let we=0;we{l&&(c.value=R,y.locale=R,Rn(y,c.value,u.value))}),Ke(o.fallbackLocale,R=>{l&&(u.value=R,y.fallbackLocale=R,Rn(y,c.value,u.value))}));const ee={id:Kc,locale:Y,fallbackLocale:te,get inheritLocale(){return l},set inheritLocale(R){l=R,R&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,Rn(y,c.value,u.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:he,get modifiers(){return C},get pluralRules(){return L||{}},get isGlobal(){return a},get missingWarn(){return _},set missingWarn(R){_=R,y.missingWarn=_},get fallbackWarn(){return f},set fallbackWarn(R){f=R,y.fallbackWarn=f},get fallbackRoot(){return b},set fallbackRoot(R){b=R},get fallbackFormat(){return $},set fallbackFormat(R){$=R,y.fallbackFormat=$},get warnHtmlMessage(){return k},set warnHtmlMessage(R){k=R,y.warnHtmlMessage=R},get escapeParameter(){return w},set escapeParameter(R){w=R,y.escapeParameter=R},t:ue,getLocaleMessage:Z,setLocaleMessage:V,mergeLocaleMessage:ae,getPostTranslationHandler:D,setPostTranslationHandler:z,getMissingHandler:J,setMissingHandler:X,[Dc]:S};return ee.datetimeFormats=ne,ee.numberFormats=q,ee.rt=Fe,ee.te=O,ee.tm=j,ee.d=Ge,ee.n=at,ee.getDateTimeFormat=Q,ee.setDateTimeFormat=g,ee.mergeDateTimeFormat=h,ee.getNumberFormat=I,ee.setNumberFormat=B,ee.mergeNumberFormat=re,ee[Bc]=n,ee[Zr]=kt,ee[Jr]=qt,ee[Xr]=Ve,ee}function u0(e){const t=ie(e.locale)?e.locale:nn,o=ie(e.fallbackLocale)||We(e.fallbackLocale)||ve(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Be(e.missing)?e.missing:void 0,a=xe(e.silentTranslationWarn)||$o(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=xe(e.silentFallbackWarn)||$o(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=xe(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=ve(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Be(e.postTranslation)?e.postTranslation:void 0,d=ie(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,p=!!e.escapeParameterHtml,m=xe(e.sync)?e.sync:!0;let _=e.messages;if(ve(e.sharedMessages)){const w=e.sharedMessages;_=Object.keys(w).reduce((L,y)=>{const E=L[y]||(L[y]={});return lt(E,w[y]),L},_||{})}const{__i18n:f,__root:b,__injectWithOption:$}=e,P=e.datetimeFormats,x=e.numberFormats,A=e.flatJson,k=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:_,flatJson:A,datetimeFormats:P,numberFormats:x,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:k,__i18n:f,__root:b,__injectWithOption:$}}function ts(e={},t){{const o=es(u0(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return xe(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=xe(r)?!r:r},get silentFallbackWarn(){return xe(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=xe(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,c={};let u=null,d=null;if(!ie(s))throw nt(Qe.INVALID_ARGUMENT);const p=s;return ie(i)?c.locale=i:We(i)?u=i:ve(i)&&(d=i),We(l)?u=l:ve(l)&&(d=l),Reflect.apply(o.t,o,[p,u||d||{},c])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,d=null;if(!ie(s))throw nt(Qe.INVALID_ARGUMENT);const p=s;return ie(i)?c.locale=i:Je(i)?c.plural=i:We(i)?u=i:ve(i)&&(d=i),ie(l)?c.locale=l:We(l)?u=l:ve(l)&&(d=l),Reflect.apply(o.t,o,[p,u||d||{},c])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const os={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function p0({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===fe?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Te())}function Hc(e){return fe}const Yc=vn({name:"i18n-t",props:lt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Je(e)||!isNaN(e)}},os),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||ct({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(d=>d!=="_"),s=Te();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=ie(e.plural)?+e.plural:e.plural);const i=p0(t,r),l=a[Zr](e.keypath,i,s),c=lt(Te(),n),u=ie(e.tag)||Le(e.tag)?e.tag:Hc();return ml(u,c,l)}}});function d0(e){return We(e)&&!ie(e[0])}function qc(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Te();e.locale&&(s.locale=e.locale),ie(e.format)?s.key=e.format:Le(e.format)&&(ie(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((p,m)=>o.includes(m)?lt(Te(),p,{[m]:e.format[m]}):p,Te()));const l=n(e.value,s,i);let c=[s.key];We(l)?c=l.map((p,m)=>{const _=a[p.type],f=_?_({[p.type]:p.value,index:m,parts:l}):[p.value];return d0(f)&&(f[0].key=`${p.type}-${m}`),f}):ie(l)&&(c=[l]);const u=lt(Te(),r),d=ie(e.tag)||Le(e.tag)?e.tag:Hc();return ml(d,u,c)}}const Zc=vn({name:"i18n-n",props:lt({value:{type:Number,required:!0},format:{type:[String,Object]}},os),setup(e,t){const o=e.i18n||ct({useScope:e.scope,__useComponent:!0});return qc(e,t,Mc,(...n)=>o[Xr](...n))}}),Jc=vn({name:"i18n-d",props:lt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},os),setup(e,t){const o=e.i18n||ct({useScope:e.scope,__useComponent:!0});return qc(e,t,Ec,(...n)=>o[Jr](...n))}});function g0(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function h0(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw nt(Qe.UNEXPECTED_ERROR);const u=g0(e,i.$),d=Xc(c);return[Reflect.apply(u.t,u,[...Qc(d)]),u]};return{created:(s,i)=>{const[l,c]=t(i);Ca&&e.global===c&&(s.__i18nWatcher=Ke(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{Ca&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=Xc(i);s.textContent=Reflect.apply(l.t,l,[...Qc(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function Xc(e){if(ie(e))return{path:e};if(ve(e)){if(!("path"in e))throw nt(Qe.REQUIRED_VALUE,"path");return e}else throw nt(Qe.INVALID_VALUE)}function Qc(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return ie(o)&&(s.locale=o),Je(a)&&(s.plural=a),Je(r)&&(s.plural=r),[t,i,s]}function f0(e,t,...o){const n=ve(o[0])?o[0]:{},a=!!n.useI18nComponentName;(xe(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Yc.name,"I18nT"].forEach(s=>e.component(s,Yc)),[Zc.name,"I18nN"].forEach(s=>e.component(s,Zc)),[Jc.name,"I18nD"].forEach(s=>e.component(s,Jc))),e.directive("t",h0(t))}function m0(e,t,o){return{beforeCreate(){const n=ro();if(!n)throw nt(Qe.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=eu(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=ts(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=eu(e,a);else{this.$i18n=ts({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Uc(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=ro();if(!n)throw nt(Qe.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function eu(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Dc](t.pluralizationRules||e.pluralizationRules);const o=Ma(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const b0=_o("global-vue-i18n");function y0(e={},t){const o=__VUE_I18N_LEGACY_API__&&xe(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=xe(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=_0(e,o),l=_o("");function c(p){return r.get(p)||null}function u(p,m){r.set(p,m)}function d(p){r.delete(p)}{const p={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(m,..._){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,p),ve(_[0])){const $=_[0];p.__composerExtend=$.__composerExtend,p.__vueI18nExtend=$.__vueI18nExtend}let f=null;!o&&n&&(f=L0(m,p.global)),__VUE_I18N_FULL_INSTALL__&&f0(m,p,..._),__VUE_I18N_LEGACY_API__&&o&&m.mixin(m0(i,i.__composer,p));const b=m.unmount;m.unmount=()=>{f&&f(),p.dispose(),b()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:d};return p}}function ct(e={}){const t=ro();if(t==null)throw nt(Qe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw nt(Qe.NOT_INSTALLED);const o=$0(t),n=w0(o),a=Gc(t),r=v0(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw nt(Qe.NOT_AVAILABLE_IN_LEGACY_MODE);return S0(t,r,n,e)}if(r==="global")return Uc(n,e,a),n;if(r==="parent"){let l=k0(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=lt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=es(l),s.__composerExtend&&(i[Qr]=s.__composerExtend(i)),x0(s,t,i),s.__setInstance(t,i)}return i}function _0(e,t,o){const n=Ja();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>ts(e)):n.run(()=>es(e));if(a==null)throw nt(Qe.UNEXPECTED_ERROR);return[n,a]}}function $0(e){{const t=Ae(e.isCE?b0:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw nt(e.isCE?Qe.NOT_INSTALLED_WITH_PROVIDE:Qe.UNEXPECTED_ERROR);return t}}function v0(e,t){return La(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function w0(e){return e.mode==="composition"?e.global:e.global.__composer}function k0(e,t,o=!1){let n=null;const a=t.root;let r=A0(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[Bc]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function A0(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function x0(e,t,o){jt(()=>{},t),fa(()=>{const n=o;e.__deleteInstance(t);const a=n[Qr];a&&(a(),delete n[Qr])},t)}function S0(e,t,o,n={}){const a=t==="local",r=Ko(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw nt(Qe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=xe(n.inheritLocale)?n.inheritLocale:!ie(n.locale),i=se(!a||s?o.locale.value:ie(n.locale)?n.locale:nn),l=se(!a||s?o.fallbackLocale.value:ie(n.fallbackLocale)||We(n.fallbackLocale)||ve(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=se(Ma(i.value,n)),u=se(ve(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),d=se(ve(n.numberFormats)?n.numberFormats:{[i.value]:{}}),p=a?o.missingWarn:xe(n.missingWarn)||$o(n.missingWarn)?n.missingWarn:!0,m=a?o.fallbackWarn:xe(n.fallbackWarn)||$o(n.fallbackWarn)?n.fallbackWarn:!0,_=a?o.fallbackRoot:xe(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,b=Be(n.missing)?n.missing:null,$=Be(n.postTranslation)?n.postTranslation:null,P=a?o.warnHtmlMessage:xe(n.warnHtmlMessage)?n.warnHtmlMessage:!0,x=!!n.escapeParameter,A=a?o.modifiers:ve(n.modifiers)?n.modifiers:{},k=n.pluralRules||a&&o.pluralRules;function w(){return[i.value,l.value,c.value,u.value,d.value]}const C=W({get:()=>r.value?r.value.locale.value:i.value,set:N=>{r.value&&(r.value.locale.value=N),i.value=N}}),L=W({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:N=>{r.value&&(r.value.fallbackLocale.value=N),l.value=N}}),y=W(()=>r.value?r.value.messages.value:c.value),E=W(()=>u.value),M=W(()=>d.value);function Y(){return r.value?r.value.getPostTranslationHandler():$}function te(N){r.value&&r.value.setPostTranslationHandler(N)}function he(){return r.value?r.value.getMissingHandler():b}function ne(N){r.value&&r.value.setMissingHandler(N)}function q(N){return w(),N()}function D(...N){return r.value?q(()=>Reflect.apply(r.value.t,null,[...N])):q(()=>"")}function z(...N){return r.value?Reflect.apply(r.value.rt,null,[...N]):""}function J(...N){return r.value?q(()=>Reflect.apply(r.value.d,null,[...N])):q(()=>"")}function X(...N){return r.value?q(()=>Reflect.apply(r.value.n,null,[...N])):q(()=>"")}function le(N){return r.value?r.value.tm(N):{}}function ue(N,j){return r.value?r.value.te(N,j):!1}function Fe(N){return r.value?r.value.getLocaleMessage(N):{}}function Ge(N,j){r.value&&(r.value.setLocaleMessage(N,j),c.value[N]=j)}function at(N,j){r.value&&r.value.mergeLocaleMessage(N,j)}function Ee(N){return r.value?r.value.getDateTimeFormat(N):{}}function ze(N,j){r.value&&(r.value.setDateTimeFormat(N,j),u.value[N]=j)}function pt(N,j){r.value&&r.value.mergeDateTimeFormat(N,j)}function kt(N){return r.value?r.value.getNumberFormat(N):{}}function Ve(N,j){r.value&&(r.value.setNumberFormat(N,j),d.value[N]=j)}function qt(N,j){r.value&&r.value.mergeNumberFormat(N,j)}const S={get id(){return r.value?r.value.id:-1},locale:C,fallbackLocale:L,messages:y,datetimeFormats:E,numberFormats:M,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(N){r.value&&(r.value.inheritLocale=N)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:A},get pluralRules(){return r.value?r.value.pluralRules:k},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:p},set missingWarn(N){r.value&&(r.value.missingWarn=N)},get fallbackWarn(){return r.value?r.value.fallbackWarn:m},set fallbackWarn(N){r.value&&(r.value.missingWarn=N)},get fallbackRoot(){return r.value?r.value.fallbackRoot:_},set fallbackRoot(N){r.value&&(r.value.fallbackRoot=N)},get fallbackFormat(){return r.value?r.value.fallbackFormat:f},set fallbackFormat(N){r.value&&(r.value.fallbackFormat=N)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:P},set warnHtmlMessage(N){r.value&&(r.value.warnHtmlMessage=N)},get escapeParameter(){return r.value?r.value.escapeParameter:x},set escapeParameter(N){r.value&&(r.value.escapeParameter=N)},t:D,getPostTranslationHandler:Y,setPostTranslationHandler:te,getMissingHandler:he,setMissingHandler:ne,rt:z,d:J,n:X,tm:le,te:ue,getLocaleMessage:Fe,setLocaleMessage:Ge,mergeLocaleMessage:at,getDateTimeFormat:Ee,setDateTimeFormat:ze,mergeDateTimeFormat:pt,getNumberFormat:kt,setNumberFormat:Ve,mergeNumberFormat:qt};function O(N){N.locale.value=i.value,N.fallbackLocale.value=l.value,Object.keys(c.value).forEach(j=>{N.mergeLocaleMessage(j,c.value[j])}),Object.keys(u.value).forEach(j=>{N.mergeDateTimeFormat(j,u.value[j])}),Object.keys(d.value).forEach(j=>{N.mergeNumberFormat(j,d.value[j])}),N.escapeParameter=x,N.fallbackFormat=f,N.fallbackRoot=_,N.fallbackWarn=m,N.missingWarn=p,N.warnHtmlMessage=P}return Ti(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw nt(Qe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const N=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=N.locale.value,l.value=N.fallbackLocale.value,c.value=N.messages.value,u.value=N.datetimeFormats.value,d.value=N.numberFormats.value):a&&O(N)}),S}const C0=["locale","fallbackLocale","availableLocales"],tu=["t","rt","d","n","tm","te"];function L0(e,t){const o=Object.create(null);return C0.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw nt(Qe.UNEXPECTED_ERROR);const s=je(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,tu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw nt(Qe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,tu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(s0(),__INTLIFY_JIT_COMPILATION__?bc(e0):bc(Qb),zb(Ab),Kb(dc),__INTLIFY_PROD_DEVTOOLS__){const e=io();e.__INTLIFY__=!0,Tb(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const P0=Object.assign({"./locales/ar/aria.json":Eg,"./locales/ar/buttons.json":Tg,"./locales/ar/connectivity.json":Ig,"./locales/ar/detail.json":Mg,"./locales/ar/gospel.json":Fg,"./locales/ar/legend.json":Rg,"./locales/ar/messages.json":Dg,"./locales/ar/options.json":Bg,"./locales/ar/popup.json":Gg,"./locales/ar/prayerLaps.json":Ug,"./locales/ar/regions.json":jg,"./locales/ar/search.json":Wg,"./locales/ar/studio.json":zg,"./locales/ar/tabs.json":Kg,"./locales/de/aria.json":Vg,"./locales/de/buttons.json":Hg,"./locales/de/connectivity.json":Yg,"./locales/de/detail.json":qg,"./locales/de/gospel.json":Zg,"./locales/de/legend.json":Jg,"./locales/de/messages.json":Xg,"./locales/de/options.json":Qg,"./locales/de/popup.json":eh,"./locales/de/prayerLaps.json":th,"./locales/de/regions.json":oh,"./locales/de/search.json":nh,"./locales/de/studio.json":ah,"./locales/de/tabs.json":rh,"./locales/en/aria.json":sh,"./locales/en/buttons.json":ih,"./locales/en/connectivity.json":Gl,"./locales/en/detail.json":lh,"./locales/en/gospel.json":ch,"./locales/en/legend.json":uh,"./locales/en/messages.json":ph,"./locales/en/options.json":dh,"./locales/en/popup.json":gh,"./locales/en/prayerLaps.json":hh,"./locales/en/regions.json":fh,"./locales/en/search.json":mh,"./locales/en/studio.json":bh,"./locales/en/tabs.json":yh,"./locales/es/aria.json":_h,"./locales/es/buttons.json":$h,"./locales/es/connectivity.json":vh,"./locales/es/detail.json":wh,"./locales/es/gospel.json":kh,"./locales/es/legend.json":Ah,"./locales/es/messages.json":xh,"./locales/es/options.json":Sh,"./locales/es/popup.json":Ch,"./locales/es/prayerLaps.json":Lh,"./locales/es/regions.json":Ph,"./locales/es/search.json":Nh,"./locales/es/studio.json":Oh,"./locales/es/tabs.json":Eh,"./locales/fr/aria.json":Th,"./locales/fr/buttons.json":Ih,"./locales/fr/connectivity.json":Mh,"./locales/fr/detail.json":Fh,"./locales/fr/gospel.json":Rh,"./locales/fr/legend.json":Dh,"./locales/fr/messages.json":Bh,"./locales/fr/options.json":Gh,"./locales/fr/popup.json":Uh,"./locales/fr/prayerLaps.json":jh,"./locales/fr/regions.json":Wh,"./locales/fr/search.json":zh,"./locales/fr/studio.json":Kh,"./locales/fr/tabs.json":Vh,"./locales/hi/aria.json":Hh,"./locales/hi/buttons.json":Yh,"./locales/hi/connectivity.json":qh,"./locales/hi/detail.json":Zh,"./locales/hi/gospel.json":Jh,"./locales/hi/legend.json":Xh,"./locales/hi/messages.json":Qh,"./locales/hi/options.json":ef,"./locales/hi/popup.json":tf,"./locales/hi/prayerLaps.json":of,"./locales/hi/regions.json":nf,"./locales/hi/search.json":af,"./locales/hi/studio.json":rf,"./locales/hi/tabs.json":sf,"./locales/it/aria.json":lf,"./locales/it/buttons.json":cf,"./locales/it/connectivity.json":uf,"./locales/it/detail.json":pf,"./locales/it/gospel.json":df,"./locales/it/legend.json":gf,"./locales/it/messages.json":hf,"./locales/it/options.json":ff,"./locales/it/popup.json":mf,"./locales/it/prayerLaps.json":bf,"./locales/it/regions.json":yf,"./locales/it/search.json":_f,"./locales/it/studio.json":$f,"./locales/it/tabs.json":vf,"./locales/pt/aria.json":wf,"./locales/pt/buttons.json":kf,"./locales/pt/connectivity.json":Af,"./locales/pt/detail.json":xf,"./locales/pt/gospel.json":Sf,"./locales/pt/legend.json":Cf,"./locales/pt/messages.json":Lf,"./locales/pt/options.json":Pf,"./locales/pt/popup.json":Nf,"./locales/pt/prayerLaps.json":Of,"./locales/pt/regions.json":Ef,"./locales/pt/search.json":Tf,"./locales/pt/studio.json":If,"./locales/pt/tabs.json":Mf,"./locales/ro/aria.json":Ff,"./locales/ro/buttons.json":Rf,"./locales/ro/connectivity.json":Df,"./locales/ro/detail.json":Bf,"./locales/ro/gospel.json":Gf,"./locales/ro/legend.json":Uf,"./locales/ro/messages.json":jf,"./locales/ro/options.json":Wf,"./locales/ro/popup.json":zf,"./locales/ro/prayerLaps.json":Kf,"./locales/ro/regions.json":Vf,"./locales/ro/search.json":Hf,"./locales/ro/studio.json":Yf,"./locales/ro/tabs.json":qf,"./locales/ru/aria.json":Zf,"./locales/ru/buttons.json":Jf,"./locales/ru/connectivity.json":Xf,"./locales/ru/detail.json":Qf,"./locales/ru/gospel.json":em,"./locales/ru/legend.json":tm,"./locales/ru/messages.json":om,"./locales/ru/options.json":nm,"./locales/ru/popup.json":am,"./locales/ru/prayerLaps.json":rm,"./locales/ru/regions.json":sm,"./locales/ru/search.json":im,"./locales/ru/studio.json":lm,"./locales/ru/tabs.json":cm,"./locales/zh/aria.json":um,"./locales/zh/buttons.json":pm,"./locales/zh/connectivity.json":dm,"./locales/zh/detail.json":gm,"./locales/zh/gospel.json":hm,"./locales/zh/legend.json":fm,"./locales/zh/messages.json":mm,"./locales/zh/options.json":bm,"./locales/zh/popup.json":ym,"./locales/zh/prayerLaps.json":_m,"./locales/zh/regions.json":$m,"./locales/zh/search.json":vm,"./locales/zh/studio.json":wm,"./locales/zh/tabs.json":km}),Bn={};for(const[e,t]of Object.entries(P0)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Bn[n]??(Bn[n]={}),Bn[n][a]=t}const ns=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],N0=new Set(["ar"]);function O0(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(ns.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ns.includes(o)?o:"en"}function E0(){const e=O0();try{N0.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return y0({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Bn,missingWarn:!1,fallbackWarn:!1})}function mt(e,t){const o=t||T0(e);jt(()=>{var i;const n=ro();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function T0(e){let t=0;for(let o=0;ot[L]||L,n=()=>!1;try{const L=ct();o=L.t,n=L.te}catch{}const a=Ae("uiStore",null),r=Ae("profileConfig",null),s=W(()=>(a==null?void 0:a.theme)==="dark"),i=W(()=>{var E;const L=(E=r==null?void 0:r.value)==null?void 0:E.pinHintLabel;if(L)return L;const y="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):y}catch{return y}}),l=se(!1),c=se(null);let u=null,d=null,p=null,m=null,_=null,f=null,b=[],$=null,P=null;function x(){l.value=!1}function A(L,y){var M;let E=L==null?void 0:L.parentElement;for(let Y=0;E&&Y<12;Y++,E=E.parentElement){if(E===y||(M=E.classList)!=null&&M.contains("profile-loader"))return null;let te="";try{te=getComputedStyle(E).position}catch{}if(te&&te!=="static"){const he=E.getBoundingClientRect();if(he.height>=120&&he.width>=160)return E}}return null}function k(L){var E;const y=(E=m==null?void 0:m.querySelector)==null?void 0:E.call(m,".legend-mobile-sheet");if(!y)return 1/0;if(_&&f!==y){try{_.disconnect()}catch{}_=null}if(!_&&typeof ResizeObserver<"u")try{_=new ResizeObserver(()=>w()),_.observe(y),f=y}catch{_=null}try{const M=y.getBoundingClientRect();return!(M.height>16)||!(M.width>16)||L.right<=M.left||M.right<=L.left?1/0:M.top}catch{return 1/0}}function w(){const L=c.value;if(L)try{L.style.removeProperty("--pin-hint-lift");const y=L.getBoundingClientRect();if(!y.height)return;const E=Math.min(window.innerHeight,k(y)),M=Math.round(y.bottom-E);M>0&&L.style.setProperty("--pin-hint-lift",M+8+"px")}catch{}}function C(L){const y=c.value;if(!y||!(L!=null&&L.querySelector))return;let E=0;try{const Y=L.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(Y){const te=Y.getBoundingClientRect(),he=y.parentElement,ne=he?he.getBoundingClientRect():null;if(E=ne?Math.max(te.height||0,ne.bottom-te.top):te.height||0,P!==Y&&typeof ResizeObserver<"u"){if(p)try{p.disconnect()}catch{}P=Y,p=new ResizeObserver(()=>C(L)),p.observe(Y)}}}catch{}const M=Math.min(Math.max(Math.ceil(E)||20,20),72);y.style.setProperty("--pin-hint-attrib-clear",M+"px"),w()}return jt(()=>{var M,Y,te;const L=ro(),y=(te=(Y=(M=L==null?void 0:L.proxy)==null?void 0:M.$el)==null?void 0:Y.getRootNode)==null?void 0:te.call(Y);if(!y||typeof y.querySelector!="function")return;m=y;let E=0;u=setInterval(()=>{E++;const he=y.querySelector("canvas");he?(clearInterval(u),u=null,l.value=!0,mo(()=>{const ne=A(he,y),q=c.value;if(ne&&q&&q.parentElement!==ne)try{ne.appendChild(q),d=ne}catch{}C(y),w(),b.push(setTimeout(w,1200),setTimeout(w,3e3),setTimeout(w,6e3));try{const D=c.value&&c.value.offsetParent||null;if(D&&typeof ResizeObserver<"u"){if($)try{$.disconnect()}catch{}$=new ResizeObserver(()=>w()),$.observe(D)}}catch{}})):E>40&&(clearInterval(u),u=null)},300)}),Wt(()=>{var L;if(u&&clearInterval(u),p){try{p.disconnect()}catch{}p=null}if(P=null,$){try{$.disconnect()}catch{}$=null}if(_){try{_.disconnect()}catch{}_=null}f=null;for(const y of b)clearTimeout(y);if(b=[],m=null,d&&((L=c.value)==null?void 0:L.parentElement)===d)try{d.removeChild(c.value)}catch{}d=null}),mt(` .pin-hint { position: absolute; left: 50%; bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); z-index: 2147482000; pointer-events: none; @@ -68,7 +68,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(C,y)=>l.value?(F(),G("div",{key:0,ref_key:"hintEl",ref:c,class:$e(["pin-hint",{dark:s.value}]),role:"status"},[v("span",k0,[y[0]||(y[0]=v("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ce(" "+Z(i.value)+" ",1),v("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:A},"×")])],2)):de("",!0)}};let A0=0;const S0=Mr("ui",{state:()=>({_storeInstanceId:++A0,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),C0=Mr("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),L0=Mr("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=No({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=No({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),rn={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},N0=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Ro=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},P0={class:"profile-loader"},O0={key:0,class:"profile-error"},E0={key:1,class:"profile-error"},T0=Ro({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var k;const o=e,n=xe("profileConfig",null),a=K(()=>{var N;if(!o.profileConfig)return null;let w;try{w=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(w&&w.assetsBase===void 0){const C=(N=n==null?void 0:n.value)==null?void 0:N.assetsBase;typeof C=="string"&&C&&(w.assetsBase=C)}return w}),r=K(()=>{var w;return((w=a.value)==null?void 0:w.profile)||null}),s=Pg(),i=K(()=>{var N;const w=(N=a.value)==null?void 0:N.tk;return typeof w=="string"&&w?w:s.value||""});We(()=>{var w;return(w=a.value)==null?void 0:w.tk},w=>{typeof w=="string"&&w&&Bl(w)},{immediate:!0});const l=K(()=>{var w;return((w=a.value)==null?void 0:w.dataSource)||rn.activeSource||"doxa-csv"}),c=K(()=>{var w;return((w=a.value)==null?void 0:w.colorSet)||"default"}),u=K(()=>!1),d=K(()=>{var w;return((w=a.value)==null?void 0:w.pinHint)!==!1}),p=K(()=>{var N,C;const w=(((N=a.value)==null?void 0:N.locale)||((C=a.value)==null?void 0:C.lang)||"").split("-")[0].toLowerCase();return ns.includes(w)?w:""}),m=xe("appI18n",null);Gp(()=>{p.value&&m&&(m.global.locale.value=p.value)});const _=K(()=>{var w,N;return p.value||((N=(w=m==null?void 0:m.global)==null?void 0:w.locale)==null?void 0:N.value)||"en"}),f=K(()=>{var w;return((w=a.value)==null?void 0:w.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),b=xe("profileModules",null);if(!b)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const $=K(()=>{if(!r.value)return null;const w=`./${r.value}.vue`;return b[w]?Rr(b[w]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(b)),null)});At("mapboxToken",i),At("dataSource",l),At("colorSet",c),At("profileConfig",a),At("instanceId",f),At("lang",_);const L=S0(),A=C0(),x=L0();try{const w=typeof localStorage<"u"?localStorage.getItem("theme"):null;w&&((k=L.setTheme)==null||k.call(L,w))}catch{}return At("uiStore",L),At("mapStore",A),At("dataStore",x),(w,N)=>(F(),G("div",P0,[a.value?$.value?(F(),qe(Ii($.value),{key:2})):(F(),G("div",E0,[v("p",null,[N[1]||(N[1]=Ce("⚠️ Profile ",-1)),v("strong",null,'"'+Z(r.value)+'"',1),N[2]||(N[2]=Ce(" not found.",-1))])])):(F(),G("div",O0,[...N[0]||(N[0]=[v("p",null,[Ce("⚠️ "),v("strong",null,"doxa-map"),Ce(": missing or invalid "),v("code",null,"profile-config"),Ce(" prop.")],-1),v("p",null,[Ce("Example: "),v("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),$.value&&u.value?(F(),qe(Ii(se(null)),{key:3})):de("",!0),$.value&&d.value?(F(),qe(x0,{key:4})):de("",!0)]))}},[["styles",[N0]],["__scopeId","data-v-ba19fc13"]]),M0=Object.assign({"./connectivity-list.vue":()=>cn(()=>Promise.resolve().then(()=>J0),void 0),"./connectivity-map.vue":()=>cn(()=>Promise.resolve().then(()=>Z1),void 0),"./data-tables.vue":()=>cn(()=>Promise.resolve().then(()=>$2),void 0)});function I0(){return fg(T0,{configureApp(e){e.use(kg()),e.use(v0()),e.provide("profileModules",M0)}})}const F0=I0();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",F0));const R0={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},D0={class:"ci-tot"},B0={class:"ci-chip"},G0={class:"ci-chip"},U0={class:"ci-chip"},j0={class:"ci-chip"},W0=["onClick"],K0={class:"sec-name"},z0={class:"sec-meta"},V0={class:"r-name"},H0={class:"r-sub"},Y0={class:"r-num"},q0={class:"r-sub"},Z0={class:"r-num"},J0=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=xe("profileConfig",re(null)),o=K(()=>{var d;return((d=t.value)==null?void 0:d.isDark)===!0}),n=K(()=>R0.countries||[]),a=K(()=>{const d=new Map;for(const p of n.value){const m=p.region||"Other";d.has(m)||d.set(m,[]),d.get(m).push(p)}return[...d.entries()].map(([p,m])=>({name:p,items:m.slice().sort((_,f)=>f.people_groups-_.people_groups),groups:m.reduce((_,f)=>_+f.people_groups,0),unknown:m.filter(_=>_.internet_access==="unknown").length})).sort((p,m)=>m.groups-p.groups)}),r=re({}),s=d=>!!r.value[d],i=d=>{r.value={...r.value,[d]:!r.value[d]}},l=K(()=>{const d=n.value;return{countries:d.length,resolved:d.filter(p=>p.internet_access!=="unknown").length,unknown:d.filter(p=>p.internet_access==="unknown").length,low:d.filter(p=>p.internet_access==="no").length}}),c=d=>d==="yes"?"ok":d==="partial"?"mid":d==="no"?"low":"unk",u=d=>d==="yes"?"connected":d==="partial"?"partial":d==="no"?"low":"unknown";return ft(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(d,p)=>(F(),G("div",{class:$e(["ci",{"is-dark":o.value}])},[p[1]||(p[1]=v("h2",{class:"ci-h"},"Cities with Internet",-1)),p[2]||(p[2]=v("p",{class:"ci-sub"},[Ce(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),v("strong",null,"unknown means unmeasured, never assumed"),Ce(". ")],-1)),v("div",D0,[v("span",B0,Z(l.value.countries)+" countries",1),v("span",G0,Z(l.value.resolved)+" measured",1),v("span",U0,Z(l.value.unknown)+" unknown",1),v("span",j0,Z(l.value.low)+" low-connectivity",1)]),(F(!0),G(fe,null,Ye(a.value,m=>(F(),G("section",{key:m.name,class:"sec"},[v("button",{type:"button",class:"sec-head",onClick:_=>i(m.name)},[v("span",{class:$e(["sec-caret",{open:!s(m.name)}])},"▶",2),v("h3",K0,Z(m.name),1),v("span",z0,[Ce(Z(m.items.length)+" countries · "+Z(m.groups.toLocaleString())+" people groups ",1),m.unknown?(F(),G(fe,{key:0},[Ce(" · "+Z(m.unknown)+" unmeasured",1)],64)):de("",!0)])],8,W0),ki(v("div",null,[(F(!0),G(fe,null,Ye(m.items,_=>(F(),G("div",{key:_.iso3,class:"row"},[v("div",null,[v("div",V0,Z(_.country),1),v("div",H0,[Ce(Z(_.people_groups)+" people groups · "+Z(_.clusters)+" locations ",1),_.multi?(F(),G(fe,{key:0},[Ce(" · "+Z(_.multi)+" population centres",1)],64)):de("",!0)])]),v("div",Y0,[_.internet_pct!==null&&_.internet_pct!==void 0?(F(),G(fe,{key:0},[Ce(Z(_.internet_pct)+"% ",1),v("div",q0,Z(_.internet_year),1)],64)):(F(),G(fe,{key:1},[Ce("—")],64))]),v("div",Z0,[_.mobile_per_100!==null&&_.mobile_per_100!==void 0?(F(),G(fe,{key:0},[Ce(Z(_.mobile_per_100)+" ",1),p[0]||(p[0]=v("div",{class:"r-sub"},"mob/100",-1))],64)):(F(),G(fe,{key:1},[Ce("—")],64))]),v("span",{class:$e(["pill",c(_.internet_access)])},Z(u(_.internet_access)),3)]))),128))],512),[[vl,!s(m.name)]])]))),128)),p[3]||(p[3]=v("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),as={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function X0(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:o=!0,basemap:n=!0}=t,a=document.createElement("div");a.className="doxa-attribution mapboxgl-ctrl",a.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];o&&r.push(as.boundaries),n&&(r.push(as.mapbox),r.push(as.osm)),a.innerHTML=r.map(i=>`${i.label}`).join(" · ");const s={onAdd:()=>a,onRemove:()=>{a.parentNode&&a.parentNode.removeChild(a)},getDefaultPosition:()=>"bottom-right"};return e.addControl(s,"bottom-right"),s}const Q0={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=re(null);return At("mapToolbar",{el:t}),ft(` +`,"pin-hint"),(L,y)=>l.value?(F(),G("div",{key:0,ref_key:"hintEl",ref:c,class:$e(["pin-hint",{dark:s.value}]),role:"status"},[v("span",I0,[y[0]||(y[0]=v("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ce(" "+H(i.value)+" ",1),v("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:x},"×")])],2)):pe("",!0)}};let F0=0;const R0=Ir("ui",{state:()=>({_storeInstanceId:++F0,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),D0=Ir("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),B0=Ir("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Po({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Po({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),rn={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},G0=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",Ro=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},U0={class:"profile-loader"},j0={key:0,class:"profile-error"},W0={key:1,class:"profile-error"},z0=Ro({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var k;const o=e,n=Ae("profileConfig",null),a=W(()=>{var C;if(!o.profileConfig)return null;let w;try{w=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(w&&w.assetsBase===void 0){const L=(C=n==null?void 0:n.value)==null?void 0:C.assetsBase;typeof L=="string"&&L&&(w.assetsBase=L)}return w}),r=W(()=>{var w;return((w=a.value)==null?void 0:w.profile)||null}),s=Og(),i=W(()=>{var C;const w=(C=a.value)==null?void 0:C.tk;return typeof w=="string"&&w?w:s.value||""});Ke(()=>{var w;return(w=a.value)==null?void 0:w.tk},w=>{typeof w=="string"&&w&&Bl(w)},{immediate:!0});const l=W(()=>{var w;return((w=a.value)==null?void 0:w.dataSource)||rn.activeSource||"doxa-csv"}),c=W(()=>{var w;return((w=a.value)==null?void 0:w.colorSet)||"default"}),u=W(()=>!1),d=W(()=>{var w;return((w=a.value)==null?void 0:w.pinHint)!==!1}),p=W(()=>{var C,L;const w=(((C=a.value)==null?void 0:C.locale)||((L=a.value)==null?void 0:L.lang)||"").split("-")[0].toLowerCase();return ns.includes(w)?w:""}),m=Ae("appI18n",null);Up(()=>{p.value&&m&&(m.global.locale.value=p.value)});const _=W(()=>{var w,C;return p.value||((C=(w=m==null?void 0:m.global)==null?void 0:w.locale)==null?void 0:C.value)||"en"}),f=W(()=>{var w;return((w=a.value)==null?void 0:w.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),b=Ae("profileModules",null);if(!b)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const $=W(()=>{if(!r.value)return null;const w=`./${r.value}.vue`;return b[w]?Rr(b[w]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(b)),null)});St("mapboxToken",i),St("dataSource",l),St("colorSet",c),St("profileConfig",a),St("instanceId",f),St("lang",_);const P=R0(),x=D0(),A=B0();try{const w=typeof localStorage<"u"?localStorage.getItem("theme"):null;w&&((k=P.setTheme)==null||k.call(P,w))}catch{}return St("uiStore",P),St("mapStore",x),St("dataStore",A),(w,C)=>(F(),G("div",U0,[a.value?$.value?(F(),Ze(Mi($.value),{key:2})):(F(),G("div",W0,[v("p",null,[C[1]||(C[1]=Ce("⚠️ Profile ",-1)),v("strong",null,'"'+H(r.value)+'"',1),C[2]||(C[2]=Ce(" not found.",-1))])])):(F(),G("div",j0,[...C[0]||(C[0]=[v("p",null,[Ce("⚠️ "),v("strong",null,"doxa-map"),Ce(": missing or invalid "),v("code",null,"profile-config"),Ce(" prop.")],-1),v("p",null,[Ce("Example: "),v("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),$.value&&u.value?(F(),Ze(Mi(oe(null)),{key:3})):pe("",!0),$.value&&d.value?(F(),Ze(M0,{key:4})):pe("",!0)]))}},[["styles",[G0]],["__scopeId","data-v-ba19fc13"]]),K0=Object.assign({"./connectivity-list.vue":()=>cn(()=>Promise.resolve().then(()=>ly),void 0),"./connectivity-map.vue":()=>cn(()=>Promise.resolve().then(()=>d2),void 0),"./data-tables.vue":()=>cn(()=>Promise.resolve().then(()=>F2),void 0)});function V0(){return mg(z0,{configureApp(e){e.use(Ag()),e.use(E0()),e.provide("profileModules",K0)}})}const H0=V0();typeof customElements<"u"&&(customElements.get("cities-internet-map")||customElements.define("cities-internet-map",H0));const Y0={countries:[{iso3:"IND",country:"India",region:"Asia",clusters:541,people_groups:856,multi:164,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:79.4,mobile_year:"2024",national_population:1450935791,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CHN",country:"People's Republic of China",region:"Asia",clusters:130,people_groups:154,multi:19,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:131.8,mobile_year:"2024",national_population:1408975e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SDN",country:"Sudan",region:"Middle East",clusters:75,people_groups:105,multi:20,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:70.2,mobile_year:"2022",national_population:50448963,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRA",country:"Brazil",region:"Latin America & Caribbean",clusters:99,people_groups:104,multi:5,internet_access:"yes",internet_pct:84.5,internet_year:"2024",mobile_per_100:101.9,mobile_year:"2024",national_population:211998573,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LAO",country:"Lao People's Democratic Republic",region:"Asia",clusters:65,people_groups:95,multi:24,internet_access:"yes",internet_pct:65.6,internet_year:"2024",mobile_per_100:64.8,mobile_year:"2023",national_population:7769819,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCD",country:"Chad",region:"Africa",clusters:48,people_groups:54,multi:6,internet_access:"no",internet_pct:12.6,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:20299123,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NGA",country:"Nigeria",region:"Africa",clusters:35,people_groups:38,multi:3,internet_access:"partial",internet_pct:41.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:232679478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IDN",country:"Indonesia",region:"Asia",clusters:35,people_groups:36,multi:1,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:122.5,mobile_year:"2024",national_population:283487931,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NPL",country:"Nepal",region:"Asia",clusters:25,people_groups:33,multi:5,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:99.8,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ETH",country:"Ethiopia",region:"Africa",clusters:29,people_groups:29,multi:0,internet_access:"no",internet_pct:21.9,internet_year:"2024",mobile_per_100:65.1,mobile_year:"2024",national_population:132059767,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COL",country:"Colombia",region:"Latin America & Caribbean",clusters:26,people_groups:26,multi:0,internet_access:"yes",internet_pct:79.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:52886363,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAK",country:"Pakistan",region:"Asia",clusters:21,people_groups:24,multi:2,internet_access:"partial",internet_pct:57.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:251269164,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SSD",country:"South Sudan",region:"Africa",clusters:22,people_groups:22,multi:0,internet_access:"no",internet_pct:6.7,internet_year:"2019",mobile_per_100:46.6,mobile_year:"2023",national_population:11943408,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"RUS",country:"Russian Federation",region:"Europe",clusters:17,people_groups:21,multi:2,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:186.1,mobile_year:"2024",national_population:143669648,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AFG",country:"Afghanistan",region:"Asia",clusters:15,people_groups:21,multi:5,internet_access:"no",internet_pct:16.1,internet_year:"2024",mobile_per_100:60.1,mobile_year:"2024",national_population:42647492,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRN",country:"Islamic Republic of Iran",region:"Middle East",clusters:19,people_groups:20,multi:1,internet_access:"yes",internet_pct:85.3,internet_year:"2024",mobile_per_100:174.1,mobile_year:"2024",national_population:91567738,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DZA",country:"Algeria",region:"Middle East",clusters:15,people_groups:17,multi:2,internet_access:"yes",internet_pct:77.4,internet_year:"2024",mobile_per_100:115.5,mobile_year:"2024",national_population:46814308,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VNM",country:"Vietnam",region:"Asia",clusters:15,people_groups:16,multi:1,internet_access:"yes",internet_pct:84.2,internet_year:"2024",mobile_per_100:127.6,mobile_year:"2024",national_population:100987686,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TZA",country:"United Republic of Tanzania",region:"Africa",clusters:16,people_groups:16,multi:0,internet_access:"partial",internet_pct:31.2,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:68560157,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBY",country:"Libya",region:"Middle East",clusters:13,people_groups:15,multi:2,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:193,mobile_year:"2022",national_population:7381023,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BTN",country:"Bhutan",region:"Asia",clusters:12,people_groups:13,multi:1,internet_access:"yes",internet_pct:91.3,internet_year:"2024",mobile_per_100:99.8,mobile_year:"2024",national_population:791524,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIN",country:"Guinea",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:33.3,internet_year:"2024",mobile_per_100:97.9,mobile_year:"2023",national_population:14754785,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLI",country:"Mali",region:"Africa",clusters:13,people_groups:13,multi:0,internet_access:"partial",internet_pct:36.8,internet_year:"2024",mobile_per_100:112.1,mobile_year:"2022",national_population:24478595,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYS",country:"Malaysia",region:"Asia",clusters:11,people_groups:12,multi:1,internet_access:"yes",internet_pct:98,internet_year:"2024",mobile_per_100:139.7,mobile_year:"2024",national_population:35557673,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AGO",country:"Angola",region:"Africa",clusters:9,people_groups:10,multi:1,internet_access:"partial",internet_pct:40.7,internet_year:"2024",mobile_per_100:69.7,mobile_year:"2024",national_population:37885849,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PER",country:"Peru",region:"Latin America & Caribbean",clusters:10,people_groups:10,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:124.6,mobile_year:"2024",national_population:34217848,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"YEM",country:"Yemen",region:"Middle East",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:17.5,internet_year:"2019",mobile_per_100:50.9,mobile_year:"2023",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COD",country:"Democratic Republic of the Congo",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"no",internet_pct:19.7,internet_year:"2024",mobile_per_100:58.5,mobile_year:"2024",national_population:109276265,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BEN",country:"Benin",region:"Africa",clusters:8,people_groups:9,multi:1,internet_access:"partial",internet_pct:34,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:14462724,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SOM",country:"Somalia",region:"Africa",clusters:9,people_groups:9,multi:0,internet_access:"partial",internet_pct:27.9,internet_year:"2024",mobile_per_100:54,mobile_year:"2023",national_population:19009151,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ERI",country:"Eritrea",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"no",internet_pct:14.3,internet_year:"2020",mobile_per_100:59.1,mobile_year:"2022",national_population:3535603,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"IRQ",country:"Iraq",region:"Middle East",clusters:7,people_groups:8,multi:1,internet_access:"yes",internet_pct:81.5,internet_year:"2024",mobile_per_100:100.1,mobile_year:"2024",national_population:46042015,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BFA",country:"Burkina Faso",region:"Africa",clusters:7,people_groups:8,multi:1,internet_access:"partial",internet_pct:28.3,internet_year:"2024",mobile_per_100:116.6,mobile_year:"2024",national_population:23548781,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"THA",country:"Thailand",region:"Asia",clusters:8,people_groups:8,multi:0,internet_access:"yes",internet_pct:90.9,internet_year:"2024",mobile_per_100:160.6,mobile_year:"2024",national_population:71668011,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PSE",country:"State of Palestine",region:"Middle East",clusters:3,people_groups:7,multi:1,internet_access:"yes",internet_pct:86.6,internet_year:"2023",mobile_per_100:76.7,mobile_year:"2023",national_population:5289152,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"OMN",country:"Oman",region:"Middle East",clusters:7,people_groups:7,multi:0,internet_access:"yes",internet_pct:95.3,internet_year:"2024",mobile_per_100:120.6,mobile_year:"2024",national_population:5281538,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MMR",country:"Myanmar",region:"Asia",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:45.4,internet_year:"2020",mobile_per_100:114.3,mobile_year:"2024",national_population:54500091,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CMR",country:"Cameroon",region:"Africa",clusters:7,people_groups:7,multi:0,internet_access:"partial",internet_pct:46.3,internet_year:"2024",mobile_per_100:108.2,mobile_year:"2024",national_population:29123744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TGO",country:"Togo",region:"Africa",clusters:5,people_groups:6,multi:1,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:8406558,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JPN",country:"Japan",region:"Asia",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:85.5,internet_year:"2024",mobile_per_100:178.4,mobile_year:"2023",national_population:123975371,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UGA",country:"Uganda",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"no",internet_pct:8.9,internet_year:"2024",mobile_per_100:83.2,mobile_year:"2024",national_population:50015092,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZMB",country:"Zambia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:108.7,mobile_year:"2024",national_population:21314956,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VEN",country:"Venezuela",region:"Latin America & Caribbean",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:76.7,internet_year:"2024",mobile_per_100:71,mobile_year:"2024",national_population:28405543,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NAM",country:"Namibia",region:"Africa",clusters:6,people_groups:6,multi:0,internet_access:"yes",internet_pct:64.9,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:3030131,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRN",country:"Brunei Darussalam",region:"Asia",clusters:4,people_groups:5,multi:1,internet_access:"yes",internet_pct:96.3,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:462721,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KEN",country:"Kenya",region:"Africa",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:35,internet_year:"2024",mobile_per_100:126.5,mobile_year:"2024",national_population:56432944,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SYR",country:"Syrian Arab Republic",region:"Middle East",clusters:5,people_groups:5,multi:0,internet_access:"partial",internet_pct:33.8,internet_year:"2018",mobile_per_100:71.2,mobile_year:"2024",national_population:24672760,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBN",country:"Lebanon",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:80.6,internet_year:"2024",mobile_per_100:74,mobile_year:"2022",national_population:5805962,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MOZ",country:"Mozambique",region:"Africa",clusters:4,people_groups:4,multi:0,internet_access:"no",internet_pct:20.5,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2024",national_population:34631766,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAR",country:"Morocco",region:"Middle East",clusters:4,people_groups:4,multi:0,internet_access:"yes",internet_pct:91.2,internet_year:"2024",mobile_per_100:153.1,mobile_year:"2024",national_population:38081173,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"QAT",country:"Qatar",region:"Middle East",clusters:1,people_groups:3,multi:1,internet_access:"yes",internet_pct:98.1,internet_year:"2024",mobile_per_100:153.6,mobile_year:"2024",national_population:2857822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SAU",country:"Saudi Arabia",region:"Middle East",clusters:2,people_groups:3,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:35300280,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUR",country:"Türkiye",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:87.3,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:85518661,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AZE",country:"Azerbaijan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:90.4,internet_year:"2024",mobile_per_100:109.5,mobile_year:"2024",national_population:10202830,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GMB",country:"Republic of The Gambia",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:49.5,internet_year:"2024",mobile_per_100:126.2,mobile_year:"2024",national_population:2759988,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JOR",country:"Jordan",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:95.6,internet_year:"2024",mobile_per_100:69.6,mobile_year:"2024",national_population:11552876,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZWE",country:"Zimbabwe",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:94.2,mobile_year:"2024",national_population:16634373,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COM",country:"Comoros",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:32.5,internet_year:"2024",mobile_per_100:109.9,mobile_year:"2023",national_population:866628,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"USA",country:"United States of America",region:"Other",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:94.7,internet_year:"2024",mobile_per_100:113.2,mobile_year:"2024",national_population:340003797,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGD",country:"Bangladesh",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:53.4,internet_year:"2024",mobile_per_100:108.1,mobile_year:"2024",national_population:173562364,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNB",country:"Guinea-Bissau",region:"Africa",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:29.8,internet_year:"2024",mobile_per_100:147.2,mobile_year:"2024",national_population:2201352,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KOS",country:"KOS",region:"Europe",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MRT",country:"Mauritania",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:45.8,internet_year:"2024",mobile_per_100:92.1,mobile_year:"2024",national_population:5169395,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESH",country:"Western Sahara",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TJK",country:"Tajikistan",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"partial",internet_pct:55.8,internet_year:"2024",mobile_per_100:76.2,mobile_year:"2023",national_population:10590927,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"EGY",country:"Egypt",region:"Middle East",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:74.6,internet_year:"2024",mobile_per_100:97.1,mobile_year:"2024",national_population:116538258,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNG",country:"Mongolia",region:"Asia",clusters:3,people_groups:3,multi:0,internet_access:"yes",internet_pct:85.1,internet_year:"2024",mobile_per_100:140.7,mobile_year:"2024",national_population:3524788,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHR",country:"Bahrain",region:"Middle East",clusters:1,people_groups:2,multi:1,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:159.5,mobile_year:"2024",national_population:1588670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SUR",country:"Suriname",region:"North America & Non-Spanish Caribbean",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:142.1,mobile_year:"2024",national_population:634431,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NER",country:"Niger",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:60.6,mobile_year:"2024",national_population:27032412,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ZAF",country:"South Africa",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:78.4,internet_year:"2024",mobile_per_100:179.3,mobile_year:"2024",national_population:64007187,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CCK",country:"Cocos (Keeling) Islands",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COG",country:"Republic of the Congo",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:47.3,internet_year:"2024",mobile_per_100:95.5,mobile_year:"2024",national_population:6332961,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARE",country:"United Arab Emirates",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:100,internet_year:"2024",mobile_per_100:203.2,mobile_year:"2024",national_population:10986400,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GAB",country:"Gabon",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:68.7,internet_year:"2024",mobile_per_100:125.3,mobile_year:"2024",national_population:2538952,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUF",country:"French Guiana",region:"N/A",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CIV",country:"Cote d'Ivoire",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:41.4,internet_year:"2024",mobile_per_100:183.9,mobile_year:"2024",national_population:31934230,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KGZ",country:"Kyrgyzstan",region:"Asia",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:92,internet_year:"2024",mobile_per_100:107.5,mobile_year:"2024",national_population:7221868,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LBR",country:"Liberia",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:32.2,internet_year:"2024",mobile_per_100:32.1,mobile_year:"2022",national_population:5612817,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWE",country:"Sweden",region:"Europe",clusters:2,people_groups:2,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:140.7,mobile_year:"2024",national_population:10569709,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TUN",country:"Tunisia",region:"Middle East",clusters:2,people_groups:2,multi:0,internet_access:"yes",internet_pct:76.5,internet_year:"2024",mobile_per_100:117.6,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLE",country:"Sierra Leone",region:"Africa",clusters:2,people_groups:2,multi:0,internet_access:"partial",internet_pct:25.1,internet_year:"2024",mobile_per_100:107.9,mobile_year:"2022",national_population:8642022,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"AND",country:"Andorra",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.4,internet_year:"2024",mobile_per_100:155.7,mobile_year:"2024",national_population:81938,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SEN",country:"Senegal",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:60.1,internet_year:"2024",mobile_per_100:123.9,mobile_year:"2024",national_population:18501984,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNE",country:"Montenegro",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.9,internet_year:"2024",mobile_per_100:221.7,mobile_year:"2024",national_population:623525,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BOL",country:"Bolivia",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:79.7,internet_year:"2024",mobile_per_100:98,mobile_year:"2024",national_population:12413315,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ECU",country:"Ecuador",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:77.2,internet_year:"2024",mobile_per_100:101.6,mobile_year:"2024",national_population:18135478,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VIR",country:"Virgin Islands, U.S.",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.5,mobile_year:"2022",national_population:104377,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ATG",country:"Antigua and Barbuda",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.7,internet_year:"2024",mobile_per_100:200.5,mobile_year:"2022",national_population:93772,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ARM",country:"Armenia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.3,internet_year:"2024",mobile_per_100:134.9,mobile_year:"2024",national_population:3033500,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ABW",country:"Aruba",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.6,mobile_year:"2022",national_population:107995,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BHS",country:"Bahamas",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:92.5,internet_year:"2024",mobile_per_100:96.7,mobile_year:"2024",national_population:401283,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BRB",country:"Barbados",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.4,internet_year:"2024",mobile_per_100:114.6,mobile_year:"2022",national_population:282467,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLR",country:"Belarus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:94.3,internet_year:"2024",mobile_per_100:131.1,mobile_year:"2024",national_population:9132629,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BMU",country:"Bermuda",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:96.7,mobile_year:"2024",national_population:64636,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BIH",country:"Bosnia and Herzegovina",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.1,internet_year:"2024",mobile_per_100:121.2,mobile_year:"2024",national_population:3164253,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VGB",country:"Virgin Islands, British",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:39471,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BGR",country:"Bulgaria",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82.4,internet_year:"2024",mobile_per_100:118.1,mobile_year:"2024",national_population:6441421,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KHM",country:"Cambodia",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.5,internet_year:"2024",mobile_per_100:116.1,mobile_year:"2024",national_population:17638801,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYM",country:"Cayman Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:139.3,mobile_year:"2022",national_population:74457,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CAF",country:"Central African Republic",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:13.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2022",national_population:5330690,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CXR",country:"Christmas Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"COK",country:"Cook Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUB",country:"Cuba",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.5,internet_year:"2024",mobile_per_100:72.9,mobile_year:"2024",national_population:10979783,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CUW",country:"Curaçao",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:93.8,mobile_year:"2023",national_population:155967,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CYP",country:"Cyprus",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.6,internet_year:"2024",mobile_per_100:156.2,mobile_year:"2024",national_population:1358282,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DJI",country:"Djibouti",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.3,internet_year:"2024",mobile_per_100:48.5,mobile_year:"2023",national_population:1168722,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"DMA",country:"Dominica",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:82,internet_year:"2024",mobile_per_100:85.2,mobile_year:"2022",national_population:66205,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GNQ",country:"Equatorial Guinea",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.3,internet_year:"2024",mobile_per_100:49.5,mobile_year:"2022",national_population:1892516,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FRO",country:"Faroe Islands",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:105.8,mobile_year:"2022",national_population:54640,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FJI",country:"Fiji",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:74.7,internet_year:"2024",mobile_per_100:574.2,mobile_year:"2024",national_population:928784,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PYF",country:"French Polynesia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:118.8,mobile_year:"2023",national_population:281807,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GEO",country:"Georgia",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.8,internet_year:"2024",mobile_per_100:161.2,mobile_year:"2024",national_population:3812518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GIB",country:"Gibraltar",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:97.6,mobile_year:"2022",national_population:39329,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRC",country:"Greece",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:86.3,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:10405134,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GRD",country:"Grenada",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:70.2,internet_year:"2024",mobile_per_100:95.8,mobile_year:"2022",national_population:117207,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GLP",country:"Guadeloupe",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUM",country:"Guam",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:167777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GGY",country:"Guernsey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISL",country:"Iceland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.2,internet_year:"2024",mobile_per_100:120.9,mobile_year:"2024",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KIR",country:"Kiribati",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.4,internet_year:"2024",mobile_per_100:53.5,mobile_year:"2024",national_population:134518,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JAM",country:"Jamaica",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:90.1,internet_year:"2024",mobile_per_100:117.7,mobile_year:"2024",national_population:2839175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"JEY",country:"Jersey",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KAZ",country:"Kazakhstan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.4,internet_year:"2024",mobile_per_100:127.1,mobile_year:"2024",national_population:20592571,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRK",country:"North Korea",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:24.1,mobile_year:"2022",national_population:26498823,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"KWT",country:"Kuwait",region:"Middle East",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99.7,internet_year:"2024",mobile_per_100:167.7,mobile_year:"2023",national_population:4897263,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LIE",country:"Liechtenstein",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.3,internet_year:"2024",mobile_per_100:128.9,mobile_year:"2024",national_population:40450,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LUX",country:"Luxembourg",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:98.8,internet_year:"2024",mobile_per_100:144.5,mobile_year:"2023",national_population:677012,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MYT",country:"Mayotte",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MDV",country:"Maldives",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.2,internet_year:"2024",mobile_per_100:148.1,mobile_year:"2024",national_population:527799,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MLT",country:"Malta",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.9,internet_year:"2024",mobile_per_100:142.1,mobile_year:"2024",national_population:568847,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MNP",country:"Northern Mariana Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:44278,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MHL",country:"Marshall Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:65.9,internet_year:"2024",mobile_per_100:39.7,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MUS",country:"Mauritius",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:73.3,internet_year:"2024",mobile_per_100:172.7,mobile_year:"2024",national_population:1245779,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FSM",country:"Micronesia, Federated States of",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:39.5,internet_year:"2024",mobile_per_100:20,mobile_year:"2022",national_population:113160,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MCO",country:"Monaco",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:99,internet_year:"2024",mobile_per_100:107.4,mobile_year:"2024",national_population:38631,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MSR",country:"Montserrat",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NCL",country:"New Caledonia",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:91.7,mobile_year:"2022",national_population:292639,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NIU",country:"Niue",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VUT",country:"Vanuatu",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:89.3,mobile_year:"2023",national_population:327777,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NFK",country:"Norfolk Island",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"HKG",country:"Hong Kong",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:364.8,mobile_year:"2024",national_population:7524100,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MAC",country:"Macao",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.8,internet_year:"2024",mobile_per_100:201.1,mobile_year:"2024",national_population:687e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PLW",country:"Palau",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83.9,internet_year:"2024",mobile_per_100:135.4,mobile_year:"2023",national_population:17695,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PNG",country:"Papua New Guinea",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"no",internet_pct:18.8,internet_year:"2024",mobile_per_100:38.8,mobile_year:"2024",national_population:10576502,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"BLM",country:"Saint Barthélemy",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SHN",country:"Saint Helena",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LCA",country:"Saint Lucia",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:68.2,internet_year:"2024",mobile_per_100:98.7,mobile_year:"2022",national_population:179744,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SMR",country:"San Marino",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:97.4,internet_year:"2024",mobile_per_100:120.3,mobile_year:"2022",national_population:33977,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ASM",country:"American Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46765,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WSM",country:"Samoa",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:62.4,mobile_year:"2022",national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"STP",country:"Sao Tome and Principe",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:59.1,internet_year:"2024",mobile_per_100:62.4,mobile_year:"2024",national_population:235536,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SXM",country:"Sint Maarten (Dutch part)",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:205.4,mobile_year:"2022",national_population:43350,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SLB",country:"Solomon Islands",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:29,internet_year:"2024",mobile_per_100:62.1,mobile_year:"2022",national_population:819198,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"LKA",country:"Sri Lanka",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"partial",internet_pct:54.6,internet_year:"2024",mobile_per_100:132.5,mobile_year:"2024",national_population:21916e3,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SJM",country:"Svalbard and Jan Mayen",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"SWZ",country:"Eswatini",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:63.4,internet_year:"2024",mobile_per_100:139.8,mobile_year:"2024",national_population:1242822,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TKL",country:"Tokelau",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TON",country:"Tonga",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.4,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:104175,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"TCA",country:"Turks and Caicos Islands",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:46535,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"VCT",country:"Saint Vincent and the Grenadines",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:76.2,internet_year:"2024",mobile_per_100:108.4,mobile_year:"2024",national_population:100616,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"WLF",country:"Wallis and Futuna",region:"N/A",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:null,mobile_year:null,national_population:null,population_year:null,censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PRY",country:"Paraguay",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:81.6,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2023",national_population:6929153,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"FIN",country:"Finland",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:93.7,internet_year:"2024",mobile_per_100:125.9,mobile_year:"2024",national_population:5619911,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ALB",country:"Albania",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:85.9,internet_year:"2024",mobile_per_100:89.1,mobile_year:"2024",national_population:2377128,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PAN",country:"Panama",region:"Latin America & Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.8,internet_year:"2024",mobile_per_100:156.6,mobile_year:"2023",national_population:4515577,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"NZL",country:"New Zealand",region:"Oceania",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:130.1,mobile_year:"2024",national_population:529e4,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"CZE",country:"Czech Republic",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:87.7,internet_year:"2024",mobile_per_100:126.6,mobile_year:"2024",national_population:10905028,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GHA",country:"Ghana",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:72.2,internet_year:"2024",mobile_per_100:113.6,mobile_year:"2024",national_population:34427414,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"PHL",country:"Philippines",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:67.3,internet_year:"2024",mobile_per_100:115.3,mobile_year:"2024",national_population:115843670,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ISR",country:"Israel",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:88.2,internet_year:"2024",mobile_per_100:null,mobile_year:null,national_population:10002200,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"GUY",country:"Guyana",region:"North America & Non-Spanish Caribbean",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:83,internet_year:"2024",mobile_per_100:112.6,mobile_year:"2022",national_population:831087,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"UZB",country:"Uzbekistan",region:"Asia",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:89.5,internet_year:"2024",mobile_per_100:110.5,mobile_year:"2024",national_population:36361859,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"ESP",country:"Spain",region:"Europe",clusters:1,people_groups:1,multi:0,internet_access:"yes",internet_pct:95.8,internet_year:"2024",mobile_per_100:130.3,mobile_year:"2024",national_population:48848840,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}},{iso3:"MWI",country:"Malawi",region:"Africa",clusters:1,people_groups:1,multi:0,internet_access:"unknown",internet_pct:null,internet_year:null,mobile_per_100:69.3,mobile_year:"2024",national_population:21655286,population_year:"2024",censorship:"unknown",censorship_note:"not machine-readable from this source; requires a cited report (OONI / Access Now / Freedom on the Net)",resolution:"country",banding:"yes >=60% · partial 25-59% · no <25% of population using the internet",source:{name:"World Bank Open Data",url:"https://api.worldbank.org/v2",licence:"CC BY 4.0",accessed:"2026-08-01"}}]},q0={class:"ci-tot"},Z0={class:"ci-chip"},J0={class:"ci-chip"},X0={class:"ci-chip"},Q0={class:"ci-chip"},ey=["onClick"],ty={class:"sec-name"},oy={class:"sec-meta"},ny={class:"r-name"},ay={class:"r-sub"},ry={class:"r-num"},sy={class:"r-sub"},iy={class:"r-num"},ly=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"connectivity-list",setup(e){const t=Ae("profileConfig",se(null)),o=W(()=>{var d;return((d=t.value)==null?void 0:d.isDark)===!0}),n=W(()=>Y0.countries||[]),a=W(()=>{const d=new Map;for(const p of n.value){const m=p.region||"Other";d.has(m)||d.set(m,[]),d.get(m).push(p)}return[...d.entries()].map(([p,m])=>({name:p,items:m.slice().sort((_,f)=>f.people_groups-_.people_groups),groups:m.reduce((_,f)=>_+f.people_groups,0),unknown:m.filter(_=>_.internet_access==="unknown").length})).sort((p,m)=>m.groups-p.groups)}),r=se({}),s=d=>!!r.value[d],i=d=>{r.value={...r.value,[d]:!r.value[d]}},l=W(()=>{const d=n.value;return{countries:d.length,resolved:d.filter(p=>p.internet_access!=="unknown").length,unknown:d.filter(p=>p.internet_access==="unknown").length,low:d.filter(p=>p.internet_access==="no").length}}),c=d=>d==="yes"?"ok":d==="partial"?"mid":d==="no"?"low":"unk",u=d=>d==="yes"?"connected":d==="partial"?"partial":d==="no"?"low":"unknown";return mt(".ci{position:absolute;inset:0;overflow-y:auto;padding:20px 18px 44px;background:#f6f7f9;color:#0f1419;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.ci.is-dark{background:#0a1410;color:#e5e7eb}.ci-h{margin:0 0 4px;font-size:19px;font-weight:700;text-align:center}.ci-sub{margin:0 auto 18px;max-width:640px;font-size:12.5px;line-height:1.55;text-align:center;opacity:.75}.ci-tot{display:flex;gap:14px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}.ci-chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:rgba(0,0,0,.06);font-weight:600}.is-dark .ci-chip{background:rgba(255,255,255,.10)}.sec{max-width:1080px;margin:0 auto;padding-bottom:34px}.sec-head{position:sticky;top:0;z-index:6;background:#f6f7f9;display:flex;align-items:baseline;gap:10px;padding:10px 10px 8px;margin:0 2px 10px;border-bottom:1px solid rgba(0,0,0,.10);cursor:pointer;user-select:none;width:100%;text-align:left;border-top:0;border-left:0;border-right:0;font:inherit;color:inherit;box-shadow:0 6px 10px -8px rgba(0,0,0,.35);border-radius:4px 4px 0 0}.is-dark .sec-head{background:#0a1410;border-bottom-color:rgba(255,255,255,.12)}.sec-caret{display:inline-block;width:12px;font-size:10px;opacity:.55;transition:transform .18s}.sec-caret.open{transform:rotate(90deg)}.sec-name{margin:0;font-size:15px;font-weight:700}.sec-meta{font-size:11px;opacity:.6;font-variant-numeric:tabular-nums}.row{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.is-dark .row{border-bottom-color:rgba(255,255,255,.07)}.r-name{font-size:13.5px;font-weight:600}.r-sub{font-size:11px;opacity:.6}.r-num{font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;min-width:72px}.pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:rgba(16,185,129,.15);color:#0b7a5b}.pill.mid{background:rgba(245,158,11,.16);color:#8a6414}.pill.low{background:rgba(220,38,38,.13);color:#a12020}.pill.unk{background:rgba(0,0,0,.07);color:#6b7280}.is-dark .pill.unk{background:rgba(255,255,255,.10);color:#9ca3af}.src{max-width:1080px;margin:8px auto 0;font-size:11px;line-height:1.6;opacity:.6;text-align:center}","doxa-cities-internet"),(d,p)=>(F(),G("div",{class:$e(["ci",{"is-dark":o.value}])},[p[1]||(p[1]=v("h2",{class:"ci-h"},"Cities with Internet",-1)),p[2]||(p[2]=v("p",{class:"ci-sub"},[Ce(" Connectivity where the unengaged people groups live. Every figure is a measured national statistic with its observation year — "),v("strong",null,"unknown means unmeasured, never assumed"),Ce(". ")],-1)),v("div",q0,[v("span",Z0,H(l.value.countries)+" countries",1),v("span",J0,H(l.value.resolved)+" measured",1),v("span",X0,H(l.value.unknown)+" unknown",1),v("span",Q0,H(l.value.low)+" low-connectivity",1)]),(F(!0),G(fe,null,qe(a.value,m=>(F(),G("section",{key:m.name,class:"sec"},[v("button",{type:"button",class:"sec-head",onClick:_=>i(m.name)},[v("span",{class:$e(["sec-caret",{open:!s(m.name)}])},"▶",2),v("h3",ty,H(m.name),1),v("span",oy,[Ce(H(m.items.length)+" countries · "+H(m.groups.toLocaleString())+" people groups ",1),m.unknown?(F(),G(fe,{key:0},[Ce(" · "+H(m.unknown)+" unmeasured",1)],64)):pe("",!0)])],8,ey),ki(v("div",null,[(F(!0),G(fe,null,qe(m.items,_=>(F(),G("div",{key:_.iso3,class:"row"},[v("div",null,[v("div",ny,H(_.country),1),v("div",ay,[Ce(H(_.people_groups)+" people groups · "+H(_.clusters)+" locations ",1),_.multi?(F(),G(fe,{key:0},[Ce(" · "+H(_.multi)+" population centres",1)],64)):pe("",!0)])]),v("div",ry,[_.internet_pct!==null&&_.internet_pct!==void 0?(F(),G(fe,{key:0},[Ce(H(_.internet_pct)+"% ",1),v("div",sy,H(_.internet_year),1)],64)):(F(),G(fe,{key:1},[Ce("—")],64))]),v("div",iy,[_.mobile_per_100!==null&&_.mobile_per_100!==void 0?(F(),G(fe,{key:0},[Ce(H(_.mobile_per_100)+" ",1),p[0]||(p[0]=v("div",{class:"r-sub"},"mob/100",-1))],64)):(F(),G(fe,{key:1},[Ce("—")],64))]),v("span",{class:$e(["pill",c(_.internet_access)])},H(u(_.internet_access)),3)]))),128))],512),[[vl,!s(m.name)]])]))),128)),p[3]||(p[3]=v("p",{class:"src"}," Internet and mobile figures: World Bank Open Data (CC BY 4.0), most recent observation 2018–2024. Banding: connected ≥60% · partial 25–59% · low <25% of population using the internet. Country-resolution — per-city measurements are not publicly available at this scale. ISP names, carrier names and censorship history require per-country cited reporting and are not shown. ",-1))],2))}}},Symbol.toStringTag,{value:"Module"})),as={boundaries:{label:"geoBoundaries",href:"https://www.geoboundaries.org",title:"Country and administrative boundaries — geoBoundaries gbOpen (mixed upstream licences; see docs)"},mapbox:{label:"Mapbox",href:"https://www.mapbox.com/about/maps/"},osm:{label:"© OpenStreetMap",href:"https://www.openstreetmap.org/copyright"}};function cy(e,t={}){if(!e||typeof e.addControl!="function")return null;const{boundaries:o=!0,basemap:n=!0}=t,a=document.createElement("div");a.className="doxa-attribution mapboxgl-ctrl",a.style.cssText=["font:11px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif","background:rgba(255,255,255,.82)","color:#3a4048","padding:2px 6px","border-radius:3px 0 0 0","pointer-events:auto","max-width:min(92vw,420px)"].join(";");const r=[];o&&r.push(as.boundaries),n&&(r.push(as.mapbox),r.push(as.osm)),a.innerHTML=r.map(i=>`${i.label}`).join(" · ");const s={onAdd:()=>a,onRemove:()=>{a.parentNode&&a.parentNode.removeChild(a)},getDefaultPosition:()=>"bottom-right"};return e.addControl(s,"bottom-right"),s}const uy={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=se(null);return St("mapToolbar",{el:t}),mt(` .map-toolbar { position: absolute; top: 6px; @@ -85,7 +85,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(o,n)=>(F(),G("div",{ref_key:"toolbarEl",ref:t,class:$e(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[kn(o.$slots,"default")],2))}},ey=["title","aria-label","disabled"],Gn={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return ft(` +`,"map-toolbar"),(o,n)=>(F(),G("div",{ref_key:"toolbarEl",ref:t,class:$e(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[kn(o.$slots,"default")],2))}},py=["title","aria-label","disabled"],Gn={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return mt(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -111,7 +111,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,o)=>(F(),G("button",{class:$e(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[kn(t.$slots,"default")],10,ey))}},ty={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=lt(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,r)=>(F(),qe(Gn,{"is-dark":e.isDark,disabled:e.disabled,title:se(t)("buttons.zoomIn"),onClick:n},{default:Ot(()=>[...r[0]||(r[0]=[v("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},oy={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=lt(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,r)=>(F(),qe(Gn,{"is-dark":e.isDark,disabled:e.disabled,title:se(t)("buttons.zoomOut"),onClick:n},{default:Ot(()=>[...r[0]||(r[0]=[v("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},ny={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=lt(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(F(),qe(Gn,{"is-dark":e.isDark,title:se(t)("buttons.resetView"),onClick:a},{default:Ot(()=>[...s[0]||(s[0]=[v("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[v("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},ay={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},ry={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},sy={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=lt(),n=e,a=t,r=re(!1);let s=null,i=null,l=null,c=null,u=null,d=null,p=null,m=null,_=null,f=null,b=null,$=0,L=0,A=null,x=null;function k(){if(typeof document>"u")return!1;const R=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(R)||R.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function w(){var R,U,J;return((J=(U=(R=n.mapContainer)==null?void 0:R.getRootNode)==null?void 0:U.call(R))==null?void 0:J.host)??null}function N(){var U,J;const R=(J=(U=n.mapContainer)==null?void 0:U.getRootNode)==null?void 0:J.call(U);return document.fullscreenElement||document.webkitFullscreenElement||(R&&R instanceof ShadowRoot?R.fullscreenElement:null)||null}function C(R){const U=R.requestFullscreen||R.webkitRequestFullscreen;if(!U)return Promise.reject(new Error("Fullscreen API unavailable"));const J=U.call(R);return J&&typeof J.then=="function"?J:Promise.resolve()}function y(){const R=document.exitFullscreen||document.webkitExitFullscreen;if(!R)return Promise.reject(new Error("Fullscreen API unavailable"));const U=R.call(document);return U&&typeof U.then=="function"?U:Promise.resolve()}function E(){const R=w();if(!R)return!1;if(l=R,i=R.style.cssText,R.style.position="fixed",R.style.top="0",R.style.left="0",R.style.right="0",R.style.bottom="0",R.style.width="100vw",R.style.height="100vh",R.style.height="100dvh",R.style.zIndex="2147483647",R.style.margin="0",R.style.borderRadius="0",R.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){$=window.scrollY||window.pageYOffset||0,L=window.scrollX||window.pageXOffset||0;const U=document.body,J=document.documentElement;c=U?U.style.overflow:null,u=J?J.style.overflow:null,d=U?U.style.position:null,p=U?U.style.top:null,m=U?U.style.left:null,_=U?U.style.width:null,f=U?U.style.touchAction:null,b=J?J.style.touchAction:null,J&&(J.style.overflow="hidden",J.style.touchAction="none"),U&&(U.style.overflow="hidden",U.style.position="fixed",U.style.top=`-${$}px`,U.style.left=`-${L}px`,U.style.width="100%",U.style.touchAction="none"),A=ie=>{if(!l)return;const ae=ie.target;ae&&(ae===l||l.contains&&l.contains(ae))||ie.cancelable&&ie.preventDefault()},x=ie=>{if(!l)return;const ae=ie.target;ae&&(ae===l||l.contains&&l.contains(ae))||ie.cancelable&&ie.preventDefault()},document.addEventListener("touchmove",A,{passive:!1,capture:!0}),document.addEventListener("wheel",x,{passive:!1,capture:!0})}return!0}function I(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const R=document.body,U=document.documentElement;R&&(R.style.overflow=c??"",R.style.position=d??"",R.style.top=p??"",R.style.left=m??"",R.style.width=_??"",R.style.touchAction=f??""),U&&(U.style.overflow=u??"",U.style.touchAction=b??""),A&&(document.removeEventListener("touchmove",A,{capture:!0}),A=null),x&&(document.removeEventListener("wheel",x,{capture:!0}),x=null),typeof window<"u"&&($||L)&&window.scrollTo(L,$)}c=null,u=null,d=null,p=null,m=null,_=null,f=null,b=null,$=0,L=0}}function H(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function ee(){if(!k()){r.value?(I(),r.value=!1,a("change",!1)):E()&&(r.value=!0,a("change",!0)),H();return}if(N())y().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const U=w()??document.documentElement;C(U).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{C(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function q(){r.value=!!N(),a("change",r.value)}return jt(()=>{var U,J;document.addEventListener("fullscreenchange",q),document.addEventListener("webkitfullscreenchange",q);const R=(J=(U=n.mapContainer)==null?void 0:U.getRootNode)==null?void 0:J.call(U);R instanceof ShadowRoot&&(s=R,R.addEventListener("fullscreenchange",q),R.addEventListener("webkitfullscreenchange",q))}),Wt(()=>{document.removeEventListener("fullscreenchange",q),document.removeEventListener("webkitfullscreenchange",q),s&&(s.removeEventListener("fullscreenchange",q),s.removeEventListener("webkitfullscreenchange",q),s=null),l&&I()}),(R,U)=>(F(),qe(Gn,{"is-dark":e.isDark,active:r.value,title:se(o)("buttons.toggleFullscreen"),onClick:ee},{default:Ot(()=>[r.value?(F(),G("svg",ry,[...U[1]||(U[1]=[v("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(F(),G("svg",ay,[...U[0]||(U[0]=[v("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},iy=Go&&Go.tagName.toUpperCase()==="SCRIPT"&&Go.src||new URL("cities-internet.js",document.baseURI).href,xo=e=>String(e||"").trim().replace(/\/+$/,"");function tu(){try{const t=String(iy||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function ly(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return xo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return xo(o)}return xo(tu()||"")}function ou(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=xo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=xo((e==null?void 0:e.treeBase)||"")||xo(tu()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return xo(new URL(o+"/assets",n).href)}catch{return xo(o+"/assets")}return"./assets"}function cy({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=ly(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const uy=["aria-label"],py={class:"mcm-header"},dy={class:"mcm-title"},gy={class:"mcm-body"},hy=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",rs="doxa-map-menu-open",fy={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){ft(` +`,"map-control-button"),(t,o)=>(F(),G("button",{class:$e(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[kn(t.$slots,"default")],10,py))}},dy={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=ct(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,r)=>(F(),Ze(Gn,{"is-dark":e.isDark,disabled:e.disabled,title:oe(t)("buttons.zoomIn"),onClick:n},{default:Ot(()=>[...r[0]||(r[0]=[v("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},gy={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=ct(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,r)=>(F(),Ze(Gn,{"is-dark":e.isDark,disabled:e.disabled,title:oe(t)("buttons.zoomOut"),onClick:n},{default:Ot(()=>[...r[0]||(r[0]=[v("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},hy={__name:"LocationButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},center:{type:Array,default:()=>[20,10]},zoom:{type:Number,default:1.8},userZoom:{type:Number,default:10}},setup(e){const{t}=ct(),o=e;function n(){var r;(r=o.map)==null||r.flyTo({center:o.center,zoom:o.zoom,duration:1200})}function a(){if(o.map){if(typeof navigator>"u"||!navigator.geolocation){n();return}navigator.geolocation.getCurrentPosition(r=>{const{longitude:s,latitude:i}=r.coords;Number.isFinite(s)&&Number.isFinite(i)?o.map.flyTo({center:[s,i],zoom:o.userZoom,duration:1500}):n()},()=>n(),{enableHighAccuracy:!1,timeout:5e3,maximumAge:6e4})}}return(r,s)=>(F(),Ze(Gn,{"is-dark":e.isDark,title:oe(t)("buttons.resetView"),onClick:a},{default:Ot(()=>[...s[0]||(s[0]=[v("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[v("path",{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z"})],-1)])]),_:1},8,["is-dark","title"]))}},fy={key:0,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},my={key:1,xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 29 29",fill:"currentColor"},by={__name:"FullscreenButton",props:{mapContainer:{type:Object,default:null},isDark:{type:Boolean,default:!1}},emits:["change"],setup(e,{emit:t}){const{t:o}=ct(),n=e,a=t,r=se(!1);let s=null,i=null,l=null,c=null,u=null,d=null,p=null,m=null,_=null,f=null,b=null,$=0,P=0,x=null,A=null;function k(){if(typeof document>"u")return!1;const ne=typeof navigator<"u"&&navigator.userAgent||"";return/iPad|iPhone|iPod/.test(ne)||ne.includes("Mac")&&typeof document<"u"&&"ontouchend"in document?!1:!!(document.fullscreenEnabled||document.webkitFullscreenEnabled)}function w(){var ne,q,D;return((D=(q=(ne=n.mapContainer)==null?void 0:ne.getRootNode)==null?void 0:q.call(ne))==null?void 0:D.host)??null}function C(){var q,D;const ne=(D=(q=n.mapContainer)==null?void 0:q.getRootNode)==null?void 0:D.call(q);return document.fullscreenElement||document.webkitFullscreenElement||(ne&&ne instanceof ShadowRoot?ne.fullscreenElement:null)||null}function L(ne){const q=ne.requestFullscreen||ne.webkitRequestFullscreen;if(!q)return Promise.reject(new Error("Fullscreen API unavailable"));const D=q.call(ne);return D&&typeof D.then=="function"?D:Promise.resolve()}function y(){const ne=document.exitFullscreen||document.webkitExitFullscreen;if(!ne)return Promise.reject(new Error("Fullscreen API unavailable"));const q=ne.call(document);return q&&typeof q.then=="function"?q:Promise.resolve()}function E(){const ne=w();if(!ne)return!1;if(l=ne,i=ne.style.cssText,ne.style.position="fixed",ne.style.top="0",ne.style.left="0",ne.style.right="0",ne.style.bottom="0",ne.style.width="100vw",ne.style.height="100vh",ne.style.height="100dvh",ne.style.zIndex="2147483647",ne.style.margin="0",ne.style.borderRadius="0",ne.style.touchAction="pan-x pan-y pinch-zoom",typeof document<"u"){$=window.scrollY||window.pageYOffset||0,P=window.scrollX||window.pageXOffset||0;const q=document.body,D=document.documentElement;c=q?q.style.overflow:null,u=D?D.style.overflow:null,d=q?q.style.position:null,p=q?q.style.top:null,m=q?q.style.left:null,_=q?q.style.width:null,f=q?q.style.touchAction:null,b=D?D.style.touchAction:null,D&&(D.style.overflow="hidden",D.style.touchAction="none"),q&&(q.style.overflow="hidden",q.style.position="fixed",q.style.top=`-${$}px`,q.style.left=`-${P}px`,q.style.width="100%",q.style.touchAction="none"),x=z=>{if(!l)return;const J=z.target;J&&(J===l||l.contains&&l.contains(J))||z.cancelable&&z.preventDefault()},A=z=>{if(!l)return;const J=z.target;J&&(J===l||l.contains&&l.contains(J))||z.cancelable&&z.preventDefault()},document.addEventListener("touchmove",x,{passive:!1,capture:!0}),document.addEventListener("wheel",A,{passive:!1,capture:!0})}return!0}function M(){if(l){if(l.style.cssText=i||"",l=null,i=null,typeof document<"u"){const ne=document.body,q=document.documentElement;ne&&(ne.style.overflow=c??"",ne.style.position=d??"",ne.style.top=p??"",ne.style.left=m??"",ne.style.width=_??"",ne.style.touchAction=f??""),q&&(q.style.overflow=u??"",q.style.touchAction=b??""),x&&(document.removeEventListener("touchmove",x,{capture:!0}),x=null),A&&(document.removeEventListener("wheel",A,{capture:!0}),A=null),typeof window<"u"&&($||P)&&window.scrollTo(P,$)}c=null,u=null,d=null,p=null,m=null,_=null,f=null,b=null,$=0,P=0}}function Y(){typeof window>"u"||window.requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}function te(){if(!k()){r.value?(M(),r.value=!1,a("change",!1)):E()&&(r.value=!0,a("change",!0)),Y();return}if(C())y().then(()=>{r.value=!1,a("change",!1)}).catch(()=>{});else{const q=w()??document.documentElement;L(q).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{L(document.documentElement).then(()=>{r.value=!0,a("change",!0)}).catch(()=>{})})}}function he(){r.value=!!C(),a("change",r.value)}return jt(()=>{var q,D;document.addEventListener("fullscreenchange",he),document.addEventListener("webkitfullscreenchange",he);const ne=(D=(q=n.mapContainer)==null?void 0:q.getRootNode)==null?void 0:D.call(q);ne instanceof ShadowRoot&&(s=ne,ne.addEventListener("fullscreenchange",he),ne.addEventListener("webkitfullscreenchange",he))}),Wt(()=>{document.removeEventListener("fullscreenchange",he),document.removeEventListener("webkitfullscreenchange",he),s&&(s.removeEventListener("fullscreenchange",he),s.removeEventListener("webkitfullscreenchange",he),s=null),l&&M()}),(ne,q)=>(F(),Ze(Gn,{"is-dark":e.isDark,active:r.value,title:oe(o)("buttons.toggleFullscreen"),onClick:te},{default:Ot(()=>[r.value?(F(),G("svg",my,[...q[1]||(q[1]=[v("path",{d:"M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z"},null,-1)])])):(F(),G("svg",fy,[...q[0]||(q[0]=[v("path",{d:"M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z"},null,-1)])]))]),_:1},8,["is-dark","active","title"]))}},yy=Go&&Go.tagName.toUpperCase()==="SCRIPT"&&Go.src||new URL("cities-internet.js",document.baseURI).href,Ao=e=>String(e||"").trim().replace(/\/+$/,"");function ou(){try{const t=String(yy||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function _y(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Ao(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Ao(o)}return Ao(ou()||"")}function nu(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=Ao(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=Ao((e==null?void 0:e.treeBase)||"")||Ao(ou()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return Ao(new URL(o+"/assets",n).href)}catch{return Ao(o+"/assets")}return"./assets"}function $y({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=_y(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const vy=["aria-label"],wy={class:"mcm-header"},ky={class:"mcm-title"},Ay={class:"mcm-body"},xy=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",rs="doxa-map-menu-open",Sy={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){mt(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -127,7 +127,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const o=e,n=t,a=xe("mapToolbar",null),r=re(null),s=re(null),i=re({});function l(){var y;const m=(y=a==null?void 0:a.el)==null?void 0:y.value,_=r.value;if(!m||!_){i.value={};return}const f=_.getBoundingClientRect(),b=m.getBoundingClientRect(),$=(b.left+b.right)/2>(f.left+f.right)/2,L=8,A=12,x=$?f.right-b.left+L:b.right-f.left+L,k=Math.max(200,Math.min(o.width,f.width-x-A)),w=Math.max(0,b.top-f.top);let C=_.getAttribute&&_.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-b.top-A):Math.max(120,f.height-w-A);o.matchToolbar&&(C=Math.max(120,Math.min(C,b.height))),o.maxHeight&&(C=Math.min(C,o.maxHeight)),i.value={top:`${Math.round(w)}px`,[$?"right":"left"]:`${Math.round(x)}px`,width:`${Math.round(k)}px`,maxHeight:`${Math.round(C)}px`,...o.height?{height:`${Math.round(Math.min(o.height,C))}px`}:{}}}function c(m){o.open&&m.detail!==s.value&&n("close")}We(()=>o.open,async m=>{var _;if(m){await mo(),l();try{(_=r.value)==null||_.dispatchEvent(new CustomEvent(rs,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function d(m){m.key==="Escape"&&o.open&&n("close")}function p(m){var f;if(!o.open)return;const _=m.composedPath?m.composedPath():[m.target];s.value&&_.includes(s.value)||(f=a==null?void 0:a.el)!=null&&f.value&&_.includes(a.el.value)||_.some(b=>{var $,L,A,x;return((L=($=b==null?void 0:b.classList)==null?void 0:$.contains)==null?void 0:L.call($,"mapboxgl-canvas"))||((x=(A=b==null?void 0:b.classList)==null?void 0:A.contains)==null?void 0:x.call(A,"maplibregl-canvas"))})&&n("close")}return jt(()=>{var m,_,f;r.value=((_=(m=a==null?void 0:a.el)==null?void 0:m.value)==null?void 0:_.closest(hy))||null,(f=r.value)==null||f.addEventListener(rs,c),window.addEventListener("resize",u),document.addEventListener("click",p,!0),document.addEventListener("keydown",d)}),Wt(()=>{var m;(m=r.value)==null||m.removeEventListener(rs,c),window.removeEventListener("resize",u),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",d)}),(m,_)=>(F(),qe(zp,{to:r.value,disabled:!r.value},[e.open?(F(),G("div",{key:0,ref_key:"el",ref:s,class:$e(["mcm",{light:!e.isDark}]),style:Be(i.value),role:"dialog","aria-label":e.title},[v("div",py,[v("span",dy,Z(e.title),1),v("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:_[0]||(_[0]=f=>n("close"))},[..._[1]||(_[1]=[v("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[v("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),v("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),v("div",gy,[kn(m.$slots,"default")])],14,uy)):de("",!0)],8,["to","disabled"]))}},my={class:"share-steps"},by={class:"share-tabs"},yy={key:0,class:"share-body"},_y={class:"share-url-box"},$y={class:"share-url-text"},vy={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},wy={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},ky={key:1,class:"share-body"},xy={class:"share-size-pills"},Ay=["onClick"],Sy={class:"share-code-box"},Cy={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Ly={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Ny={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){ft(` +`,"map-control-menu");const o=e,n=t,a=Ae("mapToolbar",null),r=se(null),s=se(null),i=se({});function l(){var y;const m=(y=a==null?void 0:a.el)==null?void 0:y.value,_=r.value;if(!m||!_){i.value={};return}const f=_.getBoundingClientRect(),b=m.getBoundingClientRect(),$=(b.left+b.right)/2>(f.left+f.right)/2,P=8,x=12,A=$?f.right-b.left+P:b.right-f.left+P,k=Math.max(200,Math.min(o.width,f.width-A-x)),w=Math.max(0,b.top-f.top);let L=_.getAttribute&&_.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-b.top-x):Math.max(120,f.height-w-x);o.matchToolbar&&(L=Math.max(120,Math.min(L,b.height))),o.maxHeight&&(L=Math.min(L,o.maxHeight)),i.value={top:`${Math.round(w)}px`,[$?"right":"left"]:`${Math.round(A)}px`,width:`${Math.round(k)}px`,maxHeight:`${Math.round(L)}px`,...o.height?{height:`${Math.round(Math.min(o.height,L))}px`}:{}}}function c(m){o.open&&m.detail!==s.value&&n("close")}Ke(()=>o.open,async m=>{var _;if(m){await mo(),l();try{(_=r.value)==null||_.dispatchEvent(new CustomEvent(rs,{detail:s.value}))}catch{}}});function u(){o.open&&l()}function d(m){m.key==="Escape"&&o.open&&n("close")}function p(m){var f;if(!o.open)return;const _=m.composedPath?m.composedPath():[m.target];s.value&&_.includes(s.value)||(f=a==null?void 0:a.el)!=null&&f.value&&_.includes(a.el.value)||_.some(b=>{var $,P,x,A;return((P=($=b==null?void 0:b.classList)==null?void 0:$.contains)==null?void 0:P.call($,"mapboxgl-canvas"))||((A=(x=b==null?void 0:b.classList)==null?void 0:x.contains)==null?void 0:A.call(x,"maplibregl-canvas"))})&&n("close")}return jt(()=>{var m,_,f;r.value=((_=(m=a==null?void 0:a.el)==null?void 0:m.value)==null?void 0:_.closest(xy))||null,(f=r.value)==null||f.addEventListener(rs,c),window.addEventListener("resize",u),document.addEventListener("click",p,!0),document.addEventListener("keydown",d)}),Wt(()=>{var m;(m=r.value)==null||m.removeEventListener(rs,c),window.removeEventListener("resize",u),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",d)}),(m,_)=>(F(),Ze(Vp,{to:r.value,disabled:!r.value},[e.open?(F(),G("div",{key:0,ref_key:"el",ref:s,class:$e(["mcm",{light:!e.isDark}]),style:Ue(i.value),role:"dialog","aria-label":e.title},[v("div",wy,[v("span",ky,H(e.title),1),v("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:_[0]||(_[0]=f=>n("close"))},[..._[1]||(_[1]=[v("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[v("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),v("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),v("div",Ay,[kn(m.$slots,"default")])],14,vy)):pe("",!0)],8,["to","disabled"]))}},Cy={class:"share-steps"},Ly={class:"share-tabs"},Py={key:0,class:"share-body"},Ny={class:"share-url-box"},Oy={class:"share-url-text"},Ey={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Ty={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Iy={key:1,class:"share-body"},My={class:"share-size-pills"},Fy=["onClick"],Ry={class:"share-code-box"},Dy={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},By={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Gy={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){mt(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -379,9 +379,9 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:o,rt:n}=lt(),a=e,r=re(null),s=re(!1),i=re(null),l=re(null),c=re("link"),u=re(!1),d=re(!1),p=re("medium"),m={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},_=xe("profileConfig",null),f=K(()=>cy({embedPath:a.embedPath,profileConfig:se(_)||null})),b=K(()=>{const E=m[p.value].height;return''});function $(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,d.value=!1)}function L(){s.value=!1}async function A(E){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(E),!0}catch{}try{const I=document.createElement("textarea");I.value=E,I.setAttribute("readonly",""),I.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(I),I.select();const H=document.execCommand("copy");return document.body.removeChild(I),H}catch{return!1}}async function x(){await A(f.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function k(){await A(b.value)&&(d.value=!0,setTimeout(()=>{d.value=!1},2e3))}const w=xe("mapToolbar",null),N=re(null);At("mapToolbar",w||{el:N});const C=!w;function y(E){if(r.value=E||null,!C||!E){E||(N.value=null);return}const I=E.offsetParent||E.parentElement;I&&!I.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&I.setAttribute("data-map-area","share-fallback"),N.value=E}return(E,I)=>(F(),G("div",{ref:y,class:"share-wrap","data-share-root":""},[Oe(Gn,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:se(t)("buttons.share"),onClick:$},{default:Ot(()=>[...I[2]||(I[2]=[v("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[v("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),v("polyline",{points:"16 6 12 2 8 6"}),v("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Oe(fy,{open:s.value,title:se(t)("buttons.share"),"is-dark":e.isDark,onClose:L},{default:Ot(()=>[v("div",{ref_key:"popoverEl",ref:i,class:$e(["share-pop",{light:!e.isDark}])},[v("ul",my,[(F(!0),G(fe,null,Ye(se(o)("buttons.shareSteps"),(H,ee)=>(F(),G("li",{key:ee},Z(se(n)(H)),1))),128))]),v("div",by,[v("button",{class:$e(["share-tab",{active:c.value==="link"}]),onClick:I[0]||(I[0]=H=>c.value="link")},"Embed link",2),v("button",{class:$e(["share-tab",{active:c.value==="embed"}]),onClick:I[1]||(I[1]=H=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(F(),G("div",yy,[v("div",_y,[v("div",$y,Z(f.value),1)]),v("button",{class:$e(["share-primary-btn",{copied:u.value}]),onClick:x},[u.value?(F(),G("svg",wy,[...I[4]||(I[4]=[v("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(F(),G("svg",vy,[...I[3]||(I[3]=[v("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),v("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Ce(" "+Z(u.value?"Copied!":"Copy Link"),1)],2)])):de("",!0),c.value==="embed"?(F(),G("div",ky,[I[7]||(I[7]=v("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),v("div",xy,[(F(),G(fe,null,Ye(m,(H,ee)=>v("button",{key:ee,class:$e(["share-size-pill",{active:p.value===ee}]),onClick:q=>p.value=ee},Z(H.label),11,Ay)),64))]),v("div",Sy,Z(b.value),1),v("button",{class:$e(["share-secondary-btn",{copied:d.value}]),onClick:k},[d.value?(F(),G("svg",Ly,[...I[6]||(I[6]=[v("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(F(),G("svg",Cy,[...I[5]||(I[5]=[v("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),v("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Ce(" "+Z(d.value?"Copied!":"Copy Code"),1)],2)])):de("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Py=["mapbox","maplibre"],nu="mapbox";function Oy(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Ey(e){const t=Oy(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(o||n||a||nu).toLowerCase().trim();return Py.includes(r)?r:nu}function au(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function Ty(e,t="circle"){return au(e)?{[`${t}-emissive-strength`]:1}:{}}const My=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Iy(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=My[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}const Fa={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function ss(e){var o;const t=((o=Fa[e])==null?void 0:o.global)||Fa.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Fy(e){const t=Fa[e]||Fa.mapbox;if(ss(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(ss(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=t.js,r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}const is={};function ls(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Go&&Go.tagName.toUpperCase()==="SCRIPT"&&Go.src||new URL("cities-internet.js",document.baseURI).href}<"u"&&(is==null?void 0:is.VITE_API_BASE_URL)||""}class ru{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=rn,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;l$y({embedPath:a.embedPath,profileConfig:oe(_)||null})),b=W(()=>{const E=m[p.value].height;return''});function $(){s.value=!s.value,s.value&&(c.value="link",u.value=!1,d.value=!1)}function P(){s.value=!1}async function x(E){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(E),!0}catch{}try{const M=document.createElement("textarea");M.value=E,M.setAttribute("readonly",""),M.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(M),M.select();const Y=document.execCommand("copy");return document.body.removeChild(M),Y}catch{return!1}}async function A(){await x(f.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function k(){await x(b.value)&&(d.value=!0,setTimeout(()=>{d.value=!1},2e3))}const w=Ae("mapToolbar",null),C=se(null);St("mapToolbar",w||{el:C});const L=!w;function y(E){if(r.value=E||null,!L||!E){E||(C.value=null);return}const M=E.offsetParent||E.parentElement;M&&!M.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&M.setAttribute("data-map-area","share-fallback"),C.value=E}return(E,M)=>(F(),G("div",{ref:y,class:"share-wrap","data-share-root":""},[Oe(Gn,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:s.value,title:oe(t)("buttons.share"),onClick:$},{default:Ot(()=>[...M[2]||(M[2]=[v("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[v("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),v("polyline",{points:"16 6 12 2 8 6"}),v("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Oe(Sy,{open:s.value,title:oe(t)("buttons.share"),"is-dark":e.isDark,onClose:P},{default:Ot(()=>[v("div",{ref_key:"popoverEl",ref:i,class:$e(["share-pop",{light:!e.isDark}])},[v("ul",Cy,[(F(!0),G(fe,null,qe(oe(o)("buttons.shareSteps"),(Y,te)=>(F(),G("li",{key:te},H(oe(n)(Y)),1))),128))]),v("div",Ly,[v("button",{class:$e(["share-tab",{active:c.value==="link"}]),onClick:M[0]||(M[0]=Y=>c.value="link")},"Embed link",2),v("button",{class:$e(["share-tab",{active:c.value==="embed"}]),onClick:M[1]||(M[1]=Y=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(F(),G("div",Py,[v("div",Ny,[v("div",Oy,H(f.value),1)]),v("button",{class:$e(["share-primary-btn",{copied:u.value}]),onClick:A},[u.value?(F(),G("svg",Ty,[...M[4]||(M[4]=[v("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(F(),G("svg",Ey,[...M[3]||(M[3]=[v("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),v("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Ce(" "+H(u.value?"Copied!":"Copy Link"),1)],2)])):pe("",!0),c.value==="embed"?(F(),G("div",Iy,[M[7]||(M[7]=v("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),v("div",My,[(F(),G(fe,null,qe(m,(Y,te)=>v("button",{key:te,class:$e(["share-size-pill",{active:p.value===te}]),onClick:he=>p.value=te},H(Y.label),11,Fy)),64))]),v("div",Ry,H(b.value),1),v("button",{class:$e(["share-secondary-btn",{copied:d.value}]),onClick:k},[d.value?(F(),G("svg",By,[...M[6]||(M[6]=[v("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(F(),G("svg",Dy,[...M[5]||(M[5]=[v("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),v("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),Ce(" "+H(d.value?"Copied!":"Copy Code"),1)],2)])):pe("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Uy=["mapbox","maplibre"],au="mapbox";function jy(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function Wy(e){const t=jy(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,r=String(o||n||a||au).toLowerCase().trim();return Uy.includes(r)?r:au}function ru(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function zy(e,t="circle"){return ru(e)?{[`${t}-emissive-strength`]:1}:{}}const Ky=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function Vy(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=Ky[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}const Fa={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function ss(e){var o;const t=((o=Fa[e])==null?void 0:o.global)||Fa.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Hy(e){const t=Fa[e]||Fa.mapbox;if(ss(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(ss(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const r=document.createElement("script");r.src=t.js,r.async=!1,r.addEventListener("load",n,{once:!0}),r.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(r)})}const is={};function ls(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Go&&Go.tagName.toUpperCase()==="SCRIPT"&&Go.src||new URL("cities-internet.js",document.baseURI).href}<"u"&&(is==null?void 0:is.VITE_API_BASE_URL)||""}class su{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=rn,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",r=!1,s=[],i=!0;for(let l=0;l0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const d={};n.forEach((p,m)=>{d[p]=s[m]||""}),o.push(d)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=ls(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...t.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,d]of Object.entries(s))r.push(`${u}=${encodeURIComponent(d)}`);const i=`${o}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const d=u.headers.get("content-type")||"";if(!d.includes("application/json"))throw new Error(`API returned "${d}" instead of JSON. Server at ${o} may be down or misconfigured.`);const p=await u.json();return this.rawData=Array.isArray(p)?p:p.posts||p.data||p.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(d=>this.getFieldValue(n,d));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new ru;const Ra="#1a1a1a",uo="selected-pin-highlight";function Ry(e=Ra){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` +`&&l++,a||s.length>0){if(s.push(a.trim()),a="",i)n.push(...s),i=!1;else if(s.length>1){const d={};n.forEach((p,m)=>{d[p]=s[m]||""}),o.push(d)}s=[]}}else a+=c}if((a||s.length>0)&&(s.push(a.trim()),!i&&s.length>1)){const l={};n.forEach((c,u)=>{l[c]=s[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:r}=this.parseCSV(n);return this.rawData=r,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(s=>s.trim())),r=[];for(const[s,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||r.push({systemField:s,sourceField:l,isComposite:!0});else i&&!a.has(i)&&r.push({systemField:s,sourceField:i,isComposite:!1});r.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,r)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=ls(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",r=[];a&&r.push(`fields=${a}`);const s={...t.queryParams||{}};this.locale&&(s.lang=this.locale);for(const[u,d]of Object.entries(s))r.push(`${u}=${encodeURIComponent(d)}`);const i=`${o}${n}?${r.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const d=u.headers.get("content-type")||"";if(!d.includes("application/json"))throw new Error(`API returned "${d}" instead of JSON. Server at ${o} may be down or misconfigured.`);const p=await u.json();return this.rawData=Array.isArray(p)?p:p.posts||p.data||p.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(d=>this.getFieldValue(n,d));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const r=a.engagementStatus;r!=null&&(typeof r=="object"&&"value"in r?(a.engagementStatusLabel=r.label||r.value,a.engagementStatus=r.value==="engaged"):a.engagementStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const s=a.adoptionStatus;s!=null&&(a.adoptionStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="object"&&!!(s!=null&&s.value)||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new su;const Ra="#1a1a1a",uo="selected-pin-highlight";function Yy(e=Ra){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`