<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.cultopedia.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cultopedia-admin</id>
	<title>Cultopedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.cultopedia.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cultopedia-admin"/>
	<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php/Special:Contributions/Cultopedia-admin"/>
	<updated>2026-04-05T14:06:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview_4&amp;diff=2566</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview 4</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview_4&amp;diff=2566"/>
		<updated>2026-04-05T13:22:32Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Total records&lt;br /&gt;
| 44 linked source records&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Databases&lt;br /&gt;
| [[#cultopedia-databases|13 database records]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|10 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|21 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|0 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-04-01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Primary article: [[Scientology]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-databases&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Databases ===&lt;br /&gt;
* [https://www.watchman.org/index-of-cults-and-religions/ Church of Scientology]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/David_Miscavige David Miscavige]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/L._Ron_Hubbard L. Ron Hubbard]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://news.google.com/rss/articles/CBMi0AFBVV95cUxQY21QbnFUVlgtWkc1N0NDdXVWRk00bVdtTHdIU0trMEozQ3doUVR6eHpuSERjcy0wTVdQTXhGRWI3ZjVpbHdVTjhYbDZsSHRudUpSLWZGc2hxZEc3SlBkdF9nMjByU2NlWnVyYjR2ZGN3a2xpUjVhd044czFSQ2RFVW1USVVZbmlYY3ZXX0xWeVk1YUNFbmdvdjA5Tjk2Rlk5RWtlY2FaNGNRTUNOd1ZqdUZ4NmJUdE83YXV0b2FEb1BqcGltaFZBQTR1Y3FJRUdW?oc=5 Scientology Network&#039;s Prime-Time Celebration Marks L. Ron Hubbard&#039;s 115th Birthday - PR Newswire] (2026-03-13)&lt;br /&gt;
* [https://www.wtsp.com/article/news/local/pinellascounty/citizen-group-signatures-scientology-land-sale-voters/67-64da8ae3-3637-477d-b662-ca6e73d61ba9 Citizen group gets required signatures to put Scientology land sale to voters] (2026-03-18)&lt;br /&gt;
* [https://news.google.com/rss/articles/CBMipwFBVV95cUxQYUhMRlY1Ry1GZEhxNGhJTjRxYnFMOHhpaWhSVE1OODBpWG13RmQzX2Q0LVVJLS1QR3BKdkR2UEhTWThEaVdJX2pDeTlMdzF0VUJyRm1ZYVhrdGxIanJXbWQtVU9XbDdKNXdVTXZFR012TktaY05GSEhhdEZSLWRXaEZjNmFVQlBGeWFqbjM3QnhZNzRqQWsyRGQtQTZlU3htMFctaWpJRQ?oc=5 Elisabeth Moss Subtly Goes Against Scientology After Hitting Back At Fans Who Called The Church &#039;Evil&#039; - SheKnows] (2026-04-01)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://europepmc.org/article/MED/40255414 Electroconvulsive Therapy (ECT): Reiterating the Call for Urgent Attention.] (2025-04-16)&lt;br /&gt;
* [https://europepmc.org/article/MED/38868905 Preventing Religion-Based Hate Crime Victimization Among Youth: A Systematic Review of Personal, Collective, and Policy Responses.] (2024-06-13)&lt;br /&gt;
* [https://europepmc.org/article/MED/39540916 [&amp;quot;To go mad&amp;quot;. The Generation of Feminist Criticism of Psychiatry: The Example of the Magazine Courage, 1978-1980].] (2024-11-14)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* No linked sample records yet.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview_3&amp;diff=2565</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview 3</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview_3&amp;diff=2565"/>
		<updated>2026-04-05T13:13:35Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Total records&lt;br /&gt;
| 44 linked source records&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Databases&lt;br /&gt;
| [[#cultopedia-databases|13 database records]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|10 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|21 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|0 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-04-01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Primary article: [[Scientology]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-databases&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Databases ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Scientology Scientology] (Wikipedia, 2026-04-05)&lt;br /&gt;
* [https://www.watchman.org/index-of-cults-and-religions/ Church of Scientology] (Watchman, 2026-04-05)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/L._Ron_Hubbard L. Ron Hubbard] (Wikipedia, 2026-04-05)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://news.google.com/rss/articles/CBMi4gFBVV95cUxPdWlWakVsZHM4c3laeFBJWkR3cEM1ZFZXcXI1c1EwYzJVS2h4ZTBGSmZDQ3MzMUpKS3pqVWEtbmR4NmVya1pYS2F2R2NnOUs5RmFxdlZEd0R2TGNVZUNkUTNKdnR5ZUM0M3IzNC1xYW8wX21OUF80QlcwS2FZa3VVRVRNeG9uUWRIUkdhNEpYZFljdENWSG9pNzdDRUV2SGMwUXJwam1RNV91YV9qZ0wwNjB2cDR0VjBDZ09DVU1ZWkVXYWlTMXZRd0JXcXI1clhyY0VCOWpBX0VPTFJFYVVSb3RR?oc=5 Citizen group gets required signatures to put Scientology land sale to voters - wtsp.com] (Google News RSS: Scientology, 2026-03-17)&lt;br /&gt;
* [http://www.animationinsider.com/2016/05/mark-ohare/ Mark OHare – Animation Insider] (animationinsider.com, 2026-04-04)&lt;br /&gt;
* [https://news.google.com/rss/articles/CBMirAFBVV95cUxOOWc4eTdleUdsUXVzQUo3VU90MEpENUIyUjVkMTVYZnNpc3F1OHM0OHJMVkJETTVwUjhQWGJCZ0tTcTc3aVhsTkJfSXJpaExFaGM2dXp6RGNLQTRSTFI2S1FkQVFyMnRPdllNeXhBQXg3YTJXZDdnQkI5NmJ1UHdsSEl5dVBSX0FsalVBZDJDeG1uMjY0b3JmU0QzZmZMQ2ZPOXZMY3RTNjFRbkJG?oc=5 Scientology&#039;s Celebrity Turnout for Leader&#039;s Birthday - National Today] (Google News RSS: Scientology, 2026-03-30)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://europepmc.org/article/MED/40255414 Electroconvulsive Therapy (ECT): Reiterating the Call for Urgent Attention.] (, 2025-04-16)&lt;br /&gt;
* [https://europepmc.org/article/MED/35944870 An area of greatest vulnerability - Recent advances in kidney injury.] (, 2022-08-06)&lt;br /&gt;
* [https://europepmc.org/article/MED/39113763 Do large language models have a legal duty to tell the truth?] (, 2024-08-07)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* No linked sample records yet.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview_2&amp;diff=2564</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview 2</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview_2&amp;diff=2564"/>
		<updated>2026-04-05T13:09:46Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Total records&lt;br /&gt;
| 44 linked source records&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Databases&lt;br /&gt;
| [[#cultopedia-databases|13 database records]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|10 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|21 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|0 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-04-01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-databases&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Databases ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/David_Miscavige David Miscavige] (Wikipedia, 2026-04-05)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/David_Miscavige David Miscavige] (Wikipedia, 2026-04-05)&lt;br /&gt;
* [https://www.watchman.org/index-of-cults-and-religions/ Church of Scientology] (Watchman, 2026-04-05)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://www.wtsp.com/article/news/local/pinellascounty/citizen-group-signatures-scientology-land-sale-voters/67-64da8ae3-3637-477d-b662-ca6e73d61ba9 Citizen group gets required signatures to put Scientology land sale to voters] (wtsp.com, 2026-03-18)&lt;br /&gt;
* [https://www.lolwot.com/tom-cruise-net-worth/ Tom Cruise Net Worth] (lolwot.com, 2026-04-04)&lt;br /&gt;
* [https://news.google.com/rss/articles/CBMipwFBVV95cUxQYUhMRlY1Ry1GZEhxNGhJTjRxYnFMOHhpaWhSVE1OODBpWG13RmQzX2Q0LVVJLS1QR3BKdkR2UEhTWThEaVdJX2pDeTlMdzF0VUJyRm1ZYVhrdGxIanJXbWQtVU9XbDdKNXdVTXZFR012TktaY05GSEhhdEZSLWRXaEZjNmFVQlBGeWFqbjM3QnhZNzRqQWsyRGQtQTZlU3htMFctaWpJRQ?oc=5 Elisabeth Moss Subtly Goes Against Scientology After Hitting Back At Fans Who Called The Church &#039;Evil&#039; - SheKnows] (Google News RSS: Scientology, 2026-04-01)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://europepmc.org/article/MED/39113763 Do large language models have a legal duty to tell the truth?] (, 2024-08-07)&lt;br /&gt;
* [https://europepmc.org/article/MED/39113763 Do large language models have a legal duty to tell the truth?] (, 2024-08-07)&lt;br /&gt;
* [https://europepmc.org/article/MED/34887799 Psychedelics as Tools for Belief Transmission. Set, Setting, Suggestibility, and Persuasion in the Ritual Use of Hallucinogens.] (, 2021-11-23)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* No linked sample records yet.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=2563</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=2563"/>
		<updated>2026-04-05T13:02:07Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Total records&lt;br /&gt;
| 44 linked source records&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Databases&lt;br /&gt;
| 13 background records from Wikipedia and Watchman&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|10 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|21 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|0 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-04-01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://example.org/2026/negative/news/2 Mock negative news item 2 for 2026] (Mock imported source, 2026-02-04)&lt;br /&gt;
* [https://example.org/2026/positive/news/1 Mock positive news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/neutral/news/1 Mock neutral news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/negative/news/1 Mock negative news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/10 Mock negative news item 10 for 2025] (Mock imported source, 2025-10-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/9 Mock negative news item 9 for 2025] (Mock imported source, 2025-09-25)&lt;br /&gt;
* [https://example.org/2025/neutral/news/7 Mock neutral news item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/negative/news/6 Mock negative news item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://example.org/2026/negative/science/4 Mock negative science item 4 for 2026] (Mock imported source, 2026-04-10)&lt;br /&gt;
* [https://example.org/2025/negative/science/12 Mock negative science item 12 for 2025] (Mock imported source, 2025-12-07)&lt;br /&gt;
* [https://example.org/2025/neutral/science/8 Mock neutral science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/negative/science/8 Mock negative science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/neutral/science/5 Mock neutral science item 5 for 2025] (Mock imported source, 2025-05-13)&lt;br /&gt;
* [https://example.org/2025/negative/science/4 Mock negative science item 4 for 2025] (Mock imported source, 2025-04-10)&lt;br /&gt;
* [https://example.org/2025/positive/science/3 Mock positive science item 3 for 2025] (Mock imported source, 2025-03-07)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://example.org/2026/negative/video/3 Mock negative video item 3 for 2026] (Mock imported source, 2026-03-07)&lt;br /&gt;
* [https://example.org/2025/negative/video/11 Mock negative video item 11 for 2025] (Mock imported source, 2025-11-04)&lt;br /&gt;
* [https://example.org/2025/negative/video/7 Mock negative video item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/neutral/video/6 Mock neutral video item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
* [https://example.org/2025/negative/video/15 Mock negative video item 15 for 2025] (Mock imported source, 2025-03-16)&lt;br /&gt;
* [https://example.org/2025/neutral/video/3 Mock neutral video item 3 for 2025] (Mock imported source, 2025-03-07)&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=2562</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=2562"/>
		<updated>2026-04-05T12:56:55Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Total records&lt;br /&gt;
| 44 linked source records&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|11 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|7 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|7 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-04-01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://example.org/2026/negative/news/2 Mock negative news item 2 for 2026] (Mock imported source, 2026-02-04)&lt;br /&gt;
* [https://example.org/2026/positive/news/1 Mock positive news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/neutral/news/1 Mock neutral news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/negative/news/1 Mock negative news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/10 Mock negative news item 10 for 2025] (Mock imported source, 2025-10-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/9 Mock negative news item 9 for 2025] (Mock imported source, 2025-09-25)&lt;br /&gt;
* [https://example.org/2025/neutral/news/7 Mock neutral news item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/negative/news/6 Mock negative news item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://example.org/2026/negative/science/4 Mock negative science item 4 for 2026] (Mock imported source, 2026-04-10)&lt;br /&gt;
* [https://example.org/2025/negative/science/12 Mock negative science item 12 for 2025] (Mock imported source, 2025-12-07)&lt;br /&gt;
* [https://example.org/2025/neutral/science/8 Mock neutral science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/negative/science/8 Mock negative science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/neutral/science/5 Mock neutral science item 5 for 2025] (Mock imported source, 2025-05-13)&lt;br /&gt;
* [https://example.org/2025/negative/science/4 Mock negative science item 4 for 2025] (Mock imported source, 2025-04-10)&lt;br /&gt;
* [https://example.org/2025/positive/science/3 Mock positive science item 3 for 2025] (Mock imported source, 2025-03-07)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://example.org/2026/negative/video/3 Mock negative video item 3 for 2026] (Mock imported source, 2026-03-07)&lt;br /&gt;
* [https://example.org/2025/negative/video/11 Mock negative video item 11 for 2025] (Mock imported source, 2025-11-04)&lt;br /&gt;
* [https://example.org/2025/negative/video/7 Mock negative video item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/neutral/video/6 Mock neutral video item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
* [https://example.org/2025/negative/video/15 Mock negative video item 15 for 2025] (Mock imported source, 2025-03-16)&lt;br /&gt;
* [https://example.org/2025/neutral/video/3 Mock neutral video item 3 for 2025] (Mock imported source, 2025-03-07)&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=2561</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=2561"/>
		<updated>2026-04-05T12:52:38Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Raw source mentions&lt;br /&gt;
| 44 linked raw source rows&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Raw source breakdown&lt;br /&gt;
| Wikipedia: 12, GDELT: 5, Europe PMC: 17, Watchman: 1, RSS: 5, PubMed: 4, YouTube: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|11 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|7 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|7 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-04-01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://example.org/2026/negative/news/2 Mock negative news item 2 for 2026] (Mock imported source, 2026-02-04)&lt;br /&gt;
* [https://example.org/2026/positive/news/1 Mock positive news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/neutral/news/1 Mock neutral news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/negative/news/1 Mock negative news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/10 Mock negative news item 10 for 2025] (Mock imported source, 2025-10-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/9 Mock negative news item 9 for 2025] (Mock imported source, 2025-09-25)&lt;br /&gt;
* [https://example.org/2025/neutral/news/7 Mock neutral news item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/negative/news/6 Mock negative news item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://example.org/2026/negative/science/4 Mock negative science item 4 for 2026] (Mock imported source, 2026-04-10)&lt;br /&gt;
* [https://example.org/2025/negative/science/12 Mock negative science item 12 for 2025] (Mock imported source, 2025-12-07)&lt;br /&gt;
* [https://example.org/2025/neutral/science/8 Mock neutral science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/negative/science/8 Mock negative science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/neutral/science/5 Mock neutral science item 5 for 2025] (Mock imported source, 2025-05-13)&lt;br /&gt;
* [https://example.org/2025/negative/science/4 Mock negative science item 4 for 2025] (Mock imported source, 2025-04-10)&lt;br /&gt;
* [https://example.org/2025/positive/science/3 Mock positive science item 3 for 2025] (Mock imported source, 2025-03-07)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://example.org/2026/negative/video/3 Mock negative video item 3 for 2026] (Mock imported source, 2026-03-07)&lt;br /&gt;
* [https://example.org/2025/negative/video/11 Mock negative video item 11 for 2025] (Mock imported source, 2025-11-04)&lt;br /&gt;
* [https://example.org/2025/negative/video/7 Mock negative video item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/neutral/video/6 Mock neutral video item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
* [https://example.org/2025/negative/video/15 Mock negative video item 15 for 2025] (Mock imported source, 2025-03-16)&lt;br /&gt;
* [https://example.org/2025/neutral/video/3 Mock neutral video item 3 for 2025] (Mock imported source, 2025-03-07)&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Jorge_%C3%81ngel_Livraga_Rizzi&amp;diff=2560</id>
		<title>Jorge Ángel Livraga Rizzi</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Jorge_%C3%81ngel_Livraga_Rizzi&amp;diff=2560"/>
		<updated>2026-04-05T10:08:29Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: fix malformed cite templates on Jorge Ángel Livraga Rizzi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Short description|Argentine writer and poet (1930–1991)}}&lt;br /&gt;
{{Multiple issues|&lt;br /&gt;
{{Primary sources|date=January 2018}}&lt;br /&gt;
{{Original research|date=January 2018}}&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox philosopher&lt;br /&gt;
| image            = &lt;br /&gt;
| region           = Western Philosophy&lt;br /&gt;
| era              = [[20th-century philosophy]]&lt;br /&gt;
| name             = Jorge Angel Livraga Rizzi&lt;br /&gt;
| birth_date       = September 3, 1930&lt;br /&gt;
| birth_place      = [[Buenos Aires]], Argentina&lt;br /&gt;
| death_date       = October 7, 1991&lt;br /&gt;
| death_place      = [[Madrid]], Spain&lt;br /&gt;
| school_tradition = [[Western esotericism|Esotericism]], [[Theosophy (Blavatskian)|Theosophy]], [[Neoplatonism]], [[Humanism]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Jorge Ángel Livraga Rizzi&#039;&#039;&#039; (September 3, 1930 – October 7, 1991) was an Argentine poet, novelist,&amp;lt;ref&amp;gt;[http://id.loc.gov/authorities/names/n83220316.html Library of the US Congress], consulted on March 11, 2018&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://dialnet.unirioja.es/servlet/autor?codigo=1631878 Dialnet Foundation, University of La Rioja, Spain], consulted on March 11, 2018&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://datos.bne.es/persona/XX4578835.html National Library of Spain], consulted on March 11, 2018&amp;lt;/ref&amp;gt; self-taught philosopher, essayist, educator and lecturer of Italian heritage best known for having founded and directed [[New Acropolis]], an international philosophical educational and cultural organisation.  &lt;br /&gt;
&lt;br /&gt;
His works have been translated into several languages, titles in English include the novels &#039;&#039;The Alchemist&#039;&#039; and &#039;&#039;Ankor, the Last Prince of Atlantis&#039;&#039;, as well as &#039;&#039;The Spirits of Nature&#039;&#039; and &#039;&#039;Thebes&#039;&#039;, two studies on [[Western esotericism|esotericism]].&lt;br /&gt;
&lt;br /&gt;
He was born in [[Buenos Aires]], [[Argentina]], and died in [[Madrid]], [[Spain]].&amp;lt;ref&amp;gt;{{cite news| title = Biography of Jorge Livraga| work = Baklabra.net website| url = http://www.bakalabra.net/acropol/index.php?option=com_content&amp;amp;task=view&amp;amp;id=50&amp;amp;Itemid=125 | access-date = 2008-03-25}} {{Dead link|date=October 2010|bot=H3llBot}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=https://www.acropolis.org/en/our-founder |title=New Acropolis, International Page |access-date=2019-09-12 |archive-date=2020-08-04 |archive-url=https://web.archive.org/web/20200804232558/https://www.acropolis.org/en/our-founder |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Livraga was convicted for illegal arm possession in 1988 by Madrid&#039;s Provincial Court.&amp;lt;ref&amp;gt;[http://www.pepe-rodriguez.com/Sectas/Casos/NA/Nueva_Acropolis_Livraga.htm Condena de Jorge Livraga.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biography==&lt;br /&gt;
&lt;br /&gt;
His mother, Victoria Rizzi, and his father, Ángel Livraga, an industrial engineer, were of Italian origin whose families had emigrated to Argentina in the late 19th century; (Livraga himself would later gain Italian citizenship). Livraga&#039;s father died when he was 15, and this led to a spiritual crisis, where, via his English teacher, he eventually came into contact with the Argentine [[Theosophical Society]] in the early fifties.&amp;lt;ref name=&amp;quot;About the founder of NA&amp;quot;&amp;gt;{{cite news|title=About the founder of NA |work=New Acropolis Uruguay website |url=http://www.acropolis.org.uy/QuienesSomos/JAL.asp |access-date=2008-03-29 |archive-url=https://web.archive.org/web/20080113142116/http://acropolis.org.uy/QuienesSomos/JAL.asp |archive-date=2008-01-13 |url-status=dead }}&amp;lt;/ref&amp;gt; He was a member of the Theosophical Society from 1950 to 1962.&amp;lt;ref&amp;gt;{{cite news| title = Theosophy talk| work =archives | url = http://www.theos-talk.com/archives/199802/tt00311.html| access-date = 2016-04-28}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
At some point, he founded the magazine &#039;&#039;Estudios Teosóficos&#039;&#039; with [[Ada Albrecht]], and founded [[New Acropolis]], an association intended to promote Philosophy, along the lines of the classical Schools of Philosophy, such as Plato’s Academy.  Livraga began to expand New Acropolis to other Latin American countries: Uruguay, Chile (in 1965),&amp;lt;ref&amp;gt;{{cite news|title=About NA |work=New Acropolis Chile website |url=http://www.nueva-acropolischile.org/que_es_na.html |archive-url=https://web.archive.org/web/20070217005425/http://www.nueva-acropolischile.org/que_es_na.html |url-status=dead |archive-date=2007-02-17 |access-date=2008-03-29 }}&amp;lt;/ref&amp;gt; Perú, Brasil and Bolivia.&amp;lt;ref name=&amp;quot;About the founder of NA&amp;quot;/&amp;gt; Livraga&#039;s activities during this period consisted in writing the extensive course manuals.&amp;lt;ref&amp;gt;{{cite news| title = Study program| work = New Acropolis UK website| url = http://www.newacropolisuk.org/Courses.php| access-date = 2008-03-27| archive-date = 2016-07-17| archive-url = https://web.archive.org/web/20160717195426/http://www.newacropolisuk.org/courses.php| url-status = dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
He also had an interest in archeology, regularly organizing private expeditions and maintained a collection housed in a private museum, the [[Rodrigo Caro]] Museum.&amp;lt;ref name=&amp;quot;Martinez text&amp;quot;&amp;gt;{{cite news| title = Martinez text| work =the story of the founder of NA}}&amp;lt;/ref&amp;gt; After his death, his natal home in Buenos Aires was converted into a museum in his name.&amp;lt;ref&amp;gt;{{cite news|title=About the founder of NA |work=New Acropolis Spain website |url=http://www.nueva-acropolis.es/NuevaAcropolis/fundador.htm |access-date=2008-03-29 |archive-url=https://web.archive.org/web/20080303180141/http://www.nueva-acropolis.es/NuevaAcropolis/fundador.htm |archive-date=2008-03-03 |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Claims==&lt;br /&gt;
His official New Acropolis biography {{cn|date=February 2019}} claims that he was an academic member of the Esoteric group known as the International Philo-Byzantine Academy and University (IPHBAU) that according to the [[James Randi Foundation]] gives doctorates in Divinity,&amp;lt;ref&amp;gt;{{cite web|last1=Randi|first1=James|title=Bad and Good Stars in the Sky|url=http://archive.randi.org/site/index.php/swift-blog/441-bad-and-good-sta..|access-date=9 January 2018}}&amp;lt;/ref&amp;gt; and the New Acropolis-related publishing house International Burckhardt Academy in Italy.&amp;lt;ref name=&amp;quot;Juan&amp;quot;&amp;gt;{{cite web|last1=Ruysbröeck|first1=Juan|title=El Gran Engaño La verdad sobre Nueva Acrópolis|url=http://alerta-elgranengano.blogspot.com/|access-date=9 January 2018}}&amp;lt;/ref&amp;gt; It also claims that he was a knight of the fictional Real Orden de San Ildefonso y San Atilano, and a recipient of the silver cross from the Société Académique Arts Sciences Lettres (France), nevertheless apart from his New Acropolis biography no second hand source confirms such claims.&amp;lt;ref&amp;gt;{{cite web|last=Deslauriers|first=Catherine|title=Philosophie ou secte dans notre quartier|date=2 September 2013|url=http://impactcampus.ca/actualites/philosophie-secte-notre-quartier/|website=Impact Campus|access-date=9 January 2018}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;controverse&amp;quot;&amp;gt;{{cite web|title=La controverse acropolitaine|date=27 April 2014|url=http://montagnedesdieux.com/la-controverse-acropolitaine/|website=Montagne des Dieux|access-date=9 January 2018}}&amp;lt;/ref&amp;gt; His official biography use to list him as archeologist and doctor in philosophy from the inexistent Aztec Academy of Arts, but once such Academy was proven to be fictional the claim was retired.&amp;lt;ref name=&amp;quot;Juan&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
His official biography often claims that he won the Argentine National Poetry Prize with his book &#039;&#039;Lotuses&#039;&#039;, however no source of such claim exists outside of New Acropolis and he&#039;s not listed as such in any source of the Argentinean government.&amp;lt;ref&amp;gt;{{cite web |last1=Ozaeta |first1=Ulysses |title=Nueva Acrópolis, una secta disfrazada de organización cultural y filantrópica |url=https://www.youtube.com/watch?v=za5lpDLVPmo  |archive-url=https://ghostarchive.org/varchive/youtube/20211221/za5lpDLVPmo |archive-date=2021-12-21 |url-status=live|website=Ulysses Ozaeta - Página Oficial |date=5 February 2017 |access-date=13 January 2019}}{{cbignore}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Selected works (original Spanish editions)==&lt;br /&gt;
* Ankor, El Discipulo - (A novel about spiritual initiation in Atlantis)- 1972 - Cunillera. Nuevas Ciencias.&amp;lt;ref&amp;gt;[http://www.libreroonline.com/espana/libros/522385/livraga-rizzi-jorge-a/ankor-el-discipulo.html Librero en línea, ed. Cunillera, S.L.], &lt;br /&gt;
accessed September 12, 2019&amp;lt;/ref&amp;gt;&lt;br /&gt;
* El Alqimista - (a historical novel)  1974 - {{ISBN|84-230-0041-9}} - {{ISBN|978-84-230-0041-8}} - Editorial Cunillera.&amp;lt;ref&amp;gt;[http://www.libreroonline.com/espana/libros/522382/livraga-rizzi-jorge-a/alquimista-el.html Librero en línea, ed. Cunillera, S.L.], accessed September 12, 2019&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Manual de primer curso: [ética, socio-política, filosofía de la historia]- Madrid : Nueva Acrópolis, D.L. 1978. {{ISBN|84-300-0173-5}}&lt;br /&gt;
* Moassy El Perro - (a novel about society)- 1980 - Nueva Acrópolis&lt;br /&gt;
* Cartas a Delia y Fernando - (philosophical work) Madrid : Nueva Acròpolis, 1981. {{ISBN|84-300-4075-7}}&lt;br /&gt;
* Pensamientos - (a collection of quotations)-  1982 -Nueva Acrópolis - {{ISBN|84-85982-02-9}}&lt;br /&gt;
* Ideario - vols. I, II &amp;amp; III - (A compilation of magazine articles)&lt;br /&gt;
* Los espíritus elementales de la naturaleza (The elemental spirits of nature, an esoteric study) - Madrid : Nueva Acrópolis, D.L. 1985. {{ISBN|84-85982-19-3}}&lt;br /&gt;
* Tebas - (Thebes, a study of Egypt) Valencia : Nueva Acrópolis, D.L. 1986. {{ISBN|84-85982-26-6}}&lt;br /&gt;
* Jorge Ángel Livraga. El teatro Mistérico en Grecia I. La Tragedia. (A study of ancient Greek theater) Ed. NA -1987 -Editorial Nueva Acrópolis - {{ISBN|84-85982-28-2}}&lt;br /&gt;
* Magia, Religion y Ciencia para el tercer Milenio I, II, III &amp;amp; IV- (a collection of lecture transcripts) 1995 - Nueva Acropolis, A.C.-{{ISBN|84-85982-61-4}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://web.archive.org/web/20060127202304/http://www.acropolis.org/about/jal.aspx?lang=eng Livraga&#039;s biography on acropolis.org]&lt;br /&gt;
* &lt;br /&gt;
{{Authority control}}&lt;br /&gt;
{{DEFAULTSORT:Livraga Rizzi, Jorge Angel}}&lt;br /&gt;
[[Category:1930 births]]&lt;br /&gt;
[[Category:1991 deaths]]&lt;br /&gt;
[[Category:20th-century Argentine philosophers]]&lt;br /&gt;
[[Category:Argentine people of Italian descent]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:EditAtWikidata&amp;diff=2559</id>
		<title>Module:EditAtWikidata</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:EditAtWikidata&amp;diff=2559"/>
		<updated>2026-04-05T10:07:42Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard Module:EditAtWikidata on non-Wikibase wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Module to display an icon with a tooltip such as &amp;quot;Edit this at Wikidata&amp;quot;.&lt;br /&gt;
-- Icon is linked to the Wikidata entry for the article where this is placed.&lt;br /&gt;
-- This message is only displayed if a local_parameter is not supplied&lt;br /&gt;
-- i.e. when called from a template, it can be coded not to display the message.&lt;br /&gt;
-- The qid of a Wikidata entry can optionally be supplied for testing outside the article.&lt;br /&gt;
-- Usage:&lt;br /&gt;
-- {{#invoke:EditAtWikidata|showMessage|local_parameter}}&lt;br /&gt;
-- {{#invoke:EditAtWikidata|showMessage|qid=&amp;lt;ArticleID&amp;gt;|local_parameter}}&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local i18n =&lt;br /&gt;
{&lt;br /&gt;
	[&amp;quot;message&amp;quot;] = &amp;quot;Edit this at Wikidata&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function trimToNil(text)&lt;br /&gt;
	-- Return trimmed non-empty text, or nil.&lt;br /&gt;
	if type(text) == &#039;string&#039; then&lt;br /&gt;
		return text:match(&#039;(%S.-)%s*$&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._showMessage(args)&lt;br /&gt;
	local local_parm = trimToNil(args[1])&lt;br /&gt;
	if local_parm then return &amp;quot;&amp;quot; end&lt;br /&gt;
	if not mw.wikibase then return &amp;quot;&amp;quot; end&lt;br /&gt;
	-- Parameter qid=x specifies the Wikidata ID for the article.&lt;br /&gt;
	-- This is not normally used except for testing outside the article.&lt;br /&gt;
	local qid = trimToNil(args.qid) or (mw.wikibase.getEntityIdForCurrentPage and mw.wikibase.getEntityIdForCurrentPage())&lt;br /&gt;
	if qid and mw.wikibase.entityExists(qid) then&lt;br /&gt;
		-- Parameter pid=x uses x as an anchor in the link to the Wikidata entry.&lt;br /&gt;
		local anchor = trimToNil(args.pid)&lt;br /&gt;
		-- Parameter nbsp replaces the leading space with &amp;amp;nbsp;&lt;br /&gt;
		local space = trimToNil(args.nbsp) and &amp;quot;&amp;amp;nbsp;&amp;quot; or &amp;quot; &amp;quot;&lt;br /&gt;
		return&lt;br /&gt;
			space ..&lt;br /&gt;
			&amp;quot;[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px&amp;quot; ..&lt;br /&gt;
			&amp;quot;|alt=&amp;quot; .. i18n.message ..&lt;br /&gt;
			&amp;quot;|link=https://www.wikidata.org/wiki/&amp;quot; .. qid ..&lt;br /&gt;
			(anchor and (&amp;quot;#&amp;quot; .. anchor) or &amp;quot;&amp;quot;) ..&lt;br /&gt;
			&amp;quot;|class=noprint&amp;quot; ..&lt;br /&gt;
			&amp;quot;|&amp;quot; .. i18n.message ..&lt;br /&gt;
			&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.showMessage(frame)&lt;br /&gt;
	return p._showMessage(frame.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:Coordinates&amp;diff=2558</id>
		<title>Module:Coordinates</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Coordinates&amp;diff=2558"/>
		<updated>2026-04-05T10:06:12Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard Module:Coordinates Wikibase tracking on non-Wikibase wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
This module is intended to replace the functionality of {{Coord}} and related&lt;br /&gt;
templates.  It provides several methods, including&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | coord }} : General function formatting and displaying&lt;br /&gt;
coordinate values.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal&lt;br /&gt;
degree values to DMS format.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format&lt;br /&gt;
to decimal degree format.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | link }} : Export the link used to reach the tools&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local math_mod = require(&amp;quot;Module:Math&amp;quot;)&lt;br /&gt;
local coordinates = {};&lt;br /&gt;
local isSandbox = mw.getCurrentFrame():getTitle():find(&#039;sandbox&#039;, 1, true);&lt;br /&gt;
&lt;br /&gt;
local current_page = mw.title.getCurrentTitle()&lt;br /&gt;
local page_name = mw.uri.encode( current_page.prefixedText, &#039;WIKI&#039; );&lt;br /&gt;
local coord_link = &#039;https://geohack.toolforge.org/geohack.php?pagename=&#039; .. page_name .. &#039;&amp;amp;params=&#039;&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, replacement for {{coord/display/title}} ]]&lt;br /&gt;
local function displaytitle(coords)&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &#039;indicator&#039;,&lt;br /&gt;
		args = { name = &#039;coordinates&#039; },&lt;br /&gt;
		content = &#039;&amp;lt;span id=&amp;quot;coordinates&amp;quot;&amp;gt;[[Geographic coordinate system|Coordinates]]: &#039; .. coords .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, used in detecting DMS formatting ]]&lt;br /&gt;
local function dmsTest(first, second)&lt;br /&gt;
	if type(first) ~= &#039;string&#039; or type(second) ~= &#039;string&#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local s = (first .. second):upper()&lt;br /&gt;
	return s:find(&#039;^[NS][EW]$&#039;) or s:find(&#039;^[EW][NS]$&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[ Wrapper function to grab args, see Module:Arguments for this function&#039;s documentation. ]]&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
			wrappers = &#039;Template:Coord&#039;&lt;br /&gt;
		})&lt;br /&gt;
		return coordinates[funcName](args, frame)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, handle optional args. ]]&lt;br /&gt;
local function optionalArg(arg, supplement)&lt;br /&gt;
	return arg and arg .. supplement or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Formats any error messages generated for display&lt;br /&gt;
]]&lt;br /&gt;
local function errorPrinter(errors)&lt;br /&gt;
	local result = &amp;quot;&amp;quot;&lt;br /&gt;
	for i,v in ipairs(errors) do&lt;br /&gt;
		result = result .. &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Coordinates: &#039; .. v[2] .. &#039;&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Determine the required CSS class to display coordinates&lt;br /&gt;
&lt;br /&gt;
Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself&lt;br /&gt;
default is the mode as specificied by the user when calling the {{coord}} template&lt;br /&gt;
mode is the display mode (dec or dms) that we will need to determine the css class for&lt;br /&gt;
]]&lt;br /&gt;
local function displayDefault(default, mode)&lt;br /&gt;
	if default == &amp;quot;&amp;quot; then&lt;br /&gt;
		default = &amp;quot;dec&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if default == mode then&lt;br /&gt;
		return &amp;quot;geo-default&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;geo-nondefault&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
specPrinter&lt;br /&gt;
&lt;br /&gt;
Output formatter.  Takes the structure generated by either parseDec&lt;br /&gt;
or parseDMS and formats it for inclusion on Wikipedia.&lt;br /&gt;
]]&lt;br /&gt;
local function specPrinter(args, coordinateSpec)&lt;br /&gt;
	local uriComponents = coordinateSpec[&amp;quot;param&amp;quot;]&lt;br /&gt;
	if uriComponents == &amp;quot;&amp;quot; then&lt;br /&gt;
		-- RETURN error, should never be empty or nil&lt;br /&gt;
		return &amp;quot;ERROR param was empty&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;quot;name&amp;quot;] then&lt;br /&gt;
		uriComponents = uriComponents .. &amp;quot;&amp;amp;title=&amp;quot; .. mw.uri.encode(coordinateSpec[&amp;quot;name&amp;quot;])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local geodmshtml = &#039;&amp;lt;span class=&amp;quot;geo-dms&amp;quot; title=&amp;quot;Maps, aerial photos, and other data for this location&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			.. &#039;&amp;lt;span class=&amp;quot;latitude&amp;quot;&amp;gt;&#039; .. coordinateSpec[&amp;quot;dms-lat&amp;quot;] .. &#039;&amp;lt;/span&amp;gt; &#039;&lt;br /&gt;
			.. &#039;&amp;lt;span class=&amp;quot;longitude&amp;quot;&amp;gt;&#039; ..coordinateSpec[&amp;quot;dms-long&amp;quot;] .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
			.. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
	local lat = tonumber( coordinateSpec[&amp;quot;dec-lat&amp;quot;] ) or 0&lt;br /&gt;
	local geodeclat&lt;br /&gt;
	if lat &amp;lt; 0 then&lt;br /&gt;
		-- FIXME this breaks the pre-existing precision&lt;br /&gt;
		geodeclat = tostring(coordinateSpec[&amp;quot;dec-lat&amp;quot;]):sub(2) .. &amp;quot;°S&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		geodeclat = (coordinateSpec[&amp;quot;dec-lat&amp;quot;] or 0) .. &amp;quot;°N&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local long = tonumber( coordinateSpec[&amp;quot;dec-long&amp;quot;] ) or 0&lt;br /&gt;
	local geodeclong&lt;br /&gt;
	if long &amp;lt; 0 then&lt;br /&gt;
		-- FIXME does not handle unicode minus&lt;br /&gt;
		geodeclong = tostring(coordinateSpec[&amp;quot;dec-long&amp;quot;]):sub(2) .. &amp;quot;°W&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		geodeclong = (coordinateSpec[&amp;quot;dec-long&amp;quot;] or 0) .. &amp;quot;°E&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local geodechtml = &#039;&amp;lt;span class=&amp;quot;geo-dec&amp;quot; title=&amp;quot;Maps, aerial photos, and other data for this location&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			.. geodeclat .. &#039; &#039;&lt;br /&gt;
			.. geodeclong&lt;br /&gt;
			.. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
	local geonumhtml = &#039;&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			.. coordinateSpec[&amp;quot;dec-lat&amp;quot;] .. &#039;; &#039;&lt;br /&gt;
			.. coordinateSpec[&amp;quot;dec-long&amp;quot;]&lt;br /&gt;
			.. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
	local inner = &#039;&amp;lt;span class=&amp;quot;&#039; .. displayDefault(coordinateSpec[&amp;quot;default&amp;quot;], &amp;quot;dms&amp;quot; ) .. &#039;&amp;quot;&amp;gt;&#039; .. geodmshtml .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
				.. &#039;&amp;lt;span class=&amp;quot;geo-multi-punct&amp;quot;&amp;gt;&amp;amp;#xfeff; / &amp;amp;#xfeff;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
				.. &#039;&amp;lt;span class=&amp;quot;&#039; .. displayDefault(coordinateSpec[&amp;quot;default&amp;quot;], &amp;quot;dec&amp;quot; ) .. &#039;&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	if not args[&amp;quot;name&amp;quot;] then&lt;br /&gt;
		inner = inner .. geodechtml&lt;br /&gt;
				.. &#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; / &#039; .. geonumhtml .. &#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		inner = inner .. &#039;&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&#039; .. geodechtml&lt;br /&gt;
				.. &#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; / &#039; .. geonumhtml .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
				.. &#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; (&amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;&#039;&lt;br /&gt;
				.. args[&amp;quot;name&amp;quot;] .. &#039;&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    local stylesheetLink = &#039;Module:Coordinates&#039; .. ( isSandbox and &#039;/sandbox&#039; or &#039;&#039; ) .. &#039;/styles.css&#039;&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;, args = { src = stylesheetLink }&lt;br /&gt;
	} .. &#039;&amp;lt;span class=&amp;quot;plainlinks nourlexpansion&amp;quot;&amp;gt;[&#039; .. coord_link .. uriComponents ..&lt;br /&gt;
	&#039; &#039; .. inner .. &#039;]&amp;lt;/span&amp;gt;&#039; .. &#039;[[Category:Pages using gadget WikiMiniAtlas]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, convert decimal to degrees ]]&lt;br /&gt;
local function convert_dec2dms_d(coordinate)&lt;br /&gt;
	local d = math_mod._round( coordinate, 0 ) .. &amp;quot;°&amp;quot;&lt;br /&gt;
	return d .. &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, convert decimal to degrees and minutes ]]&lt;br /&gt;
local function convert_dec2dms_dm(coordinate)&lt;br /&gt;
	coordinate = math_mod._round( coordinate * 60, 0 );&lt;br /&gt;
	local m = coordinate % 60;&lt;br /&gt;
	coordinate = math.floor( (coordinate - m) / 60 );&lt;br /&gt;
	local d = coordinate % 360 ..&amp;quot;°&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return d .. string.format( &amp;quot;%02d′&amp;quot;, m )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, convert decimal to degrees, minutes, and seconds ]]&lt;br /&gt;
local function convert_dec2dms_dms(coordinate)&lt;br /&gt;
	coordinate = math_mod._round( coordinate * 60 * 60, 0 );&lt;br /&gt;
	local s = coordinate % 60&lt;br /&gt;
	coordinate = math.floor( (coordinate - s) / 60 );&lt;br /&gt;
	local m = coordinate % 60&lt;br /&gt;
	coordinate = math.floor( (coordinate - m) / 60 );&lt;br /&gt;
	local d = coordinate % 360 ..&amp;quot;°&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return d .. string.format( &amp;quot;%02d′&amp;quot;, m ) .. string.format( &amp;quot;%02d″&amp;quot;, s )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function, convert decimal latitude or longitude to&lt;br /&gt;
degrees, minutes, and seconds format based on the specified precision.&lt;br /&gt;
]]&lt;br /&gt;
local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision)&lt;br /&gt;
	local coord = tonumber(coordinate)&lt;br /&gt;
	local postfix&lt;br /&gt;
	if coord &amp;gt;= 0 then&lt;br /&gt;
		postfix = firstPostfix&lt;br /&gt;
	else&lt;br /&gt;
		postfix = secondPostfix&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	precision = precision:lower();&lt;br /&gt;
	if precision == &amp;quot;dms&amp;quot; then&lt;br /&gt;
		return convert_dec2dms_dms( math.abs( coord ) ) .. postfix;&lt;br /&gt;
	elseif precision == &amp;quot;dm&amp;quot; then&lt;br /&gt;
		return convert_dec2dms_dm( math.abs( coord ) ) .. postfix;&lt;br /&gt;
	elseif precision == &amp;quot;d&amp;quot; then&lt;br /&gt;
		return convert_dec2dms_d( math.abs( coord ) ) .. postfix;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Convert DMS format into a N or E decimal coordinate&lt;br /&gt;
]]&lt;br /&gt;
local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str)&lt;br /&gt;
	local degrees = tonumber(degrees_str)&lt;br /&gt;
	local minutes = tonumber(minutes_str) or 0&lt;br /&gt;
	local seconds = tonumber(seconds_str) or 0&lt;br /&gt;
&lt;br /&gt;
	local factor = 1&lt;br /&gt;
	if direction == &amp;quot;S&amp;quot; or direction == &amp;quot;W&amp;quot; then&lt;br /&gt;
		factor = -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local precision = 0&lt;br /&gt;
	if seconds_str then&lt;br /&gt;
		precision = 5 + math.max( math_mod._precision(seconds_str), 0 );&lt;br /&gt;
	elseif minutes_str and minutes_str ~= &#039;&#039; then&lt;br /&gt;
		precision = 3 + math.max( math_mod._precision(minutes_str), 0 );&lt;br /&gt;
	else&lt;br /&gt;
		precision = math.max( math_mod._precision(degrees_str), 0 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local decimal = factor * (degrees+(minutes+seconds/60)/60)&lt;br /&gt;
	return string.format( &amp;quot;%.&amp;quot; .. precision .. &amp;quot;f&amp;quot;, decimal ) -- not tonumber since this whole thing is string based.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Checks input values to for out of range errors.&lt;br /&gt;
]]&lt;br /&gt;
local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong )&lt;br /&gt;
	local errors = {};&lt;br /&gt;
	lat_d = tonumber( lat_d ) or 0;&lt;br /&gt;
	lat_m = tonumber( lat_m ) or 0;&lt;br /&gt;
	lat_s = tonumber( lat_s ) or 0;&lt;br /&gt;
	long_d = tonumber( long_d ) or 0;&lt;br /&gt;
	long_m = tonumber( long_m ) or 0;&lt;br /&gt;
	long_s = tonumber( long_s ) or 0;&lt;br /&gt;
&lt;br /&gt;
	if strong then&lt;br /&gt;
		if lat_d &amp;lt; 0 then&lt;br /&gt;
			table.insert(errors, {source, &amp;quot;latitude degrees &amp;lt; 0 with hemisphere flag&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		if long_d &amp;lt; 0 then&lt;br /&gt;
			table.insert(errors, {source, &amp;quot;longitude degrees &amp;lt; 0 with hemisphere flag&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		--[[&lt;br /&gt;
		#coordinates is inconsistent about whether this is an error.  If globe: is&lt;br /&gt;
		specified, it won&#039;t error on this condition, but otherwise it will.&lt;br /&gt;
&lt;br /&gt;
		For not simply disable this check.&lt;br /&gt;
&lt;br /&gt;
		if long_d &amp;gt; 180 then&lt;br /&gt;
			table.insert(errors, {source, &amp;quot;longitude degrees &amp;gt; 180 with hemisphere flag&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		]]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if lat_d &amp;gt; 90 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude degrees &amp;gt; 90&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_d &amp;lt; -90 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude degrees &amp;lt; -90&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_m &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude minutes &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_m &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude minutes &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_s &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude seconds &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_s &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude seconds &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_d &amp;gt;= 360 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude degrees &amp;gt;= 360&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_d &amp;lt;= -360 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude degrees &amp;lt;= -360&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_m &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude minutes &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_m &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude minutes &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_s &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude seconds &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_s &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude seconds &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return errors;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
parseDec&lt;br /&gt;
&lt;br /&gt;
Transforms decimal format latitude and longitude into the&lt;br /&gt;
structure to be used in displaying coordinates&lt;br /&gt;
]]&lt;br /&gt;
local function parseDec( lat, long, format )&lt;br /&gt;
	local coordinateSpec = {}&lt;br /&gt;
	local errors = {}&lt;br /&gt;
&lt;br /&gt;
	if not long then&lt;br /&gt;
		return nil, {{&amp;quot;parseDec&amp;quot;, &amp;quot;Missing longitude&amp;quot;}}&lt;br /&gt;
	elseif not tonumber(long) then&lt;br /&gt;
		return nil, {{&amp;quot;parseDec&amp;quot;, &amp;quot;Longitude could not be parsed as a number: &amp;quot; .. long}}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	errors = validate( lat, nil, nil, long, nil, nil, &#039;parseDec&#039;, false );&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-lat&amp;quot;]  = lat;&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-long&amp;quot;] = long;&lt;br /&gt;
&lt;br /&gt;
	local mode = coordinates.determineMode( lat, long );&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-lat&amp;quot;]  = convert_dec2dms( lat, &amp;quot;N&amp;quot;, &amp;quot;S&amp;quot;, mode)  -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-long&amp;quot;] = convert_dec2dms( long, &amp;quot;E&amp;quot;, &amp;quot;W&amp;quot;, mode)  -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}&lt;br /&gt;
&lt;br /&gt;
	if format then&lt;br /&gt;
		coordinateSpec.default = format&lt;br /&gt;
	else&lt;br /&gt;
		coordinateSpec.default = &amp;quot;dec&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return coordinateSpec, errors&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
parseDMS&lt;br /&gt;
&lt;br /&gt;
Transforms degrees, minutes, seconds format latitude and longitude&lt;br /&gt;
into the a structure to be used in displaying coordinates&lt;br /&gt;
]]&lt;br /&gt;
local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format )&lt;br /&gt;
	local coordinateSpec, errors, backward = {}, {}&lt;br /&gt;
&lt;br /&gt;
	lat_f = lat_f:upper();&lt;br /&gt;
	long_f = long_f:upper();&lt;br /&gt;
&lt;br /&gt;
	-- Check if specified backward&lt;br /&gt;
	if lat_f == &#039;E&#039; or lat_f == &#039;W&#039; then&lt;br /&gt;
		lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, &#039;parseDMS&#039;, true );&lt;br /&gt;
	if not long_d then&lt;br /&gt;
		return nil, {{&amp;quot;parseDMS&amp;quot;, &amp;quot;Missing longitude&amp;quot; }}&lt;br /&gt;
	elseif not tonumber(long_d) then&lt;br /&gt;
		return nil, {{&amp;quot;parseDMS&amp;quot;, &amp;quot;Longitude could not be parsed as a number:&amp;quot; .. long_d }}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then&lt;br /&gt;
		if math_mod._precision( lat_d ) &amp;gt; 0 or math_mod._precision( long_d ) &amp;gt; 0 then&lt;br /&gt;
			if lat_f:upper() == &#039;S&#039; then&lt;br /&gt;
				lat_d = &#039;-&#039; .. lat_d;&lt;br /&gt;
			end&lt;br /&gt;
			if long_f:upper() == &#039;W&#039; then&lt;br /&gt;
				long_d = &#039;-&#039; .. long_d;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			return parseDec( lat_d, long_d, format );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-lat&amp;quot;]  = lat_d..&amp;quot;°&amp;quot;..optionalArg(lat_m,&amp;quot;′&amp;quot;) .. optionalArg(lat_s,&amp;quot;″&amp;quot;) .. lat_f&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-long&amp;quot;] = long_d..&amp;quot;°&amp;quot;..optionalArg(long_m,&amp;quot;′&amp;quot;) .. optionalArg(long_s,&amp;quot;″&amp;quot;) .. long_f&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-lat&amp;quot;]  = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}}&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-long&amp;quot;] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}}&lt;br /&gt;
&lt;br /&gt;
	if format then&lt;br /&gt;
		coordinateSpec.default = format&lt;br /&gt;
	else&lt;br /&gt;
		coordinateSpec.default = &amp;quot;dms&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return coordinateSpec, errors, backward&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Check the input arguments for coord to determine the kind of data being provided&lt;br /&gt;
and then make the necessary processing.&lt;br /&gt;
]]&lt;br /&gt;
local function formatTest(args)&lt;br /&gt;
	local result, errors&lt;br /&gt;
	local backward, primary = false, false&lt;br /&gt;
&lt;br /&gt;
	local function getParam(args, lim)&lt;br /&gt;
		local ret = {}&lt;br /&gt;
		for i = 1, lim do&lt;br /&gt;
			ret[i] = args[i] or &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return table.concat(ret, &#039;_&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args[1] then&lt;br /&gt;
		-- no lat logic&lt;br /&gt;
		return errorPrinter( {{&amp;quot;formatTest&amp;quot;, &amp;quot;Missing latitude&amp;quot;}} )&lt;br /&gt;
	elseif not tonumber(args[1]) then&lt;br /&gt;
		-- bad lat logic&lt;br /&gt;
		return errorPrinter( {{&amp;quot;formatTest&amp;quot;, &amp;quot;Unable to parse latitude as a number:&amp;quot; .. args[1]}} )&lt;br /&gt;
	elseif not args[4] and not args[5] and not args[6] then&lt;br /&gt;
		-- dec logic&lt;br /&gt;
		result, errors = parseDec(args[1], args[2], args.format)&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors);&lt;br /&gt;
		end&lt;br /&gt;
		-- formatting for geohack: geohack expects D_N_D_E notation or D;D notation&lt;br /&gt;
		-- wikiminiatlas doesn&#039;t support D;D notation&lt;br /&gt;
		-- #coordinates parserfunction doesn&#039;t support negative decimals with NSWE&lt;br /&gt;
		result.param = table.concat({&lt;br /&gt;
			math.abs(tonumber(args[1])),&lt;br /&gt;
			((tonumber(args[1]) or 0) &amp;lt; 0) and &#039;S&#039; or &#039;N&#039;,&lt;br /&gt;
			math.abs(tonumber(args[2])),&lt;br /&gt;
			((tonumber(args[2]) or 0) &amp;lt; 0) and &#039;W&#039; or &#039;E&#039;,&lt;br /&gt;
			args[3] or &#039;&#039;}, &#039;_&#039;)&lt;br /&gt;
	elseif dmsTest(args[4], args[8]) then&lt;br /&gt;
		-- dms logic&lt;br /&gt;
		result, errors, backward = parseDMS(args[1], args[2], args[3], args[4],&lt;br /&gt;
			args[5], args[6], args[7], args[8], args.format)&lt;br /&gt;
		if args[10] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Extra unexpected parameters&#039;})&lt;br /&gt;
		end&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors)&lt;br /&gt;
		end&lt;br /&gt;
		result.param = getParam(args, 9)&lt;br /&gt;
	elseif dmsTest(args[3], args[6]) then&lt;br /&gt;
		-- dm logic&lt;br /&gt;
		result, errors, backward = parseDMS(args[1], args[2], nil, args[3],&lt;br /&gt;
			args[4], args[5], nil, args[6], args[&#039;format&#039;])&lt;br /&gt;
		if args[8] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Extra unexpected parameters&#039;})&lt;br /&gt;
		end&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors)&lt;br /&gt;
		end&lt;br /&gt;
		result.param = getParam(args, 7)&lt;br /&gt;
	elseif dmsTest(args[2], args[4]) then&lt;br /&gt;
		-- d logic&lt;br /&gt;
		result, errors, backward = parseDMS(args[1], nil, nil, args[2],&lt;br /&gt;
			args[3], nil, nil, args[4], args.format)&lt;br /&gt;
		if args[6] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Extra unexpected parameters&#039;})&lt;br /&gt;
		end&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors)&lt;br /&gt;
		end&lt;br /&gt;
		result.param = getParam(args, 5)&lt;br /&gt;
	else&lt;br /&gt;
		-- Error&lt;br /&gt;
		return errorPrinter({{&amp;quot;formatTest&amp;quot;, &amp;quot;Unknown argument format&amp;quot;}}) .. &#039;[[Category:Pages with malformed coordinate tags]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
	result.name = args.name&lt;br /&gt;
&lt;br /&gt;
	local extra_param = {&#039;dim&#039;, &#039;globe&#039;, &#039;scale&#039;, &#039;region&#039;, &#039;source&#039;, &#039;type&#039;}&lt;br /&gt;
	for _, v in ipairs(extra_param) do&lt;br /&gt;
		if args[v] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Parameter: &amp;quot;&#039; .. v .. &#039;=&amp;quot; should be &amp;quot;&#039; .. v .. &#039;:&amp;quot;&#039; })&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ret = specPrinter(args, result)&lt;br /&gt;
	if #errors &amp;gt; 0 then&lt;br /&gt;
		ret = ret .. &#039; &#039; .. errorPrinter(errors) .. &#039;[[Category:Pages with malformed coordinate tags]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return ret, backward&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Generate Wikidata tracking categories.&lt;br /&gt;
]]&lt;br /&gt;
local function makeWikidataCategories(qid)&lt;br /&gt;
	local ret&lt;br /&gt;
	if not mw.wikibase then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local qid = qid or (mw.wikibase.getEntityIdForCurrentPage and mw.wikibase.getEntityIdForCurrentPage())&lt;br /&gt;
	if current_page.namespace == 0 then&lt;br /&gt;
		if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, &amp;quot;P625&amp;quot;) and mw.wikibase.getBestStatements(qid, &amp;quot;P625&amp;quot;)[1] then&lt;br /&gt;
			local snaktype = mw.wikibase.getBestStatements(qid, &amp;quot;P625&amp;quot;)[1].mainsnak.snaktype&lt;br /&gt;
			if snaktype == &#039;value&#039; then&lt;br /&gt;
				-- coordinates exist both here and on Wikidata, and can be compared.&lt;br /&gt;
				ret = &#039;Coordinates on Wikidata&#039;&lt;br /&gt;
			elseif snaktype == &#039;somevalue&#039; then&lt;br /&gt;
				ret = &#039;Coordinates on Wikidata set to unknown value&#039;&lt;br /&gt;
			elseif snaktype == &#039;novalue&#039; then&lt;br /&gt;
				ret = &#039;Coordinates on Wikidata set to no value&#039;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- We have to either import the coordinates to Wikidata or remove them here.&lt;br /&gt;
			ret = &#039;Coordinates not on Wikidata&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if ret then&lt;br /&gt;
		return string.format(&#039;[[Category:%s]]&#039;, ret)&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
link&lt;br /&gt;
&lt;br /&gt;
Simple function to export the coordinates link for other uses.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | link }}&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function coordinates.link(frame)&lt;br /&gt;
	return coord_link;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
dec2dms&lt;br /&gt;
&lt;br /&gt;
Wrapper to allow templates to call dec2dms directly.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix |&lt;br /&gt;
		negative_suffix | precision }}&lt;br /&gt;
&lt;br /&gt;
decimal_coordinate is converted to DMS format.  If positive, the positive_suffix&lt;br /&gt;
is appended (typical N or E), if negative, the negative suffix is appended.  The&lt;br /&gt;
specified precision is one of &#039;D&#039;, &#039;DM&#039;, or &#039;DMS&#039; to specify the level of detail&lt;br /&gt;
to use.&lt;br /&gt;
]]&lt;br /&gt;
coordinates.dec2dms = makeInvokeFunc(&#039;_dec2dms&#039;)&lt;br /&gt;
function coordinates._dec2dms(args)&lt;br /&gt;
	local coordinate = args[1]&lt;br /&gt;
	local firstPostfix = args[2] or &#039;&#039;&lt;br /&gt;
	local secondPostfix = args[3] or &#039;&#039;&lt;br /&gt;
	local precision = args[4] or &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
	return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function to determine whether to use D, DM, or DMS&lt;br /&gt;
format depending on the precision of the decimal input.&lt;br /&gt;
]]&lt;br /&gt;
function coordinates.determineMode( value1, value2 )&lt;br /&gt;
	local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) );&lt;br /&gt;
	if precision &amp;lt;= 0 then&lt;br /&gt;
		return &#039;d&#039;&lt;br /&gt;
	elseif precision &amp;lt;= 2 then&lt;br /&gt;
		return &#039;dm&#039;;&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;dms&#039;;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
dms2dec&lt;br /&gt;
&lt;br /&gt;
Wrapper to allow templates to call dms2dec directly.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | dms2dec | direction_flag | degrees |&lt;br /&gt;
		minutes | seconds }}&lt;br /&gt;
&lt;br /&gt;
Converts DMS values specified as degrees, minutes, seconds too decimal format.&lt;br /&gt;
direction_flag is one of N, S, E, W, and determines whether the output is&lt;br /&gt;
positive (i.e. N and E) or negative (i.e. S and W).&lt;br /&gt;
]]&lt;br /&gt;
coordinates.dms2dec = makeInvokeFunc(&#039;_dms2dec&#039;)&lt;br /&gt;
function coordinates._dms2dec(args)&lt;br /&gt;
	local direction = args[1]&lt;br /&gt;
	local degrees = args[2]&lt;br /&gt;
	local minutes = args[3]&lt;br /&gt;
	local seconds = args[4]&lt;br /&gt;
&lt;br /&gt;
	return convert_dms2dec(direction, degrees, minutes, seconds)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
coord&lt;br /&gt;
&lt;br /&gt;
Main entry point for Lua function to replace {{coord}}&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | coord }}&lt;br /&gt;
	{{#invoke:Coordinates | coord | lat | long }}&lt;br /&gt;
	{{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }}&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	Refer to {{coord}} documentation page for many additional parameters and&lt;br /&gt;
	configuration options.&lt;br /&gt;
&lt;br /&gt;
Note: This function provides the visual display elements of {{coord}}.  In&lt;br /&gt;
order to load coordinates into the database, the {{#coordinates:}} parser&lt;br /&gt;
function must also be called, this is done automatically in the Lua&lt;br /&gt;
version of {{coord}}.&lt;br /&gt;
]]&lt;br /&gt;
coordinates.coord = makeInvokeFunc(&#039;_coord&#039;)&lt;br /&gt;
function coordinates._coord(args)&lt;br /&gt;
	if not tonumber(args[1]) and not args[2] then&lt;br /&gt;
		args[3] = args[1]; args[1] = nil&lt;br /&gt;
		local entity = mw.wikibase.getEntityObject(args.qid)&lt;br /&gt;
		if entity&lt;br /&gt;
			and entity.claims&lt;br /&gt;
			and entity.claims.P625&lt;br /&gt;
			and entity.claims.P625[1].mainsnak.snaktype == &#039;value&#039;&lt;br /&gt;
		then&lt;br /&gt;
			local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision&lt;br /&gt;
			args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude&lt;br /&gt;
			args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude&lt;br /&gt;
			if precision then&lt;br /&gt;
				precision = -math_mod._round(math.log(precision)/math.log(10),0)&lt;br /&gt;
				args[1] = math_mod._round(args[1],precision)&lt;br /&gt;
				args[2] = math_mod._round(args[2],precision)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local contents, backward = formatTest(args)&lt;br /&gt;
	local Notes = args.notes or &#039;&#039;&lt;br /&gt;
	local Display = args.display and args.display:lower() or &#039;inline&#039;&lt;br /&gt;
&lt;br /&gt;
	-- it and ti are short for inline,title and title,inline&lt;br /&gt;
	local function isInline(s)&lt;br /&gt;
		-- Finds whether coordinates are displayed inline.&lt;br /&gt;
		return s:find(&#039;inline&#039;) ~= nil or s == &#039;i&#039; or s == &#039;it&#039; or s == &#039;ti&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local function isInTitle(s)&lt;br /&gt;
		-- Finds whether coordinates are displayed in the title.&lt;br /&gt;
		return s:find(&#039;title&#039;) ~= nil or s == &#039;t&#039; or s == &#039;it&#039; or s == &#039;ti&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function coord_wrapper(in_args)&lt;br /&gt;
		-- Calls the parser function {{#coordinates:}} when available.&lt;br /&gt;
		local ok, result = pcall(function()&lt;br /&gt;
			return mw.getCurrentFrame():callParserFunction(&#039;#coordinates&#039;, in_args)&lt;br /&gt;
		end)&lt;br /&gt;
		if ok then&lt;br /&gt;
			return result or &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local text = &#039;&#039;&lt;br /&gt;
	if isInline(Display) then&lt;br /&gt;
		text = text .. &#039;&amp;lt;span class=&amp;quot;geo-inline&amp;quot;&amp;gt;&#039; .. contents .. Notes .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if isInTitle(Display) then&lt;br /&gt;
		-- Add to output since indicator content is invisible to Lua later on&lt;br /&gt;
		if not isInline(Display) then&lt;br /&gt;
			text = text .. &#039;&amp;lt;span class=&amp;quot;geo-inline-hidden noexcerpt&amp;quot;&amp;gt;&#039; .. contents .. Notes .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid)&lt;br /&gt;
	end&lt;br /&gt;
	if not args.nosave then&lt;br /&gt;
		local page_title, count = mw.title.getCurrentTitle(), 1&lt;br /&gt;
		if backward then&lt;br /&gt;
			local tmp = {}&lt;br /&gt;
			while not string.find((args[count-1] or &#039;&#039;), &#039;[EW]&#039;) do tmp[count] = (args[count] or &#039;&#039;); count = count+1 end&lt;br /&gt;
			tmp.count = count; count = 2*(count-1)&lt;br /&gt;
			while count &amp;gt;= tmp.count do table.insert(tmp, 1, (args[count] or &#039;&#039;)); count = count-1 end&lt;br /&gt;
			for i, v in ipairs(tmp) do args[i] = v end&lt;br /&gt;
		else&lt;br /&gt;
			while count &amp;lt;= 9 do args[count] = (args[count] or &#039;&#039;); count = count+1 end&lt;br /&gt;
		end&lt;br /&gt;
		if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= &#039;doc&#039; and page_title.subpageText ~= &#039;testcases&#039; then args[10] = &#039;primary&#039; end&lt;br /&gt;
		args.notes, args.format, args.display = nil&lt;br /&gt;
		text = text .. coord_wrapper(args)&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
coord2text&lt;br /&gt;
&lt;br /&gt;
Extracts a single value from a transclusion of {{Coord}}.&lt;br /&gt;
IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
    {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }}&lt;br /&gt;
&lt;br /&gt;
Valid values for the second parameter are: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function coordinates._coord2text(coord,type)&lt;br /&gt;
	if coord == &#039;&#039; or type == &#039;&#039; or not type then return nil end&lt;br /&gt;
	type = mw.text.trim(type)&lt;br /&gt;
	if type == &#039;lat&#039; or type == &#039;long&#039; then&lt;br /&gt;
        local coordString = mw.ustring.match(coord,&#039;[%.%d]+°[NS] [%.%d]+°[EW]&#039;)&lt;br /&gt;
        if not coordString then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
		local result = mw.text.split(coordString, &#039; &#039;)&lt;br /&gt;
        local negative&lt;br /&gt;
		if type == &#039;lat&#039; then&lt;br /&gt;
			result, negative = result[1], &#039;S&#039;&lt;br /&gt;
		else&lt;br /&gt;
			result, negative = result[2], &#039;W&#039;&lt;br /&gt;
		end&lt;br /&gt;
        if not result then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
		result = mw.text.split(result, &#039;°&#039;)&lt;br /&gt;
        if not result[1] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
		if result[2] == negative then result[1] = &#039;-&#039;..result[1] end&lt;br /&gt;
		return result[1]&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.match(coord, &#039;params=.-_&#039; .. type .. &#039;:(.-)[ _]&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function coordinates.coord2text(frame)&lt;br /&gt;
	return coordinates._coord2text(frame.args[1],frame.args[2]) or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
coordinsert&lt;br /&gt;
&lt;br /&gt;
Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn&#039;t already in the transclusion). Outputs the modified transclusion of {{Coord}}.&lt;br /&gt;
IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
    {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }}&lt;br /&gt;
&lt;br /&gt;
Do not make Geohack unhappy by inserting something which isn&#039;t mentioned in the {{Coord}} documentation.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function coordinates.coordinsert(frame)&lt;br /&gt;
	-- for the 2nd or later integer parameter (the first is the coord template, as above)&lt;br /&gt;
	for i, v in ipairs(frame.args) do&lt;br /&gt;
		if i ~= 1 then&lt;br /&gt;
			-- if we cannot find in the coord_template the i_th coordinsert parameter e.g. region&lt;br /&gt;
			if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], &#039;^(.-:)&#039;) or &#039;&#039;)) then&lt;br /&gt;
				-- find from the params= up to the first possibly-present underscore&lt;br /&gt;
				-- and append the i_th coordinsert parameter and a space&lt;br /&gt;
				-- IDK why we&#039;re adding a space but it does seem somewhat convenient&lt;br /&gt;
				frame.args[1] = mw.ustring.gsub(frame.args[1], &#039;(params=.-)_? &#039;, &#039;%1_&#039;..frame.args[i]..&#039; &#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if frame.args.name then&lt;br /&gt;
		-- if we can&#039;t find the vcard class&lt;br /&gt;
		if not mw.ustring.find(frame.args[1], &#039;&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&#039;) then&lt;br /&gt;
			-- take something that looks like a coord template and add the vcard span with class and fn org class&lt;br /&gt;
			local namestr = frame.args.name&lt;br /&gt;
			frame.args[1] = mw.ustring.gsub(&lt;br /&gt;
				frame.args[1],&lt;br /&gt;
				&#039;(&amp;lt;span class=&amp;quot;geo%-default&amp;quot;&amp;gt;)(&amp;lt;span[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]*&amp;lt;/span&amp;gt;&amp;lt;span[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]*&amp;lt;span[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]*&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;)(&amp;lt;/span&amp;gt;)&#039;,&lt;br /&gt;
				&#039;%1&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;%2&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; (&amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;&#039; .. namestr .. &#039;&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;%3&#039;&lt;br /&gt;
			)&lt;br /&gt;
			-- then find anything from coordinates parameters to the &#039;end&#039; and attach the title parameter&lt;br /&gt;
			frame.args[1] = mw.ustring.gsub(&lt;br /&gt;
				frame.args[1],&lt;br /&gt;
				&#039;(&amp;amp;params=[^&amp;amp;&amp;quot;&amp;lt;&amp;gt;%[%] ]*) &#039;,&lt;br /&gt;
				&#039;%1&amp;amp;title=&#039; .. mw.uri.encode(namestr) .. &#039; &#039;&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- replace the existing indicator with a new indicator using the modified content&lt;br /&gt;
	frame.args[1] = mw.ustring.gsub(&lt;br /&gt;
		frame.args[1],&lt;br /&gt;
		&#039;(&amp;lt;span class=&amp;quot;geo%-inline[^&amp;quot;]*&amp;quot;&amp;gt;(.+)&amp;lt;/span&amp;gt;)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127&#039;,&lt;br /&gt;
		function (inline, coord) return inline .. displaytitle(coord) end&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	return frame.args[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return coordinates&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:OSM_Location_map&amp;diff=2557</id>
		<title>Module:OSM Location map</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:OSM_Location_map&amp;diff=2557"/>
		<updated>2026-04-05T10:05:04Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard OSM Location map Wikibase code paths on non-Wikibase wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
local delink=require(&#039;Module:Delink&#039;).delink&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
local maplist={}&lt;br /&gt;
local sgNames={}&lt;br /&gt;
local highlightOption=false&lt;br /&gt;
local highlightNum&lt;br /&gt;
local visibleLinks&lt;br /&gt;
local geoTotalPop = 0&lt;br /&gt;
local captionTable = &#039;&#039;&lt;br /&gt;
local hasWikibase = mw.wikibase and type(mw.wikibase.isValidEntityId) == &#039;function&#039;&lt;br /&gt;
local captionTableText = {}&lt;br /&gt;
&lt;br /&gt;
-- This module creates framed maps of anywhere in the world, at the required scale, and enables annotations, &lt;br /&gt;
-- dots, shapes, lines and other ways to customise the area of the map being shown. It also provides a link&lt;br /&gt;
-- to an interactive fullscreen version, which has locator dots instead of annotations and shapes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- This is the 2025 successor module to a wiki-markup template version of 2024, which itself was a successor &lt;br /&gt;
-- to the &#039;Graph&#039;/VEGA driven template that was begun in 2016, until the Vega version was switched off in 2023.&lt;br /&gt;
&lt;br /&gt;
-- This module is called from template {{OSM Location map}}, which uses the same parameter formats as before.&lt;br /&gt;
&lt;br /&gt;
-- In addition it may at some point be possible to use a more concise parameter format using the template {{OSM Location dots}}&lt;br /&gt;
-- In general the css output from the two formats will be identical, but the the concise version will allow bits of&lt;br /&gt;
-- greater control over some of the settings.&lt;br /&gt;
&lt;br /&gt;
-- see the documentation on the two template pages for details of how to use the mapping features.&lt;br /&gt;
&lt;br /&gt;
-- If language customisation is needed, there are text items below that can be translated. Also see the color table&lt;br /&gt;
-- below with details of how to add additional color names to allow localised alternatives.&lt;br /&gt;
-- (Translating other language shape-types could be possible, but has not currently been contemplated. &lt;br /&gt;
-- Parameter name translation would be harder but likely to be possible, ideally still retaining compatibility &lt;br /&gt;
-- with template calls already written using English).&lt;br /&gt;
&lt;br /&gt;
-- -------------- the following text variables are used within the template, and can be translated as required ---------------&lt;br /&gt;
-- -------------- you may wish to retain the English version as a comment, to keep track of the original phrase --------------&lt;br /&gt;
local negativeAnswer={no=1,&#039;0&#039;-1,off=1}&lt;br /&gt;
local fullscreenlinktext = &#039;Click for interactive fullscreen map with links to nearby articles&#039;&lt;br /&gt;
local toggletext = &#039;List of numbered map items:&#039;&lt;br /&gt;
local termsOfUse = &#039;Maps: terms of use&#039;&lt;br /&gt;
local aboutOSM = &#039;About OpenStreetMaps&#039;&lt;br /&gt;
local yards = &#039;yds&#039;&lt;br /&gt;
local miles = &#039;miles&#039;&lt;br /&gt;
local metres = &#039;m&#039;&lt;br /&gt;
local km = &#039;km&#039;&lt;br /&gt;
local sqkm = &#039;sq.km&#039;&lt;br /&gt;
local year = &#039;year&#039;&lt;br /&gt;
local notFound = &#039;not found&#039;&lt;br /&gt;
local totalItems = &#039;Total&#039;&lt;br /&gt;
local sumOfDatapoints = &#039;sum of datapoints&#039;&lt;br /&gt;
local numberCol = &#039;No.&#039; -- abbreviated for top of column of code numbers&lt;br /&gt;
local wikidataLink = &#039;Wikidata page&#039;&lt;br /&gt;
    &lt;br /&gt;
local shapeList={}             --This sets up the &#039;factoryDefault&#039; shape group 0&lt;br /&gt;
shapeList[&amp;quot;0&amp;quot;]={shapeType=&amp;quot;0&amp;quot;,&lt;br /&gt;
  Name=&amp;quot;initialSettings&amp;quot;,&lt;br /&gt;
  Parent=&amp;quot;0&amp;quot;,&lt;br /&gt;
--sga items for the shape &lt;br /&gt;
  shape=&amp;quot;circle&amp;quot;,&lt;br /&gt;
  shapeSize=&amp;quot;12px&amp;quot;,&lt;br /&gt;
  shapeColor=&amp;quot;blue&amp;quot;,&lt;br /&gt;
  shapeAngle=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
--sgb items for border of the shape&lt;br /&gt;
  outlineWidth=&amp;quot;0.5px&amp;quot;,&lt;br /&gt;
  outlineColor=&amp;quot;darkblue&amp;quot;,&lt;br /&gt;
  outlineStyle=&amp;quot;solid&amp;quot;,&lt;br /&gt;
--sgc items text settings for labels&lt;br /&gt;
  textSZ=&amp;quot;11px&amp;quot;,&lt;br /&gt;
  textCL=&amp;quot;darkgrey&amp;quot;,&lt;br /&gt;
  textNG=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
--sgf further text settings    &lt;br /&gt;
  textSP=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  textLH=&amp;quot;120%&amp;quot;,&lt;br /&gt;
  textOL=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  textBG=&amp;quot;transparent&amp;quot;,&lt;br /&gt;
--sgd items for dotTag text settings&lt;br /&gt;
  tagSize=&amp;quot;10px&amp;quot;,&lt;br /&gt;
  tagColor=&amp;quot;white&amp;quot;,&lt;br /&gt;
  tagSpacer=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  tagAngle=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
--sge items for extension line to connect label to dot&lt;br /&gt;
  textEW=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  textEC=&amp;quot;darkgrey&amp;quot;,&lt;br /&gt;
  textES=&amp;quot;solid&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local   colorList={}			-- used by colorLookup to catch unsupported colors (eg &#039;LimeGreen&#039;), to convert to generic version&lt;br /&gt;
colorList[&#039;green&#039;]=&#039;hardgreen&#039;	-- it could also be added to to include alternative language equivelants, for a quick solution.&lt;br /&gt;
colorList[&#039;red&#039;]=&#039;hardred&#039;		-- colorList [&#039;source&#039;] = target    &lt;br /&gt;
colorList[&#039;white&#039;]=&#039;white&#039;		-- converts any color that includes &#039;source&#039; into its equivelent target&lt;br /&gt;
colorList[&#039;blue&#039;]=&#039;hardblue&#039;	-- note, for translation you can add to this list, rather than replace it,  &lt;br /&gt;
colorList[&#039;brown&#039;]=&#039;brown&#039;		-- which would mean existing map definitions in english would also still work, alongside translated ones&lt;br /&gt;
colorList[&#039;grey&#039;]=&#039;hardgrey&#039;&lt;br /&gt;
colorList[&#039;gray&#039;]=&#039;hardgrey&#039;&lt;br /&gt;
colorList[&#039;purple&#039;]=&#039;hardpurple&#039;&lt;br /&gt;
colorList[&#039;orange&#039;]=&#039;hardorange&#039;&lt;br /&gt;
colorList[&#039;leaf&#039;]=&#039;hardleaf&#039;&lt;br /&gt;
&lt;br /&gt;
--for a more thorough translation, you can add all the variants of the colors as further CTB elements and hex values or redirects&lt;br /&gt;
local CTB={} -- set up a table of color names (the CTB Color table index) and html hash colorhex values.&lt;br /&gt;
CTB[&amp;quot;paleblue&amp;quot;],CTB[&amp;quot;softblue&amp;quot;],CTB[&amp;quot;hardblue&amp;quot;],CTB[&amp;quot;darkblue&amp;quot;]=&amp;quot;#D6E1EC&amp;quot;,&amp;quot;#77A1CB&amp;quot;,&amp;quot;#4B77D6&amp;quot;,&amp;quot;#1c559e&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palered&amp;quot;],CTB[&amp;quot;softred&amp;quot;],CTB[&amp;quot;hardred&amp;quot;],CTB[&amp;quot;darkred&amp;quot;] = &amp;quot;#FCC6C0&amp;quot;,&amp;quot;#EC644B&amp;quot;,&amp;quot;#DB3123&amp;quot;,&amp;quot;#AA1205&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palegreen&amp;quot;],CTB[&amp;quot;softgreen&amp;quot;],CTB[&amp;quot;hardgreen&amp;quot;],CTB[&amp;quot;darkgreen&amp;quot;]= &amp;quot;#D2F0E5&amp;quot;,&amp;quot;#81AF81&amp;quot;,&amp;quot;#269F46&amp;quot;,&amp;quot;#0b7527&amp;quot;&lt;br /&gt;
CTB[&amp;quot;paleleaf&amp;quot;],CTB[&amp;quot;softleaf&amp;quot;],CTB[&amp;quot;hardleaf&amp;quot;],CTB[&amp;quot;darkleaf&amp;quot;]= &amp;quot;#dff5c1&amp;quot;,&amp;quot;#b5e376&amp;quot;,&amp;quot;#8cc244&amp;quot;,&amp;quot;#679c21&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palegrey&amp;quot;],CTB[&amp;quot;softgrey&amp;quot;],CTB[&amp;quot;hardgrey&amp;quot;],CTB[&amp;quot;darkgrey&amp;quot;]= &amp;quot;#E8E8D6&amp;quot;,&amp;quot;#AAAA88&amp;quot;,&amp;quot;#777755&amp;quot;,&amp;quot;#444433&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palegray&amp;quot;],CTB[&amp;quot;softgray&amp;quot;],CTB[&amp;quot;hardgray&amp;quot;],CTB[&amp;quot;darkgray&amp;quot;]=CTB[&amp;quot;palegrey&amp;quot;],CTB[&amp;quot;softgrey&amp;quot;],CTB[&amp;quot;hardgrey&amp;quot;],CTB[&amp;quot;darkgrey&amp;quot;]&lt;br /&gt;
CTB[&amp;quot;palebrown&amp;quot;],CTB[&amp;quot;softbrown&amp;quot;],CTB[&amp;quot;hardbrown&amp;quot;],CTB[&amp;quot;darkbrown&amp;quot;]=&amp;quot;#FAF6ED&amp;quot;,&amp;quot;#CCB56C&amp;quot;,&amp;quot;#AD7F14&amp;quot;,&amp;quot;#754910&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palepurple&amp;quot;],CTB[&amp;quot;softpurple&amp;quot;],CTB[&amp;quot;hardpurple&amp;quot;],CTB[&amp;quot;darkpurple&amp;quot;]=&amp;quot;#e0d1e6&amp;quot;,&amp;quot;#c784e0&amp;quot;,&amp;quot;#a029cf&amp;quot;,&amp;quot;#7a05a8&amp;quot;&lt;br /&gt;
CTB[&amp;quot;paleorange&amp;quot;],CTB[&amp;quot;softorange&amp;quot;],CTB[&amp;quot;hardorange&amp;quot;],CTB[&amp;quot;darkorange&amp;quot;]=&amp;quot;#ffedc2&amp;quot;,&amp;quot;#ffcf61&amp;quot;,&amp;quot;#EEB533&amp;quot;,&amp;quot;#e39f05&amp;quot;&lt;br /&gt;
CTB[&amp;quot;black&amp;quot;],CTB[&amp;quot;white&amp;quot;],CTB[&amp;quot;yellow&amp;quot;]=&amp;quot;#000000&amp;quot;,&amp;quot;#FFFFFF&amp;quot;,&amp;quot;#FAF039&amp;quot;&lt;br /&gt;
CTB[&amp;quot;background&amp;quot;],CTB[&amp;quot;paleground&amp;quot;],CTB[&amp;quot;beigeground&amp;quot;]=&amp;quot;#f9f6f2&amp;quot;,&amp;quot;#FEFEFA&amp;quot;,&amp;quot;#F5F5DC&amp;quot;&lt;br /&gt;
CTB[&amp;quot;beige&amp;quot;]=CTB[&amp;quot;beigeground&amp;quot;]&lt;br /&gt;
CTB[&amp;quot;aqua&amp;quot;],CTB[&amp;quot;teal&amp;quot;],CTB[&amp;quot;fuchsia&amp;quot;] = &amp;quot;#00FFFF&amp;quot;,&amp;quot;#008080&amp;quot;,&amp;quot;#FF00FF&amp;quot;&lt;br /&gt;
CTB[&amp;quot;maroon&amp;quot;],CTB[&amp;quot;olive&amp;quot;],CTB[&amp;quot;navy&amp;quot;] = &amp;quot;#800000&amp;quot;,&amp;quot;#808000&amp;quot;,&amp;quot;#000080&amp;quot;&lt;br /&gt;
CTB[&amp;quot;lime&amp;quot;],CTB[&amp;quot;limegreen&amp;quot;],CTB[&amp;quot;aquamarine&amp;quot;] = &amp;quot;#00FF00&amp;quot;,&amp;quot;#32CD32&amp;quot;,&amp;quot;#7FFFD4&amp;quot;&lt;br /&gt;
CTB[&amp;quot;silver&amp;quot;],CTB[&amp;quot;yellow&amp;quot;],CTB[&amp;quot;orchid&amp;quot;] = &amp;quot;#800000&amp;quot;,&amp;quot;#FFFF00&amp;quot;,&amp;quot;#DA70D6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- set up a table of predefined clip-paths&lt;br /&gt;
local pathshape={}&lt;br /&gt;
pathshape.squaredd = &amp;quot;M 19,1.25 l 0,18 -18,0 0,-18 18,0m-1,1 -16,0 0,16 16,0 0,-16m-1,1 0,14 -14,0 0,-14 14,0zm-1,1 -12,0 0,12 12,0 0,-12zm-1,1 0,10 -10,0 0,-10 10,0z&amp;quot;&lt;br /&gt;
pathshape.squared =  &amp;quot;M 18,2.5 l 0,15 -15,0 0,-15 15,0m-1,1 -13,0 0,13 13,0 0,-13zm-1,1 0,11 -11,0 0,-11 11,0z&amp;quot;&lt;br /&gt;
pathshape.triangledd=&amp;quot;M 0 20,20 20,10 0,0 20ZM1.5 19,10 1.7,18.5 19,1.5 19ZM3 18,17 18,10 3.8,3 18ZM4.5 17,10 5.4,15.4 17, 4.5,17ZM6 16,13.8 16,10 7.4z&amp;quot;&lt;br /&gt;
pathshape.triangled =&amp;quot;M1,18 l 18,0 l -9,-18 l -9,18zm1.7,-1.1 l 7.3,-14.6 l 7.3,14.6 l -14.6, 0zm1.7,-1 l 11.0,0 l -5.5,-11 l -5.5,11z&amp;quot;&lt;br /&gt;
pathshape.circledd = &amp;quot;M0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm0.8,0a9.2,9.2 0 1,1 18.4,0a9.2,9.2 0 1,1 -18.4,0m1,0a8.2,8.2 0 1,0 16.4,0a8.2,8.2 0 1,0 -16.4,0zm0.8,0a7.2,7.2 0 1,1 14.8,0a7.2,7.2 0 1,1 -14.8,0m1,0 a6.4,6.4 0 1,1 12.8,0a6.4,6.4 0 1,1 -12.8,0z&amp;quot;&lt;br /&gt;
pathshape.circled =  &amp;quot;M2.5,10a7.5,7.5 0 1,0 15,0a7.5,7.5 0 1,0 -15,0zm1,0a6.5,6.5 0 1,1 13,0a6.5,6.5 0 1,1 -13,0m0.8,0 a5,5 0 1,1 11.4,0a5,5 0 1,1 -11.4,0&amp;quot;&lt;br /&gt;
pathshape.diamond =  &amp;quot;M3,10 l 7,-10 l 7,10 -7,10 -7,-10z&amp;quot;&lt;br /&gt;
pathshape.diamondd = &amp;quot;M3,10 l 7,-10 l 7,10 -7,10 -7,-10zm1,0 l 6,8.5 l 6,-8.5 -6,-8.5 -6,8.5zm1,0 l 5,-7 5,7 -5,7 -5,-7z&amp;quot;&lt;br /&gt;
pathshape.diamonddd = &amp;quot;M3,10 l 7,-10 l 7,10 -7,10 -7,-10zm0.75,0 l 6.25,9 l 6.25,-9 -6.25,-9 -6.25,9zm0.75,0 l 5.5,-8 5.5,8 -5.5,8 -5.5,-8zm0.75,0 l 4.75,7 l 4.75,-7 -4.75,-7 -4.75,7zm0.75,0 l 4,-6 4,6 -4,6 -4,-6z&amp;quot;&lt;br /&gt;
pathshape.crossd = &amp;quot;M3.1,12.5 l4.2,0 l0,4.2 l5,0 l0,-4 l4.2,0 l0,-5 l-4.2,0 l0,-4.2 l-5,0 l0,4.2 l-4.2,0zM2.3,10a7.5,7.5 0 1,0 15,0a7.5,7.5 0 1,0 -15,0zm1,0a6.5,6.5 0 1,1 13,0a6.5,6.5 0 1,1 -13,0z&amp;quot;&lt;br /&gt;
pathshape.cross = &amp;quot;M3.1,12.5 l4.2,0 l0,4.2 l5,0 l0,-4 l4.2,0 l0,-5 l-4.2,0 l0,-4.2 l-5,0 l0,4.2 l-4.2,0z&amp;quot;&lt;br /&gt;
pathshape.thincross = &amp;quot;M2,12 l6,0 l0,6 l4,0 l0,-6 l6,0 l0,-4 l-6,0 l0,-6 l-4,0 l0,6 l-6,0z&amp;quot;&lt;br /&gt;
pathshape.fivepointstar = &amp;quot;M10 0 L12.245 6.91 19.511 6.91 13.633 11.18 15.878 18.09 10 13.82 4.122 18.09 6.367 11.18 0.489 6.91 7.755 6.91Z&amp;quot;&lt;br /&gt;
pathshape.fivepointstard = &amp;quot;M10 1.5 L 11.90825 7.3735 18.08435 7.3735 13.08805 11.003 14.9963 16.8765 10 13.247 5.0037 16.8765 6.91195 11.003 1.91565 7.3735 8.09175 7.3735 ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.sixpointstar = &amp;quot;M10 0 L12.323 5.977 18.66 5 14.645 10 18.66 15 12.323 14.023 10 20 7.677 14.023 1.34 15 5.355 10 1.34 5 7.677 5.977Z&amp;quot;&lt;br /&gt;
pathshape.sixpointstard = &amp;quot;M10 1.5 L 11.97455 6.58045 17.361 5.75 13.94825 10 17.361 14.25 11.97455 13.41955 10 18.5 8.02545 13.41955 2.639 14.25 6.05175 10 2.639 5.75 8.02545 6.58045 ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.sevenpointstar = &amp;quot;M10 0 L12.048 5.747 17.818 3.765 14.602 8.95 19.749 12.225 13.69 12.943 14.339 19.01 10 14.72 5.661 19.01 6.31 12.943 0.251 12.225 5.398 8.95 2.182 3.765 7.952 5.747Z&amp;quot;&lt;br /&gt;
pathshape.sevenpointstard = &amp;quot;M10 1.5 L11.7408 6.38495 16.6453 4.70025 13.9117 9.1075 18.28665 11.89125 13.1365 12.50155 13.68815 17.6585 10 14.012 6.31185 17.6585 6.8635 12.50155 1.71335 11.89125 6.0883 9.1075 3.3547 4.70025 8.2592 6.38495 ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.eightpointstar = &amp;quot;M10 0 L11.88 5.46 17.071 2.929 14.54 8.12 20 10 14.54 11.88 17.071 17.071 11.88 14.54 10 20 8.12 14.54 2.929 17.071 5.46 11.88 0 10 5.46 8.12 2.929 2.929 8.12 5.46Z&amp;quot;&lt;br /&gt;
pathshape.eightpointstard = &amp;quot;M10 0 L10 1.5 L11.598 6.141 16.01035 3.98965 13.859 8.402 18.5 10 13.859 11.598 16.01035 16.01035 11.598 13.859 10 18.5 8.402 13.859 3.98965 16.01035 6.141 11.598 1.5 10 6.141 8.402 3.98965 3.98965 8.402 6.141ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.ring=&amp;quot;M2.6,9.5a7.5,7.5 0 1,0 15,0a7.5,7.5 0 1,0 -15,0zm1,0a6.5,6.5 0 1,1 13,0a6.5,6.5 0 1,1 -13,0z&amp;quot;&lt;br /&gt;
pathshape.semicircle = &amp;quot;M0,5 C0,18.3,20,18.3,20,5 L 0,5z&amp;quot;&lt;br /&gt;
pathshape.arrowhead = &amp;quot;M 10,10.2 l 10,2.8 -2,-3 2,-3 -10,2.8 -0.2,0.2z&amp;quot;&lt;br /&gt;
pathshape.boxd=pathshape.squared &lt;br /&gt;
pathshape.boxdd=pathshape.squaredd&lt;br /&gt;
pathshape.ellipsed=pathshape.circled &lt;br /&gt;
pathshape.ellipsedd=pathshape.circledd &lt;br /&gt;
&lt;br /&gt;
local msg={}&lt;br /&gt;
local function debugmsg(txt)&lt;br /&gt;
	table.insert(msg,txt)&lt;br /&gt;
end&lt;br /&gt;
local pmsg={}&lt;br /&gt;
local function previewMsg(txt)&lt;br /&gt;
	table.insert(pmsg,txt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function colorLookup(color)&lt;br /&gt;
  for c,l in pairs(colorList) do&lt;br /&gt;
    if string.find(color,c) then return l end&lt;br /&gt;
  end&lt;br /&gt;
  return color&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getColor (color,chk)&lt;br /&gt;
    local c&lt;br /&gt;
    local opacity=&amp;quot;100&amp;quot;&lt;br /&gt;
    if not color or color==&#039;&#039; then color=&#039;hardgrey&#039; end&lt;br /&gt;
    if color==&amp;quot;transparent&amp;quot; then return color end&lt;br /&gt;
    if color==&amp;quot;background1&amp;quot; then color=&#039;background&#039; end&lt;br /&gt;
    if string.byte(color,1,1)==35 and (#color == 7 or #color == 9) then&lt;br /&gt;
    	 c=color&lt;br /&gt;
    elseif string.byte(color,1,1)==35 and #color == 4 then&lt;br /&gt;
    	 c=string.sub(color,1,2)..&#039;f&#039;..string.sub(color,3,3)..&#039;f&#039;..string.sub(color,4,4)..&#039;f&#039;&lt;br /&gt;
    else&lt;br /&gt;
    	local s=color..&#039;1&#039;&lt;br /&gt;
    	s= s:sub(0,s:find(&amp;quot;%d&amp;quot;)-1)&lt;br /&gt;
    	opacity=string.match(color,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    	if not CTB[s] then s= colorList[s] end -- check for synonyms and translations&lt;br /&gt;
    	if not CTB[s] then debugmsg(mw.addWarning(&#039;color = &#039;..color..&#039;. The color name is not defined. Used default grey instead&#039;)) end&lt;br /&gt;
    	c=CTB[s] or CTB.hardgrey&lt;br /&gt;
    end&lt;br /&gt;
    if opacity and (tonumber(opacity) &amp;lt; 100) and string.find(c,&amp;quot;#&amp;quot;)==1 and string.len(c)==7 and opacity~=&amp;quot;&amp;quot; then&lt;br /&gt;
        local hexval=string.format(&amp;quot;%x&amp;quot;,(math.floor(tonumber(opacity)*2.55)))&lt;br /&gt;
        c=c..hexval&lt;br /&gt;
    end&lt;br /&gt;
    return c&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.colorvalue(frame)   -- enable external access to the CTB colorTable values. usage: {{#invoke:OSM Location map|colorvalue|color=hard blue}}&lt;br /&gt;
	local c&lt;br /&gt;
	if not frame.args.color or frame.args.color==&#039;&#039; then c=&#039;grey&#039;&lt;br /&gt;
	else c=string.lower(string.gsub(frame.args.color,&#039;%s+&#039;,&#039;&#039;)) end&lt;br /&gt;
	return string.upper(string.sub(getColor(c),2))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function checkColors(color)&lt;br /&gt;
	local c=getColor(color,&#039;check&#039;)&lt;br /&gt;
	local opacity =1 -- calculate colour brightness and return black or white for contrast&lt;br /&gt;
	if c==&#039;transparent&#039; then return c,&#039;#000000&#039;,0 end&lt;br /&gt;
	if not (string.find(c,&#039;#&#039;)==1) then return c,&#039;#FFFFFF&#039;,0 end&lt;br /&gt;
	if #c&amp;gt;8 then opacity= tonumber(&#039;0x&#039;..(string.sub(c,8,9)))/500 end&lt;br /&gt;
	local r=tonumber(&#039;0x&#039;..(string.sub(c,2,3)))/255&lt;br /&gt;
    local g=tonumber(&#039;0x&#039;..(string.sub(c,4,5)))/255&lt;br /&gt;
    local b=tonumber(&#039;0x&#039;..(string.sub(c,6,7)))/255&lt;br /&gt;
    if 0.2126 * r + 0.7152 * g + 0.0722 * b / opacity &amp;lt; 0.7 then&lt;br /&gt;
		return c,&#039;#FFFFFF&#039;,0.2126 * r + 0.7152 * g + 0.0722 * b / opacity&lt;br /&gt;
	else return c,&#039;#000000&#039;,0.2126 * r + 0.7152 * g + 0.0722 * b / opacity&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function morethan(a,b)&lt;br /&gt;
	if tonumber(string.match(a, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) and tonumber(string.match(b, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) then&lt;br /&gt;
	  a = tonumber(string.match(a, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;) )&lt;br /&gt;
	  b = tonumber(string.match(b, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;) or &#039;0&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return a&amp;gt;b&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function lessthan(a,b)&lt;br /&gt;
  if tonumber(string.match(a, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) and tonumber(string.match(b, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) then&lt;br /&gt;
    a = tonumber(string.match(a, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;))&lt;br /&gt;
    b = tonumber(string.match(b, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;) or &#039;0&#039;)&lt;br /&gt;
  end&lt;br /&gt;
  return a&amp;lt;b&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getsize(size)&lt;br /&gt;
    --size1 is between 1 and 3 values, each with px, equating to width,height,corner-rounding&lt;br /&gt;
    --eg &#039;15px 25px 5px&#039; (spaces are optional) or &#039;18px&#039;. returns three numbers&lt;br /&gt;
    local sizeval = {}&lt;br /&gt;
    for v in string.gmatch(size, &amp;quot;[^px]+&amp;quot;) do&lt;br /&gt;
        table.insert(sizeval,v)&lt;br /&gt;
    end&lt;br /&gt;
    sizeval[1] = tonumber(sizeval[1]) or 13&lt;br /&gt;
    sizeval[2] = tonumber(sizeval[2]) or sizeval[1]&lt;br /&gt;
    sizeval[3] = tonumber(sizeval[3]) or 0&lt;br /&gt;
    &lt;br /&gt;
    return sizeval[1],sizeval[2],sizeval[3]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function coord2text(coord) -- looks through the output from {{coord}} to find the lat and long decimal values &lt;br /&gt;
	                       -- and converts compass points to minus or not-minus, return with separating comma.&lt;br /&gt;
	local lat = string.match(coord,&#039;[%.%d]+°[NS]&#039;)&lt;br /&gt;
	local lon = string.match(coord,&#039;[%.%d]+°[EW]&#039;)&lt;br /&gt;
	local neg={N=&amp;quot;&amp;quot;,S=&amp;quot;-&amp;quot;,W=&amp;quot;-&amp;quot;,E=&amp;quot;&amp;quot;}&lt;br /&gt;
	return neg[string.match(lat, &#039;[NS]&#039;)]..string.match(lat,&#039;[%.%d]+&#039;)..&amp;quot;,&amp;quot;..neg[string.match(lon, &#039;[EW]&#039;)]..string.match(lon,&#039;[%.%d]+&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function convertCoordsTrad (row)&lt;br /&gt;
	local coords=&#039;&#039;&lt;br /&gt;
	if row and string.find (row,&#039;&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&#039;) then &lt;br /&gt;
		local a,b=string.find(row,&#039;&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		local start=b+1&lt;br /&gt;
    	a,b=string.find(row,&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;,b)&lt;br /&gt;
    	local finish=a-1&lt;br /&gt;
    	coords=string.sub(row,start,finish)&lt;br /&gt;
    	coords=string.gsub(coords,&#039;; &#039;,&#039;,&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return coords&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function convertCoords (row)&lt;br /&gt;
	local start,finish,lat,lon,coords,says&lt;br /&gt;
	if row then&lt;br /&gt;
		local a,b=string.find(row,&amp;quot;&amp;lt;span class=&amp;quot;)&lt;br /&gt;
		start=a&lt;br /&gt;
		while a do -- find the final span&amp;gt;&lt;br /&gt;
    		finish=b&lt;br /&gt;
    		a,b=string.find(row,&amp;quot;span&amp;gt;&amp;quot;,b)&lt;br /&gt;
		end&lt;br /&gt;
		if start then&lt;br /&gt;
			coords= string.sub(row,start,finish)&lt;br /&gt;
			says=&amp;quot;&amp;quot;&lt;br /&gt;
			if string.find(coords,&#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&#039;) then&lt;br /&gt;
				error(&amp;quot;coord error: badly formed coordinates&amp;quot;,0)&lt;br /&gt;
			end&lt;br /&gt;
			coords=coord2text(coords)&lt;br /&gt;
			coords = string.sub(row,1,start-1)..coords..string.sub(row,finish+1)&lt;br /&gt;
		else &lt;br /&gt;
			coords=row&lt;br /&gt;
		end&lt;br /&gt;
		return coords&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;Nothing to see here&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function fillCommas(val,max)&lt;br /&gt;
  local line=&#039;&#039;&lt;br /&gt;
  if not val then line=&#039;,&#039; -- ensure there is some content&lt;br /&gt;
  else line = val --string.lower(string.gsub(val,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;)) -- or strip spaces&lt;br /&gt;
  end &lt;br /&gt;
  if string.find(line,&#039;,&#039;) == 1 then line=&#039; &#039;..line end -- ensure initial comma is not skipped&lt;br /&gt;
  local _, count=string.gsub(line,&amp;quot;,&amp;quot;,&amp;quot;&amp;quot;) -- add enough subsequent commas for all entries&lt;br /&gt;
  line=line..string.rep(&#039;,&#039;,max-count)&lt;br /&gt;
  while(string.find(line,&amp;quot;,,&amp;quot;) ) do&lt;br /&gt;
    line=string.gsub(line,&amp;quot;,,&amp;quot;,&amp;quot;, ,&amp;quot;) --ensure string.gmatch doesn&#039;t ignore any empty items by padding with spaces&lt;br /&gt;
  end&lt;br /&gt;
  return line&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLinkBox(left,top,wid,label, link)&lt;br /&gt;
	local linkBoxName=&#039;Transparent square.svg&#039;&lt;br /&gt;
	if visibleLinks or &#039;&#039; ==&#039;yes&#039; then linkBoxName=&#039;Red hollow square.svg&#039; end&lt;br /&gt;
	local builder = mw.html.create(&#039;div&#039;) --display:inline-block; &lt;br /&gt;
	local t= string.find(label,&#039;wikidata&#039;) -- exclude wikidata from tooltip line&lt;br /&gt;
	if t then&lt;br /&gt;
		label=string.sub(label,1,t-2)                      -- don&#039;t show wikidata value in tooltip&lt;br /&gt;
		if string.find(link,&#039;wikidata&#039;) then link = &#039;&#039; end -- don&#039;t link on click to wikidata (if there was not another link)&lt;br /&gt;
	end&lt;br /&gt;
	builder&lt;br /&gt;
		:cssText(&#039;position:absolute;left:&#039;..tostring(left-1-wid/2)..&#039;px;top:&#039;..tostring(top-1 + math.min(wid/2-12,0) - wid/2)..&#039;px&#039;)&lt;br /&gt;
		:wikitext(string.format( &#039;[[File:%s|%dpx|link=%s|%s]]&#039;, linkBoxName, wid+2, link, label	))&lt;br /&gt;
	return tostring(builder)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractItem(row,searchItem) &lt;br /&gt;
-- remove text following a searchItem or start of line, which might be in quote-marks to allow commas&lt;br /&gt;
  local xend,xstart=1,0&lt;br /&gt;
  if not row then return &#039;&#039;,&#039;&#039; end&lt;br /&gt;
  if searchItem then xend,xstart= string.find(row or &#039;&#039;,searchItem or &#039;image:&#039;) end&lt;br /&gt;
  if not xstart then return string.gsub(string.gsub(row or &#039;&#039;,&amp;quot;%b\&amp;quot;\&amp;quot;&amp;quot;, &#039;&#039;),&amp;quot;%b\&#039;\&#039;&amp;quot;, &#039;&#039;) or &#039;&#039;,&#039;&#039; end&lt;br /&gt;
  while row:byte(xstart+1) == 32 and xstart&amp;lt;#row do  -- skip over any leading spaces&lt;br /&gt;
    xstart=xstart+1 &lt;br /&gt;
  end&lt;br /&gt;
  local xbyte=row:byte(xstart+1)&lt;br /&gt;
  if xbyte == 34 or xbyte == 39 then -- are they wrapped in single or double quotes&lt;br /&gt;
    xstart=xstart+1&lt;br /&gt;
    xend=row:find(string.char(xbyte),xstart+1)&lt;br /&gt;
  else&lt;br /&gt;
    xend = row:find(&#039;,&#039;,xstart+1) -- if no quotes, we assume no commas&lt;br /&gt;
    if not xend then xend=#row+1 end&lt;br /&gt;
  end  -- return residual row and extracted text&lt;br /&gt;
  return row:sub(0,xstart)..row:sub(xend), row:sub(xstart+1,xend-1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function itemCheck(item,ext)&lt;br /&gt;
	if not item then return nil end&lt;br /&gt;
	if not ext then ext=&#039;&#039; end&lt;br /&gt;
    return (string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;) or &#039;0&#039;)..ext&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function stripdivs(line)&lt;br /&gt;
   return string.gsub(line or &#039;&#039;,&amp;quot;%b&amp;lt;&amp;gt;&amp;quot;, &#039; &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function splitItem(item,max) -- takes a commas-sep list and returns a table of lowercase items with no spaces, or nil&lt;br /&gt;
	local r={}&lt;br /&gt;
	local x=1&lt;br /&gt;
	item=string.lower(fillCommas(item,max))&lt;br /&gt;
	for t in string.gmatch(item,&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
	    r[x]=string.gsub(t,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	    if r[x]==&#039;&#039; then r[x]= nil else -- residual items might have commas&lt;br /&gt;
	    	if x&amp;gt;max then r[max]=(r[max] or &#039;&#039;)..&#039;, &#039;..r[x] end&lt;br /&gt;
	    end&lt;br /&gt;
	    x=x+1&lt;br /&gt;
	end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ParseShapeTypes (result,args,sgval) -- for use with compressed, comma-separated &#039;sg plus dots&#039; parameters&lt;br /&gt;
	--[[ shape table items and default values as set at top of page&lt;br /&gt;
	shapeType=&amp;quot;0&amp;quot;,	Name=&amp;quot;initialSettings&amp;quot;,  Parent=&amp;quot;0&amp;quot;,&lt;br /&gt;
	--sga items for the shape 	shape=&amp;quot;circle&amp;quot;, 	shapeSize=&amp;quot;12px&amp;quot;,		shapeColor=&amp;quot;blue&amp;quot;,  shapeAngle=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
	--sgb items for border		outlineWidth=&amp;quot;0.5px&amp;quot;, outlineColor=&amp;quot;darkblue&amp;quot;,  outlineStyle=&amp;quot;solid&amp;quot;,&lt;br /&gt;
	--sgc items label text  	textSZ=&amp;quot;11px&amp;quot;,  	textCL=&amp;quot;white&amp;quot;,			textNG=&amp;quot;0deg&amp;quot;, textAT=attributes (&amp;quot;bold&amp;quot; and/or &amp;quot;italic&amp;quot;)&lt;br /&gt;
	--sgd items for dotTag	tagSize=&amp;quot;11px&amp;quot;,	tagColor=&amp;quot;darkgrey&amp;quot;,	tagSpacer=&amp;quot;0px&amp;quot;,	tagAngle=&amp;quot;0deg&amp;quot;,	&lt;br /&gt;
	--sge extension line		textEW=&amp;quot;1px&amp;quot;,		textEC=&amp;quot;darkblue&amp;quot;,  	textES=&amp;quot;solid&amp;quot;&lt;br /&gt;
	--sgf fx for text labels	textSP=&amp;quot;0px&amp;quot;		textLH=&amp;quot;100%&amp;quot;			textOL=&amp;quot;1px&amp;quot;,		textBG=&amp;quot;paleground&amp;quot;,	&lt;br /&gt;
	&amp;lt;!--| sga = shape,Size,Color,Angle|sgb= outlineWidth,color,style eg: sga1=circle,14px,blue,0deg| sgb1=0px,dark grey,solid&lt;br /&gt;
    | sgc=textSize,color,angle,bold/italic  | sgd=tagSize,Color,Spacer,Angle  eg: sgc1=11px,dark grey,0deg,normal| sgd1=9px,white,0px,0deg&lt;br /&gt;
    | sge=lineWidth,color,style |sgf=textspacing,lineHeight%,outlinepx,backgroundcolor, [bold,italic] eg: sge1=0px,black, solid| sgf1=0px,120%,0px,background&lt;br /&gt;
    | dot=shape-group/lat/lon/title/dotTag | dotlink=link or tooltip | dotlabel=label,position,dx,dy,param1,info| dotpic=filename--&amp;gt;&lt;br /&gt;
	--]]&lt;br /&gt;
	&lt;br /&gt;
  if args[&amp;quot;sgn&amp;quot;..sgval] then&lt;br /&gt;
  	local sgname=string.match(args[&amp;quot;sgn&amp;quot;..sgval],&amp;quot;(%w+)(.*)&amp;quot;)&lt;br /&gt;
    sgNames[sgname]=sgval&lt;br /&gt;
  end&lt;br /&gt;
  local parent= args[&amp;quot;sgp&amp;quot;..sgval]&lt;br /&gt;
  if parent then &lt;br /&gt;
  	parent=string.match(parent,&amp;quot;(%w+)(.*)&amp;quot;)&lt;br /&gt;
    local pos= string.find(parent,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    if pos == 1 then&lt;br /&gt;
      parent=string.match(parent,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    else&lt;br /&gt;
      parent=sgNames[parent] or &#039;1&#039;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  if sgval~=&#039;H&#039; then&lt;br /&gt;
	if not parent or tonumber(parent) &amp;gt; tonumber(sgval) then &lt;br /&gt;
    	if sgval==&amp;quot;1&amp;quot; then parent=&amp;quot;0&amp;quot; else parent=&amp;quot;1&amp;quot; end&lt;br /&gt;
	end &lt;br /&gt;
  end&lt;br /&gt;
  local itemTab, line, filename&lt;br /&gt;
  result[sgval]={}&lt;br /&gt;
  result[sgval].shapeType=sgval &lt;br /&gt;
  line,filename=extractItem(args[&#039;sga&#039;..sgval] or &#039;&#039;,&#039;image:&#039;)&lt;br /&gt;
  if sgval==&#039;1&#039; and not args.sga1 then line=&#039;circle,12px,blue,0deg&#039; end -- ensure there is a parent=1 sga&lt;br /&gt;
  result[sgval].shapeFile=filename or &#039;&#039;&lt;br /&gt;
-- sga= Attributes for shape&lt;br /&gt;
	itemTab=splitItem(line,4)&lt;br /&gt;
    result[sgval].shape = itemTab[1] or result[parent].shape&lt;br /&gt;
    result[sgval].shapeSize=itemTab[2] or result[parent].shapeSize&lt;br /&gt;
    result[sgval].shapeColor=itemTab[3] or result[parent].shapeColor&lt;br /&gt;
    result[sgval].shapeAngle=itemCheck(itemTab[4],&#039;deg&#039;) or result[parent].shapeAngle&lt;br /&gt;
-- sgb= Border outline attributes for shape&lt;br /&gt;
	itemTab=splitItem(args[&#039;sgb&#039;..sgval],3)&lt;br /&gt;
    result[sgval].outlineWidth=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].outlineWidth &lt;br /&gt;
    result[sgval].outlineColor=itemTab[2] or result[parent].outlineColor&lt;br /&gt;
    result[sgval].outlineStyle=itemTab[3] or result[parent].outlineStyle&lt;br /&gt;
--sgc=character attributes for label&lt;br /&gt;
	itemTab=splitItem(args[&#039;sgc&#039;..sgval],4)&lt;br /&gt;
    result[sgval].textSZ=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].textSZ       -- size of text in px&lt;br /&gt;
    result[sgval].textCL=itemTab[2] or result[parent].textCL       -- colour for text&lt;br /&gt;
    result[sgval].textNG=itemCheck(itemTab[3],&#039;deg&#039;) or result[parent].textNG       -- Angle for text&lt;br /&gt;
    result[sgval].textAT=itemTab[4] or result[parent].textAT -- attributes  bold, and/or italic&lt;br /&gt;
--sgd=dotTag attributes&lt;br /&gt;
  itemTab=splitItem(args[&#039;sgd&#039;..sgval],4)&lt;br /&gt;
	result[sgval].tagSize=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].tagSize&lt;br /&gt;
	result[sgval].tagColor=itemTab[2] or result[parent].tagColor&lt;br /&gt;
	result[sgval].tagSpacer=itemCheck(itemTab[3],&#039;px&#039;) or result[parent].tagSpacer&lt;br /&gt;
	result[sgval].tagAngle=itemCheck(itemTab[4],&#039;deg&#039;) or result[parent].tagAngle&lt;br /&gt;
--sge= extension line attributes&lt;br /&gt;
	itemTab=splitItem(args[&#039;sge&#039;..sgval],4)&lt;br /&gt;
	result[sgval].textEW=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].textEW -- width&lt;br /&gt;
    result[sgval].textEC=itemTab[2] or result[parent].textEC       -- colour &lt;br /&gt;
    result[sgval].textES=itemTab[3] or result[parent].textES       -- style&lt;br /&gt;
--sgf= fx for label text&lt;br /&gt;
	itemTab=splitItem(args[&#039;sgf&#039;..sgval],4)&lt;br /&gt;
    result[sgval].textSP=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].textSP       -- spacing value for letters&lt;br /&gt;
    result[sgval].textLH=itemCheck(itemTab[2],&#039;%&#039;) or result[parent].textLH       -- Angle for text&lt;br /&gt;
    result[sgval].textOL=itemCheck(itemTab[3],&#039;px&#039;) or result[parent].textOL       -- width of text-border line&lt;br /&gt;
    result[sgval].textBG=itemTab[4] or result[parent].textBG       -- color for text background&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function round(x,dec) &lt;br /&gt;
	-- x=number [, dec=integer] returns numeric value with upto dec decimals (all but first trailing zeros get truncated)&lt;br /&gt;
    if (dec or 0)==0 then&lt;br /&gt;
        return x&amp;gt;=0 and math.floor(x+0.5) or math.ceil(x-0.5) --this avoids .0 where dec=0&lt;br /&gt;
    end&lt;br /&gt;
    dec =10^(dec)&lt;br /&gt;
  return x&amp;gt;=0 and math.floor(x*dec+0.5)/dec or math.ceil(x*dec-0.5)/dec&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function maptogrid(t,r,test)&lt;br /&gt;
	--[[ converts mercator projection longitude and latitude coordinates to x and y pixel coordinates, within a frame of given size, centre coordinates and zoom level.&lt;br /&gt;
	t is a table of named indices: {lon, lat, lonbase, latbase, width, height, zoom} &lt;br /&gt;
	output is two values, x and y, rounded to r decimal places--]]&lt;br /&gt;
	local x,y&lt;br /&gt;
    	x=t.width/2 + ( ((math.rad(t.lon)*6378137) - (math.rad(t.lonbase)* 6378137) )  / (156543.03*math.cos(t.latbase/180)/(2^t.zoom) ) )*(1-(0.075*(math.abs(t.latbase)/90)))&lt;br /&gt;
	    y=t.height/2 + ( ( (math.log(math.tan(math.rad(t.latbase)/2+math.pi/4))*6378137) - (math.log(math.tan(math.rad(t.lat)/2+math.pi/4))*6378137) ) / (156543.03*math.cos(t.latbase/180) / (2^t.zoom) ) )*(1-(0.075*(math.abs(t.latbase)/90))) &lt;br /&gt;
    return round(x,r),round(y,r)&lt;br /&gt;
    --source: python code at https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames and https://wiki.openstreetmap.org/wiki/Mercator&lt;br /&gt;
--[[    &lt;br /&gt;
width and height are the size, in pixels, of the map, which will be centerd around lonbase,latbase.&lt;br /&gt;
Method: Convert lon and lonbase to meter-offsets from coord(0,0), and subtract lonbase from lon,&lt;br /&gt;
zoom and latbase are used to scale the resulting meter-offset to pixels, and add it to width/2.&lt;br /&gt;
Convert lat and lat-base to meter-offsets from coord(0,0), subtract lat from latbase,&lt;br /&gt;
scale the resulting meter-offset to pixels, add it to height/2.&lt;br /&gt;
A correction factor &#039;*(1-(0.075*(math.abs(t.latbase)/90) ) )&#039; compensates for an error that seems to creep in towards &lt;br /&gt;
the edges of the map at higher latitudes. It was identified experimentally, and ensures a dot at the edge is &lt;br /&gt;
in the same place as if that location is positioned at the centre.&lt;br /&gt;
&lt;br /&gt;
Original Python code for lat,lon to x,y where 0,0 is the centre of the map&lt;br /&gt;
print(&#039;x=&#039;,width+(((math.radians(lon1) * 6378137)-&lt;br /&gt;
      (math.radians(lonbase) * 6378137))/&lt;br /&gt;
      (156543.03*math.cos(latbase/180)/(2**zoom))),&#039; y=&#039;,height+((&lt;br /&gt;
      (math.log(math.tan(math.pi / 4 + math.radians(latbase) / 2)) * 6378137)-&lt;br /&gt;
      (math.log(math.tan(math.pi / 4 + math.radians(lat1) / 2)) * 6378137))/&lt;br /&gt;
      (156543.03*math.cos(latbase/180)/(2**zoom)))&lt;br /&gt;
     )  --]]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getScale(zoom, lat,magVal)&lt;br /&gt;
	zoom = tonumber(zoom) or 1&lt;br /&gt;
	lat = tonumber(lat) or 0&lt;br /&gt;
	if magVal and magVal&amp;gt;1 and magVal &amp;lt;=2 then zoom=zoom+(magVal-1) end&lt;br /&gt;
	local dist=(156543.03 * math.cos(math.rad(math.abs(lat))) / (2 ^ zoom))/17&lt;br /&gt;
	local y&lt;br /&gt;
	if dist &amp;lt; 1 then&lt;br /&gt;
		y=(round(dist*10,1))&lt;br /&gt;
    	return tostring(y*100)..metres, tostring(round(y*109,0))..yards&lt;br /&gt;
	elseif dist &amp;lt;18 then&lt;br /&gt;
		y=(round(dist,0))&lt;br /&gt;
    	return tostring(y)..km, tostring(round(y*0.621371,1))..miles&lt;br /&gt;
    elseif dist &amp;lt;500 then&lt;br /&gt;
    	y=round(dist/10)&lt;br /&gt;
    	return tostring(y*10)..km, tostring(round(y*6.21371,0))..miles&lt;br /&gt;
	else &lt;br /&gt;
    	y=round(dist/100)&lt;br /&gt;
    	return tostring(y*100)..km, tostring(round(y*62.1371,0))..miles&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ParseData (args,dotval)  -- for use with compressed, comma-separated &#039;sg plus dots&#039; parameters&lt;br /&gt;
    -- takes a structured series of comma-separated items which get parsed as the following:&lt;br /&gt;
    -- dot(n)= (sgNumber or Name),{{coord}} or (lat,lon), (dotTag)&lt;br /&gt;
    -- dotlink(n) = single-parameter text to give wikilink and/or title used by tootlip, fullscreen dots and autocaption list&lt;br /&gt;
    -- dotlabel(n) = &#039;label text&#039;,pos(left,roght,top,bottom,centre,auto),(dx), (dy) pixel offsets,  params, info &lt;br /&gt;
    -- dotpic(n) = single parameter wikimedia filename for an image to use in photopanel and/or fullscreen dots&lt;br /&gt;
    -- dotfeature(n)= &#039;mark-line&#039; (,linewidth,style,gap)  or  &#039;photo-panel&#039; (,image-dim,panel-width,panel-height), draws line to n-1&lt;br /&gt;
    -- label is used if either a position and/or an x,y offset are not 0,0 ( if no label then dotTag will be put at at the x,y offset, or over the dot&lt;br /&gt;
    -- label text can be autoaligned if x,y puts it left or right of the dot, or centered if above/below)&lt;br /&gt;
    -- quote marks are not needed unless including commas within the label text&lt;br /&gt;
    -- param1 is optional items separated by spaces, and can include [nolabel nolist nomap hemisphere+1 hemisphere-1]&lt;br /&gt;
    -- info is free wikitext, to be used in the fullscreen dot box. (use dotpic to show a picture)&lt;br /&gt;
&lt;br /&gt;
    --&amp;lt;!--| dotx=shape-group,[lat,lon or {{coord}} ], dotTag | dotlink=link or tooltip | dotlabel=label,position,dx,dy,param1,info| dotpic=filename--&amp;gt;&lt;br /&gt;
	local result={}&lt;br /&gt;
    local count=1&lt;br /&gt;
    local row = convertCoords (args[&amp;quot;dot&amp;quot;..dotval])  -- swap in any {{coord}} values so they are csv lat and lon&lt;br /&gt;
    row=fillCommas(row,4)&lt;br /&gt;
        result.code=dotval -- store the parameter name as the id code&lt;br /&gt;
    for item in string.gmatch(row,&amp;quot;[^,]+&amp;quot;) do -- iterate through &#039;row&#039;, adding each csv item in turn, if present&lt;br /&gt;
	  if count==1 then --see if it is a number or a name&lt;br /&gt;
	    local pos= string.find(item,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    	if pos == 1 then&lt;br /&gt;
    		result.group=string.lower(string.gsub(item,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;))&lt;br /&gt;
    	else&lt;br /&gt;
    		item=string.match(item,&amp;quot;(%w+)(.*)&amp;quot;) -- ensure just a single word&lt;br /&gt;
    		result.group=sgNames[item]&lt;br /&gt;
    	end&lt;br /&gt;
      elseif count==2 then &lt;br /&gt;
        result.lat=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0-- find the number, with no non-numeric stuff&lt;br /&gt;
      elseif count==3 then &lt;br /&gt;
        result.lon=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0 &lt;br /&gt;
      elseif count==4 then&lt;br /&gt;
        result.dotTag=item:match( &amp;quot;^%s*(.-)%s*$&amp;quot; ) or &amp;quot;&amp;quot; -- dotTag allows for internal spaces, but no commas&lt;br /&gt;
      end&lt;br /&gt;
      count=count+1&lt;br /&gt;
    end&lt;br /&gt;
    row, result.labelText= extractItem(args[&amp;quot;dotlabel&amp;quot;..dotval])&lt;br /&gt;
    result.labelText= string.gsub(result.labelText,&amp;quot;[%^]+&amp;quot;,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) -- convert hats to line breaks&lt;br /&gt;
    local item=splitItem(row,6)&lt;br /&gt;
    result.labelPos=item[2] or &#039;center&#039;&lt;br /&gt;
    result.dx=tonumber(string.match(item[3] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
    result.dy=tonumber(string.match(item[4] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
    result.param1=string.lower(item[5] or &#039;&#039;)&lt;br /&gt;
    if string.find(result.param1,&amp;quot;hemisphere-1&amp;quot;,1,true) then result.lon=result.lon-360&lt;br /&gt;
    elseif string.find(result.param1,&amp;quot;hemisphere+1&amp;quot;,1,true) then result.lon=result.lon+360&lt;br /&gt;
    end&lt;br /&gt;
    local txt = &#039;&#039;&lt;br /&gt;
    if item[6] then -- ensure all info elements are included, including commas&lt;br /&gt;
    	count=1 &lt;br /&gt;
    	local max=6&lt;br /&gt;
	    for t1 in string.gmatch(fillCommas(row,max),&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
			if count&amp;gt;max then txt=txt..&#039;,&#039; end&lt;br /&gt;
			if count&amp;gt;=max then txt=txt..t1 end&lt;br /&gt;
			count=count+1&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
    result.info=txt&lt;br /&gt;
	result.imageName = args[&#039;dotpic&#039;..dotval]&lt;br /&gt;
	-- Get first wikilinked item (if any) from the args.dotlink and set this plus the delinked text&lt;br /&gt;
	local testx=args[&amp;quot;dotlink&amp;quot;..dotval] or &#039;&#039;&lt;br /&gt;
	result.dotLink=testx&lt;br /&gt;
	if testx ~= &#039;&#039; then&lt;br /&gt;
		testx=stripdivs(testx)&lt;br /&gt;
		result.title=delink({ testx })&lt;br /&gt;
		local linkstart= string.find(testx,&#039;[[&#039;,1,true) -- use true to ensure a plain search (no pattern)&lt;br /&gt;
		if linkstart then&lt;br /&gt;
			result.dlink=delink( { string.sub(testx,linkstart,string.find(testx,&#039;]]&#039;,1,true)+1),wikilinks=&#039;target&#039; } )&lt;br /&gt;
		else result.dlink=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
        result.dlink=&#039;&#039;&lt;br /&gt;
        result.title=&#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;dotfeature&#039;..dotval] then&lt;br /&gt;
		local item=splitItem(args[&#039;dotfeature&#039;..dotval],6)&lt;br /&gt;
		if (item[1] or &#039;&#039;) ==&#039;photo-panel&#039; then &lt;br /&gt;
			result.ppwidth= tonumber(string.match((item[3] or &#039;110&#039;),&amp;quot;%d+&amp;quot;)) -- panel width&lt;br /&gt;
			result.ppheight= tonumber(string.match((item[4] or &#039;48&#039;),&amp;quot;%d+&amp;quot;) ) --panel height&lt;br /&gt;
			result.photowidth=round(tonumber(string.match((item[2] or &#039;1.3&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)) * result.ppheight+1,0) -- dimension to set image size&lt;br /&gt;
			result.photoImage=result.imageName&lt;br /&gt;
			result.posType=&#039;photo-panel&#039;&lt;br /&gt;
		elseif (item[1] or &#039;&#039;) == &#039;mark-line&#039; then&lt;br /&gt;
			local x=tonumber(dotval or &#039;0&#039;)&lt;br /&gt;
			result.markDest=item[5] or tostring(x-1)&lt;br /&gt;
			result.mlWidth= tonumber(string.match((item[2]) or &#039;&#039;,&amp;quot;%d+&amp;quot;) or &#039;1&#039;)&lt;br /&gt;
			result.mlStyle= item[3] or &#039;solid&#039;&lt;br /&gt;
			result.mlGap=tonumber(string.match((item[4] or &#039;&#039;),&amp;quot;[%d]+&amp;quot;) or &#039;0&#039;)&lt;br /&gt;
			result.posType=&#039;mark-line&#039;&lt;br /&gt;
		end&lt;br /&gt;
		--debugmsg(&#039;photo-panel, &#039;..shapePos[2]..&#039;, 3=&#039;..shapePos[3]..&#039;, 4=&#039;..shapePos[4]..&#039;, 5=&#039;..(shapePos[5] or &#039;(48&#039;)..&#039;photowidth=&#039;..tostring(dotItem.photowidth))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    maplist.lon=result.lon&lt;br /&gt;
	maplist.lat=result.lat&lt;br /&gt;
	result.gridx, result.gridy = maptogrid(maplist,1) -- convert geo coords to grid xy - using values from maplist table&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function multiCheck (args, argName, argVal, defVal, alt)&lt;br /&gt;
	if not alt then alt=&#039;nonexistant&#039; end&lt;br /&gt;
	if argVal==&#039;H&#039; and not args[argName..&#039;H&#039;] then argVal=highlightNum or &#039;1&#039; end&lt;br /&gt;
	if argVal==&#039;&#039; then &lt;br /&gt;
		return (args[argName] or args[alt] or (args[argName..&#039;D&#039;]) or args[alt..&#039;D&#039;] or defVal) -- unnumbered args do not inherit from D or 1&lt;br /&gt;
	else&lt;br /&gt;
		return (args[argName..argVal]) or (args[alt..argVal]) or (args[argName..&#039;D&#039;]) or (args[alt..&#039;D&#039;]) or (args[argName..&#039;1&#039;]) or (args[alt..&#039;1&#039;]) or defVal&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function htmlTableLine (htmlTable,h1,h2,h3,h4,h5,type)&lt;br /&gt;
	if type == &#039;header&#039; then&lt;br /&gt;
		if (h4 or &#039;&#039;) ~= &#039;no-year&#039; then h4=&#039;&amp;lt;th class=&amp;quot;unsortable&amp;quot;&amp;gt;&#039;..h4 or &#039;&#039;..&#039;&amp;lt;/th&amp;gt;&#039; else h4 = &#039;&#039; end&lt;br /&gt;
		if (h5 or &#039;&#039;) ~= &#039;&#039; then h5=&#039;&amp;lt;th class=&amp;quot;unsortable&amp;quot;&amp;gt;&#039;..h5..&#039;&amp;lt;/th&amp;gt;&#039; else h5 = &#039;&#039; end&lt;br /&gt;
		return htmlTable..&#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&#039;..(h1 or &#039;&#039;)..&#039;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&#039;..(h2 or &#039;&#039;)..&#039;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&#039;..(h3 or &#039;&#039;)..&#039;&amp;lt;/th&amp;gt;&#039;..h4..h5..&#039;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		if (h4 or &#039;&#039;) ~= &#039;no-year&#039; then h4=&#039;&amp;lt;td&amp;gt;&#039;..h4 or &#039;&#039;..&#039;&amp;lt;/td&amp;gt;&#039; else h4 = &#039;&#039; end&lt;br /&gt;
		if (h5 or &#039;&#039;) ~= &#039;&#039; then h5=&#039;&amp;lt;td&amp;gt;&#039;..h5..&#039;&amp;lt;/td&amp;gt;&#039; else h5 = &#039;&#039; end&lt;br /&gt;
		return htmlTable..&#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&#039;..(h1 or &#039;&#039;)..&#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&#039;..(h2 or &#039;&#039;)..&#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&#039;..(h3 or &#039;&#039;)..&#039;&amp;lt;/td&amp;gt;&#039;..h4..h5..&#039;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatInt(number)&lt;br /&gt;
  if number == 0 then return notFound end&lt;br /&gt;
  local i, j, minus, int, fraction = tostring(number):find(&#039;([-]?)(%d+)([.]?%d*)&#039;)&lt;br /&gt;
  int = int:reverse():gsub(&amp;quot;(%d%d%d)&amp;quot;, &amp;quot;%1,&amp;quot;)&lt;br /&gt;
  return minus .. int:reverse():gsub(&amp;quot;^,&amp;quot;, &amp;quot;&amp;quot;) .. fraction&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function convertToSqKm (value,punit)&lt;br /&gt;
	if string.find(punit, &#039;Q35852&#039;) then value = value / 100 -- convert to sq km if it&#039;s hectares&lt;br /&gt;
    elseif string.find(punit, &#039;Q232291&#039;) then value = value /(1/2.59) -- or this if it&#039;s square miles&lt;br /&gt;
    elseif string.find(punit, &#039;Q81292&#039;) then value = value / 247.1 -- or this if it&#039;s acres&lt;br /&gt;
    end&lt;br /&gt;
    return value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function assignTradstyleShape(shapeResult,default,dotResult,args,nval)&lt;br /&gt;
	local item,itemTab&lt;br /&gt;
	local autoDotTag=&#039;&#039;&lt;br /&gt;
	local shapeWidth,shapeHeight=0,0&lt;br /&gt;
	local argval=nval -- to catch the unnumbered shape series&lt;br /&gt;
	local qvalue=&#039;&#039;&lt;br /&gt;
	if argval==&#039;0&#039; then argval=&#039;&#039; end&lt;br /&gt;
	if nval==&#039;H&#039; then shapeResult.H={} end&lt;br /&gt;
	&lt;br /&gt;
	     -- Assign autovalues if a wikidata Qvalue has been supplied&lt;br /&gt;
	     -- some preliminary documentation&lt;br /&gt;
	          -- geo-data-type= default is P1082 (population)&lt;br /&gt;
	        	-- other options might include number of households (P1538) and per capita income (P10622) or land area (P2046)&lt;br /&gt;
	          -- geo-data-list= this is a comma-separated list of Q values, for a manually generated list that doesn&#039;t require nymbered parameters&lt;br /&gt;
	          -- geo-scalefactor = can enlarge or shrink all the dots in proportion, depending an what the map needs&lt;br /&gt;
	          -- geo-region = needs to be a Qvalue of the larger administrative region that the settlements/sub-regions are in&lt;br /&gt;
	          -- geo-sub-region needs to be a Pvalue, but will default to P150 (some pages use &#039;has parts&#039; = P527)&lt;br /&gt;
	          -- geo-data3= etc numbered Qvalue item, if used in conjunction with other shape/label parameters&lt;br /&gt;
	          -- shapeD= sets default shape, which migh be n-circle to include numbers.&lt;br /&gt;
	          -- geo-number-size= will give a fixed size for shape numbers. (defaults to 12 when using proportional dots)&lt;br /&gt;
	          -- geo-boundaries= if set to 1 will add any Qvalues for the sub-regions to &#039;map-data-light&#039;. &lt;br /&gt;
	          -- show-geo-dots= to use proportional dots. Will be fixed size if 0. (set mark-sizeD=0 to have no dot at all, eg to show labels or boundaries)&lt;br /&gt;
	          -- find-geo-dots=1 or 0 (needs to also include geo-region)&lt;br /&gt;
	          -- label-posD =  gets additional options: [off] gives no label, [on] will position lower centre, &lt;br /&gt;
	                   -- [on+] includes numeric values beside/below label, [on^] will always put it below. [on-] always puts values beside&lt;br /&gt;
	if args[&#039;geo-data&#039;..argval] then -- and (args[&#039;mark-title&#039;..argval] or &#039;&#039;) ~= &#039;none&#039; then&lt;br /&gt;
		local pvalue = args[&#039;geo-data-type&#039;] or &#039;P1082&#039;&lt;br /&gt;
		local plabel = mw.wikibase.getLabel(pvalue)&lt;br /&gt;
		if not args[&#039;geo-number-size&#039;] then args[&#039;geo-number-size&#039;]=12 end&lt;br /&gt;
		if not args[&#039;label-posD&#039;] then args[&#039;label-posD&#039;] = &#039;on&#039; end&lt;br /&gt;
		qvalue=args[&#039;geo-data&#039;..argval]&lt;br /&gt;
		      -- total poulation is a Qvalue wikidata page entry, or add up all the geo-data values or use a random 10000&lt;br /&gt;
		local region = args[&#039;geo-region&#039;] -- or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
		local thisPop=0&lt;br /&gt;
		local areatxt=&#039;&#039;&lt;br /&gt;
		local yearVal=&#039;&#039;&lt;br /&gt;
		if mw.wikibase.getBestStatements(qvalue,pvalue)[1] then &lt;br /&gt;
			thisPop=tonumber(mw.wikibase.getBestStatements(qvalue,pvalue)[1].mainsnak.datavalue.value.amount) or 0&lt;br /&gt;
			if pvalue == &#039;P2046&#039; then -- area, so convert from ha to sq km if needed (/100)&lt;br /&gt;
				thisPop = convertToSqKm(thisPop, mw.wikibase.getBestStatements(qvalue,pvalue)[1].mainsnak.datavalue.value.unit)&lt;br /&gt;
			end&lt;br /&gt;
			if mw.wikibase.getBestStatements(qvalue,pvalue)[1].qualifiers and mw.wikibase.getBestStatements(qvalue,pvalue)[1].qualifiers.P585 then&lt;br /&gt;
				yearVal = mw.wikibase.getBestStatements(qvalue,pvalue)[1].qualifiers.P585[1].datavalue.value.time&lt;br /&gt;
				if yearVal then yearVal = yearVal:sub(2,5) end -- wikidata reports an entire date and time, so extract the year&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			debugmsg(mw.addWarning(mw.wikibase.getLabel(qvalue)..&#039; (&#039;..qvalue..&#039;) has no recorded &#039;..plabel))&lt;br /&gt;
		end&lt;br /&gt;
		local scalefactor=args[&#039;geo-scalefactor&#039;] or 1&lt;br /&gt;
		if argval==&#039;1&#039; and args[&#039;mark-size1&#039;] and not args[&#039;mark-sizeD&#039;] then args[&#039;mark-sizeD&#039;] = args[&#039;mark-size1&#039;] end&lt;br /&gt;
		if argval==&#039;1&#039; and args[&#039;label-pos1&#039;] and not args[&#039;label-posD&#039;] then args[&#039;label-posD&#039;] = args[&#039;label-pos1&#039;] end&lt;br /&gt;
		if not args[&#039;mark-size&#039;..argval] then &lt;br /&gt;
			if args[&#039;show-geo-dots&#039;] == &#039;0&#039; then&lt;br /&gt;
				args[&#039;mark-size&#039;..argval] = args[&#039;mark-sizeD&#039;] or &#039;1&#039;   -- just use a &#039;point&#039; for the label to attach to&lt;br /&gt;
			else&lt;br /&gt;
				if thisPop&amp;gt;0 then&lt;br /&gt;
					args[&#039;mark-size&#039;..argval] = round(math.sqrt(thisPop/geoTotalPop*100) * 8 * scalefactor,0) &lt;br /&gt;
				else &lt;br /&gt;
					args[&#039;mark-size&#039;..argval] = args[&#039;mark-sizeD&#039;] or &#039;1&#039;&lt;br /&gt;
					args[&#039;shape-outline&#039;..argval]=args[&#039;shape-outline&#039;..argval] or args[&#039;shape-outlineH&#039;]&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local posTemp=string.lower(multiCheck(args,&#039;label-pos&#039;,argval,&#039;on&#039;))&lt;br /&gt;
		args[&#039;label-pos&#039;..argval] = posTemp&lt;br /&gt;
		posTemp=splitItem(posTemp,2)[1]&lt;br /&gt;
		if pvalue == &#039;P2046&#039; then &lt;br /&gt;
			thisPop = round(thisPop,2)  &lt;br /&gt;
			areatxt=sqkm..areatxt  -- round decimals if sq km area&lt;br /&gt;
		elseif pvalue == &#039;P10622&#039; then&lt;br /&gt;
			if mw.wikibase.getBestStatements(qvalue,pvalue)[1] then&lt;br /&gt;
				local punit=(mw.wikibase.getBestStatements(qvalue,pvalue)[1].mainsnak.datavalue.value.unit or &#039;&#039;):match(&amp;quot;Q.*&amp;quot;) -- extract Q value&lt;br /&gt;
				if punit == &#039;Q4917&#039; then areatxt=&#039; US$&#039;&lt;br /&gt;
				elseif punit == &#039;Q4916&#039; then areatxt=&#039; euro&#039;&lt;br /&gt;
				elseif punit == &#039;Q25224&#039; then areatxt=&#039; £GBP&#039;&lt;br /&gt;
				else areatxt=mw.wikibase.getLabel(punit)..areatxt&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if posTemp==&#039;off&#039; then&lt;br /&gt;
		else&lt;br /&gt;
			if not args[&#039;label&#039;..argval] then args[&#039;label&#039;..argval] = mw.wikibase.getLabel(qvalue) end&lt;br /&gt;
			local tline=posTemp:find(&amp;quot;[%+%^%-]&amp;quot;)&lt;br /&gt;
			if tline then&lt;br /&gt;
				local tval=posTemp:sub(tline,tline)&lt;br /&gt;
				local eline&lt;br /&gt;
				posTemp=posTemp:sub(1,tline-1)&lt;br /&gt;
				if posTemp == &#039;left&#039; or posTemp == &#039;right&#039; or string.find(posTemp,&#039;east&#039;) or string.find(posTemp,&#039;west&#039;) then &lt;br /&gt;
					if tval == &#039;^&#039; then eline = &#039;^&#039; else eline = &#039; &#039; end  -- only add line break if &#039;forced&#039;, used for left/right&lt;br /&gt;
				elseif tval == &#039;+&#039; or tval == &#039;^&#039; then eline = &#039;^&#039;         -- add linebreak unless  &#039;forced&#039; not to&lt;br /&gt;
				else eline = &#039; &#039;											-- must be a dash, so no line break&lt;br /&gt;
				end&lt;br /&gt;
				args[&#039;label&#039;..argval] = args[&#039;label&#039;..argval]..eline..&#039;(&#039;..formatInt(thisPop)..&#039;)&#039; &lt;br /&gt;
				args[&#039;label-pos&#039;..argval] = posTemp..args[&#039;label-pos&#039;..argval]:sub(tline+1,#args[&#039;label-pos&#039;..argval])&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		end&lt;br /&gt;
		if posTemp==&#039;on&#039;  then &lt;br /&gt;
			if argval==&#039;1&#039; and (not args.ldyD) then args.ldyD = args[&#039;ldy&#039;..argval] or &#039;0&#039; end&lt;br /&gt;
			if not args[&#039;ldy&#039;..argval] then args[&#039;ldy&#039;..argval] = args.ldyD end -- ensure ldy for that dot is added to the position&lt;br /&gt;
			args[&#039;label-pos&#039;..argval]=&#039;center&#039;&lt;br /&gt;
			local _,br = string.gsub(args[&#039;label&#039;..argval],&#039;%^&#039;,&#039;&#039;)&lt;br /&gt;
			local item=splitItem(args[&#039;label-size&#039;..argval],2)&lt;br /&gt;
			args[&#039;ldy&#039;..argval] = (args[&#039;ldy&#039;..argval] or 0) + ((item[1] or 11) * ((br+1)*0.6)) + ((args[&#039;geo-number-size&#039;] or 12) / 2)&lt;br /&gt;
		end&lt;br /&gt;
		local nt=&#039;&#039;&lt;br /&gt;
		if args[&#039;mark-title&#039;..argval] == &#039;nolist&#039; then nt=&#039;nolist,&#039; end&lt;br /&gt;
		if not args[&#039;mark-title&#039;..argval] or args[&#039;mark-title&#039;..argval] == &#039;&#039; or args[&#039;mark-title&#039;..argval] == &#039;nolist&#039; then &lt;br /&gt;
			if mw.wikibase.getSitelink(qvalue) then &lt;br /&gt;
				args[&#039;mark-title&#039;..argval] = nt..&#039;[[&#039;..mw.wikibase.getSitelink(qvalue)..&#039;]]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				args[&#039;mark-title&#039;..argval] = nt..mw.wikibase.getLabel(qvalue)&lt;br /&gt;
			end&lt;br /&gt;
		end -- If mark-title is not set locally then attempt Sitelink value, or use label&lt;br /&gt;
		if thisPop == 0 then areatxt=&#039;&#039; end&lt;br /&gt;
		captionTableText[argval]={}&lt;br /&gt;
		captionTableText[argval][1]= args[&#039;mark-title&#039;..argval]&lt;br /&gt;
		captionTableText[argval][2]= formatInt(thisPop)&lt;br /&gt;
		if maplist.width &amp;gt;= 280 then captionTableText[argval][3]= yearVal else captionTableText[argval][3]=&#039;no-year&#039; end&lt;br /&gt;
		if args[&#039;show-q-values&#039;] == &#039;1&#039; then&lt;br /&gt;
			captionTableText[argval][4]=&#039;&amp;lt;small&amp;gt;[[wikidata:&#039;..qvalue..&#039;|&#039;..qvalue..&#039;]]&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
		else &lt;br /&gt;
			local nbsp = &#039;&amp;amp;nbsp;&#039;&lt;br /&gt;
			if maplist.width &amp;lt; 230 then nbsp = &#039; &#039; end&lt;br /&gt;
			captionTableText[argval][4]=&#039;&#039;&lt;br /&gt;
			if captionTableText[argval][3] == &#039;no-year&#039; then &lt;br /&gt;
				captionTableText[argval][2] = captionTableText[argval][2]..&#039;&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;&#039;..nbsp..&#039;[[wikidata:&#039;..qvalue..&#039;|WD]]&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
			else&lt;br /&gt;
				captionTableText[argval][3] = captionTableText[argval][3]..&#039;&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;&#039;..nbsp..&#039;[[wikidata:&#039;..qvalue..&#039;|WD]]&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if args[&#039;mark-title&#039;..argval] == &#039;none&#039; then&lt;br /&gt;
			-- no title&lt;br /&gt;
		else&lt;br /&gt;
			args[&#039;mark-title&#039;..argval] = args[&#039;mark-title&#039;..argval]..&#039; (&#039;..plabel..&#039; &#039;..formatInt(thisPop)..areatxt..&#039;)&#039;&lt;br /&gt;
		end&lt;br /&gt;
        if not args[&#039;mark-description&#039;..argval] then args[&#039;mark-description&#039;..argval] = (mw.wikibase.getDescription(qvalue) or &#039;&#039;)..&#039;&amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
        if (not args[&#039;mark-image&#039;..argval]) and (mw.wikibase.getBestStatements(qvalue,&#039;P18&#039;)[1]) then &lt;br /&gt;
        	args[&#039;mark-image&#039;..argval] = mw.wikibase.getBestStatements(qvalue,&#039;P18&#039;)[1].mainsnak.datavalue.value&lt;br /&gt;
        end&lt;br /&gt;
		item = multiCheck(args,&#039;shape&#039;,argval,&#039;circle&#039;) --default to circle if geo-data&lt;br /&gt;
		if not string.find(item,&#039;svgpath,&#039;) then item=string.lower(item) end -- ensure svgpath items retain original case values&lt;br /&gt;
	else&lt;br /&gt;
		item = multiCheck(args,&#039;shape&#039;,argval,&#039;image&#039;)&lt;br /&gt;
		if not string.find(item,&#039;svgpath,&#039;) then item=string.lower(item) end -- ensure svgpath items retain original case values&lt;br /&gt;
	end&lt;br /&gt;
	if string.find(item,&#039;n-&#039;,0,true)==1 or string.find(item,&#039;l-&#039;,0,true)==1 then &lt;br /&gt;
		autoDotTag=string.sub(item,0,1) &lt;br /&gt;
		item=string.sub(item,3) &lt;br /&gt;
	end&lt;br /&gt;
    if item == &#039;image&#039; then &lt;br /&gt;
    	shapeResult[nval].shape = &#039;image:&#039;&lt;br /&gt;
    	shapeResult[nval].shapeFile =multiCheck(args,&#039;mark&#039;,argval,&#039;Red pog.svg&#039;)&lt;br /&gt;
    	shapeWidth=-1&lt;br /&gt;
    else   shapeResult[nval].shape = item &lt;br /&gt;
    end&lt;br /&gt;
    item= multiCheck(args,&#039;mark-size&#039;,argval,(shapeResult[nval].shapeSize or &#039;14px&#039;)) -- add geo-data as fallback if already assigned&lt;br /&gt;
	local a,b,c= getsize(string.gsub(string.gsub(item,&#039;,&#039;,&#039;px&#039;)..&#039;px&#039;,&#039;pxpx&#039;,&#039;px&#039;))&lt;br /&gt;
	if b==a and args[&#039;mark-dim&#039;..argval] then &lt;br /&gt;
		b= b / tonumber(string.match(args[&#039;mark-dim&#039;..argval],&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	shapeHeight=b/2&lt;br /&gt;
	item=tostring(a)..&#039;px&#039;..tostring(b)..&#039;px&#039;..tostring(c)..&#039;px&#039;&lt;br /&gt;
    shapeResult[nval].shapeSize= item&lt;br /&gt;
    itemTab=splitItem(multiCheck(args,&#039;shape-color&#039;,argval,&#039;hard red&#039;),2)&lt;br /&gt;
    shapeResult[nval].shapeColor=itemTab[1] or &#039;hardred&#039;&lt;br /&gt;
    item=itemCheck(itemTab[2],&#039;%&#039;) -- jump through the various opacity hoops and add to color if needed&lt;br /&gt;
    if not item then item=itemCheck(args[&#039;shape-opacity&#039;..argval],&#039;%&#039;) end&lt;br /&gt;
    if item and item~=&#039;0%&#039; and item~=&#039;100%&#039; then shapeResult[nval].shapeColor=shapeResult[nval].shapeColor..item  end&lt;br /&gt;
    shapeResult[nval].shapeAngle=itemCheck(multiCheck(args,&#039;shape-angle&#039;,argval,&#039;0&#039;),&#039;deg&#039;) or &#039;0deg&#039;&lt;br /&gt;
    if args[&#039;shape-angle&#039;..argval] then shapeResult[nval].shapeAngleArg=true else shapeResult[nval].shapeAngleArg=false end&lt;br /&gt;
--sort out the outline entry&lt;br /&gt;
    itemTab=splitItem(multiCheck(args,&#039;shape-outline&#039;,argval,&#039;transparent,0,100,solid&#039;),4)&lt;br /&gt;
    shapeResult[nval].outlineColor=itemTab[1] or &#039;dark grey&#039;&lt;br /&gt;
    shapeResult[nval].outlineWidth=itemCheck(itemTab[2],&#039;px&#039;) or &#039;1px&#039; &lt;br /&gt;
    if itemTab[3] and itemTab[3]~=&#039;100&#039; and itemTab[3]~=&#039;0&#039; then&lt;br /&gt;
    	shapeResult[nval].outlineColor=shapeResult[nval].outlineColor..itemCheck(itemTab[3],&#039;%&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    shapeResult[nval].outlineStyle=itemTab[4] or &#039;solid&#039;&lt;br /&gt;
-- label size, background, outline&lt;br /&gt;
    shapeResult[nval].textAT=args[&#039;label-attribute&#039;..argval] or &#039;&#039;&lt;br /&gt;
    itemTab=splitItem( multiCheck(args,&#039;label-size&#039;,argval,&#039;12&#039;),3)&lt;br /&gt;
    shapeResult[nval].textSZ=itemCheck(itemTab[1],&#039;px&#039;) or &#039;12px&#039; &lt;br /&gt;
    if itemTab[2]==&#039;outline&#039; then &lt;br /&gt;
    	shapeResult[nval].textBG=itemTab[3] or &#039;transparent&#039;&lt;br /&gt;
    	shapeResult[nval].textOL=&#039;1px&#039; &lt;br /&gt;
    elseif itemTab[3]==&#039;outline&#039; then &lt;br /&gt;
    	shapeResult[nval].textBG=itemTab[2] or &#039;transparent&#039;&lt;br /&gt;
    	shapeResult[nval].textOL=&#039;1px&#039; &lt;br /&gt;
    else shapeResult[nval].textOL=&#039;0px&#039; &lt;br /&gt;
    	shapeResult[nval].textBG=itemTab[2] or &#039;transparent&#039;&lt;br /&gt;
    end&lt;br /&gt;
    if getColor(shapeResult[nval].textBG)==CTB[&#039;hardgrey&#039;] and shapeResult[nval].textBG~=&#039;hardgrey&#039; then shapeResult[nval].textBG= &#039;transparent&#039; end&lt;br /&gt;
--label color etc&lt;br /&gt;
    itemTab=splitItem(multiCheck(args,&#039;label-color&#039;,argval, &#039;darkgrey&#039;,&#039;label-colour&#039;),2)&lt;br /&gt;
    shapeResult[nval].textCL=itemTab[1] or &#039;darkgrey&#039;&lt;br /&gt;
    if itemTab[2] and itemTab[2]~=&#039;0%&#039; and itemTab[2]~=&#039;100%&#039; then shapeResult[nval].textCL=shapeResult[nval].textCL..itemTab[2]  end&lt;br /&gt;
    shapeResult[nval].textSP=itemCheck( multiCheck(args,&#039;label-spacing&#039;,argval,&#039;0&#039;),&#039;px&#039;) -- sets letter-spacing in px&lt;br /&gt;
    shapeResult[nval].textLH=itemCheck( multiCheck(args,&#039;label-height&#039;,argval,&#039;120&#039;),&#039;%&#039;) -- sets line height, 120% default &lt;br /&gt;
    shapeResult[nval].textNG=itemCheck(multiCheck(args,&#039;label-angle&#039;,argval,&#039;0&#039;),&#039;deg&#039;)&lt;br /&gt;
    if args[&#039;label-angle&#039;..argval] then shapeResult[nval].textNGarg=true else shapeResult[nval].textNGarg=false end&lt;br /&gt;
--sgd=dotTag attributes&lt;br /&gt;
 	shapeResult[nval].tagSize=(args[&#039;geo-number-size&#039;] or tostring(shapeHeight*1.5))..&#039;px&#039;&lt;br /&gt;
 	local c1,c2=checkColors(shapeResult[nval].shapeColor)&lt;br /&gt;
	shapeResult[nval].tagColor=c2&lt;br /&gt;
	shapeResult[nval].tagSpacer=&#039;0px&#039;&lt;br /&gt;
	shapeResult[nval].tagAngle=&#039;0deg&#039;&lt;br /&gt;
-- sge extension line attributes &lt;br /&gt;
	local shapePos=splitItem(multiCheck(args,&#039;label-pos&#039;,argval,&#039;right&#039;),6)&lt;br /&gt;
	if shapePos[2]==&#039;with-line&#039; or shapePos[2]==&#039;n-line&#039; then &lt;br /&gt;
    	shapeResult[nval].textEW=(shapePos[3] or &#039;1&#039;)..&#039;px&#039; -- width&lt;br /&gt;
    	shapeResult[nval].textEC=(shapePos[4] or shapeResult[nval].shapeColor or &#039;darkgrey&#039;)&lt;br /&gt;
	elseif shapePos[2]==&#039;photo-panel&#039; then &lt;br /&gt;
		shapeResult[nval].textEW=&#039;2px&#039; -- width&lt;br /&gt;
    	shapeResult[nval].textEC=shapeResult[nval].textCL&lt;br /&gt;
    else&lt;br /&gt;
    	shapeResult[nval].textEW=&#039;0px&#039; -- width&lt;br /&gt;
    	shapeResult[nval].textEC=&#039;grey&#039;-- colour &lt;br /&gt;
    end&lt;br /&gt;
    shapeResult[nval].textES=&#039;solid&#039;&lt;br /&gt;
    if argval==&#039;H&#039; then return dotResult end&lt;br /&gt;
--Assign dot values&lt;br /&gt;
	local dotItem={}&lt;br /&gt;
	dotItem.group=nval&lt;br /&gt;
	dotItem.code=nval&lt;br /&gt;
	dotItem.posType=shapePos[2] or &#039;nil&#039;&lt;br /&gt;
	if (shapePos[2] or &#039;&#039;) ==&#039;photo-panel&#039; then &lt;br /&gt;
		dotItem.ppwidth= tonumber(string.match((shapePos[4] or &#039;110&#039;),&amp;quot;%d+&amp;quot;))&lt;br /&gt;
		dotItem.ppheight= tonumber(string.match((shapePos[5] or &#039;48&#039;),&amp;quot;%d+&amp;quot;) )&lt;br /&gt;
		dotItem.photowidth=round(tonumber(string.match((shapePos[3] or &#039;1.3&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)) * dotItem.ppheight+1,0)&lt;br /&gt;
		dotItem.photoImage=args[&#039;mark-image&#039;..argval]&lt;br /&gt;
		--debugmsg(&#039;photo-panel, &#039;..shapePos[2]..&#039;, 3=&#039;..shapePos[3]..&#039;, 4=&#039;..shapePos[4]..&#039;, 5=&#039;..(shapePos[5] or &#039;(48&#039;)..&#039;photowidth=&#039;..tostring(dotItem.photowidth))&lt;br /&gt;
	end&lt;br /&gt;
	if (shapePos[2] or &#039;&#039;) ==&#039;mark-line&#039; then &lt;br /&gt;
		local x=tonumber(argval or &#039;1&#039;)&lt;br /&gt;
		dotItem.markDest=shapePos[6] or tostring(x-1)&lt;br /&gt;
		dotItem.mlWidth= tonumber(string.match((shapePos[3] or &#039;1&#039;),&amp;quot;%d+&amp;quot;))&lt;br /&gt;
		dotItem.mlStyle= shapePos[4] or &#039;solid&#039;&lt;br /&gt;
		dotItem.mlGap=tonumber(string.match((shapePos[5] or &#039;0&#039;),&amp;quot;[%d]+&amp;quot;))&lt;br /&gt;
		shapeResult[nval].textEC=shapeResult[nval].outlineColor or &#039;darkgrey&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;mark-coord&#039;..argval] then &lt;br /&gt;
		itemTab=splitItem(convertCoordsTrad (args[&#039;mark-coord&#039;..argval]),2)&lt;br /&gt;
		if itemTab[1] == nil or itemTab[2] == nil then&lt;br /&gt;
			debugmsg(mw.addWarning(&#039;Unable to read coordinates for mark-coord&#039;..argval))&lt;br /&gt;
		else&lt;br /&gt;
			dotItem.lat=tonumber(string.match(itemTab[1],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
			dotItem.lon=tonumber(string.match(itemTab[2],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		dotItem.lat=tonumber(string.match(args[&#039;mark-lat&#039;..argval],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
		dotItem.lon=tonumber(string.match(args[&#039;mark-lon&#039;..argval],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0		&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;dateline&#039;..argval] and (args[&#039;dateline&#039;..argval]==&#039;1&#039; or args[&#039;dateline&#039;..argval]==&#039;-1&#039;) then&lt;br /&gt;
		dotItem.lon=dotItem.lon+(tonumber(args[&#039;dateline&#039;..argval] ) *360) &lt;br /&gt;
	end&lt;br /&gt;
	maplist.lon=dotItem.lon&lt;br /&gt;
	maplist.lat=dotItem.lat&lt;br /&gt;
	dotItem.gridx, dotItem.gridy = maptogrid(maplist,1)&lt;br /&gt;
	&lt;br /&gt;
	local item=args[&#039;mark-title&#039;..argval] or &#039;&#039; -- sort out the caption, wikilink and plaintext tooltip items from dotLink&lt;br /&gt;
	if item==&#039;none&#039; then dotItem.param1=&#039;nomap nolist&#039; item=&#039;&#039; end&lt;br /&gt;
	if string.find(item,&#039;nolist&#039;) then dotItem.param1=&#039;nolist,&#039; item = string.sub(args[&#039;mark-title&#039;..argval],8) or args[&#039;label&#039;..argval] end&lt;br /&gt;
	dotItem.dotLink=item&lt;br /&gt;
	if item ~= &#039;&#039; then&lt;br /&gt;
		item=stripdivs(item)&lt;br /&gt;
		dotItem.title=delink({item})&lt;br /&gt;
		local linkstart= string.find(item,&#039;[[&#039;,1,true) -- use true to ensure a plain search (no pattern)&lt;br /&gt;
		if linkstart then&lt;br /&gt;
			dotItem.dlink=delink({string.sub(item,linkstart,string.find(item,&#039;]]&#039;,1,true)+1),wikilinks=&#039;target&#039;})&lt;br /&gt;
			-- debugmsg(&#039;dlink for &#039;..item..&#039; is &#039;..dotItem.dlink)&lt;br /&gt;
		else dotItem.dlink=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
        dotItem.dlink=&#039;&#039;&lt;br /&gt;
        dotItem.title=&#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if autoDotTag==&#039;n&#039; then item=nval &lt;br /&gt;
	elseif autoDotTag==&#039;l&#039; then item=string.char(64+tonumber(nval)) &lt;br /&gt;
	else item=&#039;&#039; end&lt;br /&gt;
	dotItem.dotTag = args[&#039;numbered&#039;..argval] or item&lt;br /&gt;
	if shapePos[2]==&#039;n-line&#039; and (args[&#039;label&#039;..argval] or args[&#039;label&#039;..argval]==&#039;&#039;) then &lt;br /&gt;
		if dotItem.dlink ==&#039;&#039; then&lt;br /&gt;
			item=dotItem.dotTag..&#039; &#039;..args[&#039;label&#039;..argval]&lt;br /&gt;
		else &lt;br /&gt;
			item=&#039;[[&#039;..dotItem.dlink..&#039;|&#039;..dotItem.dotTag..&#039;]] &#039;..args[&#039;label&#039;..argval]&lt;br /&gt;
		end&lt;br /&gt;
	else item=(args[&#039;label&#039;..argval] or &#039;&#039;) end&lt;br /&gt;
	if args[&#039;labela&#039;..argval] then item = item..&#039;^&#039;..args[&#039;labela&#039;..argval] end&lt;br /&gt;
	if args[&#039;labelb&#039;..argval] then item = item..&#039;^&#039;..args[&#039;labelb&#039;..argval] end&lt;br /&gt;
	local a=&#039;&#039; for c in item:gmatch(&#039;.&#039;) do a=a..(c:gsub(&#039;%^&#039;,&#039;&amp;lt;br&amp;gt;&#039;) or c) end&lt;br /&gt;
	dotItem.labelText = a -- convert hats to line breaks&lt;br /&gt;
	if argval==&#039;&#039; then item = (args[&#039;label-offset-x&#039;]) or (args.ldx) or &#039;0&#039;&lt;br /&gt;
	else item=args[&#039;label-offset-x&#039;..argval] or args[&#039;ldx&#039;..argval] or args[&#039;label-offset-xD&#039;] or args.ldxD or args[&#039;label-offset-x1&#039;] or args.ldx1 or &#039;0&#039;&lt;br /&gt;
	end&lt;br /&gt;
	dotItem.dx=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	if argval==&#039;&#039; then item = (args[&#039;label-offset-y&#039;]) or (args.ldy) or &#039;0&#039;&lt;br /&gt;
	else item=args[&#039;label-offset-y&#039;..argval] or args[&#039;ldy&#039;..argval] or args[&#039;label-offset-yD&#039;] or args.ldyD or args[&#039;label-offset-y1&#039;] or args.ldy1 or &#039;0&#039;&lt;br /&gt;
	end&lt;br /&gt;
	dotItem.dy=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	dotItem.labelPos=shapePos[1]&lt;br /&gt;
	if args[&#039;mark-image&#039;..argval] then dotItem.imageName= args[&#039;mark-image&#039;..argval] end&lt;br /&gt;
	dotItem.info=args[&#039;mark-description&#039;..argval] or &#039;&#039;&lt;br /&gt;
	table.insert(dotResult,1,dotItem) -- add to start of list, so they are in reverese order for displaying&lt;br /&gt;
	-- debugmsg(dotItem.code..&#039; = &#039;..dotItem.lat..&#039;,&#039;..dotItem.lon..&#039;: &#039;..dotItem.labelText..&#039; - &#039;..dotItem.title..&#039;, &#039;..shapeResult[nval].shapeSize)&lt;br /&gt;
	return dotResult&lt;br /&gt;
end	&lt;br /&gt;
	&lt;br /&gt;
local function tradstyleParseShapes(args,dotTable,dotmax)&lt;br /&gt;
	local sgNumbers,sgSortable={},{}&lt;br /&gt;
	for argindex=1,dotmax do -- build a list of all the numbered coords or lat,lons that have been used&lt;br /&gt;
		local x=tostring(argindex)&lt;br /&gt;
		if args[&#039;geo-data&#039;..x] and (not args[&#039;mark-coord&#039;..x]) and (not args[&#039;mark-lat&#039;..x]) then&lt;br /&gt;
			   -- get lat and lon values from wikidata and put them into the args.lat and args.lon for use wherever needed&lt;br /&gt;
			if (mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],&#039;P625&#039;)[1]) then&lt;br /&gt;
				args[&#039;mark-lat&#039;..x] = (mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],&#039;P625&#039;)[1].mainsnak.datavalue.value.latitude) or &#039;0&#039;&lt;br /&gt;
    			args[&#039;mark-lon&#039;..x] = (mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],&#039;P625&#039;)[1].mainsnak.datavalue.value.longitude) or &#039;0&#039;&lt;br /&gt;
    			local p=args[&#039;geo-data-type&#039;] or &#039;P1082&#039;&lt;br /&gt;
    			if mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],p)[1] then&lt;br /&gt;
    				local n = tonumber(mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],p)[1].mainsnak.datavalue.value.amount) or 0&lt;br /&gt;
    				if p == &#039;P2046&#039; then -- area, so convert to sq km if needed (/100)&lt;br /&gt;
    					n = convertToSqKm( n, mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],p)[1].mainsnak.datavalue.value.unit)&lt;br /&gt;
	   				end&lt;br /&gt;
					geoTotalPop = geoTotalPop + n&lt;br /&gt;
				end&lt;br /&gt;
    		else debugmsg(mw.addWarning(&#039;could not find coords for &#039;..mw.wikibase.getLabel(args[&#039;geo-data&#039;..x])..&#039;, &#039;..args[&#039;geo-data&#039;..x]))&lt;br /&gt;
			end&lt;br /&gt;
    	end&lt;br /&gt;
		if args[&#039;mark-coord&#039;..x] or (args[&#039;mark-lat&#039;..x] and args[&#039;mark-lon&#039;..x]) then &lt;br /&gt;
    		sgNumbers[x]=x  -- add it to the list&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for indx,sgnum in pairs(sgNumbers) do table.insert(sgSortable,sgnum) end&lt;br /&gt;
	table.sort(sgSortable,lessthan) -- put the list in a sortable form (needs a second table, seemingly)&lt;br /&gt;
	if args[&#039;mark-coord&#039;] or (args[&#039;mark-lat&#039;] and args[&#039;mark-lon&#039;]) then table.insert(sgSortable,&#039;0&#039;) end -- add it to the end of the list&lt;br /&gt;
	local default={} default.D={} &lt;br /&gt;
	local dotResult={}&lt;br /&gt;
	for k,sgnum in pairs(sgSortable) do -- work through the sorted list, parsing each set of shapes in turn, from 1 upwards&lt;br /&gt;
		shapeList[sgnum]={}&lt;br /&gt;
		dotTable=assignTradstyleShape(shapeList,default,dotTable,args,sgnum)&lt;br /&gt;
	end	&lt;br /&gt;
	dotTable=assignTradstyleShape(shapeList,default,dotTable,args,&#039;H&#039;) -- construct an extra highlight shapeitem&lt;br /&gt;
	local unitConvert=1&lt;br /&gt;
	local areaUnits=&#039;&#039;&lt;br /&gt;
	if args[&#039;geo-region&#039;] and (args[&#039;find-geo-dots&#039;] or &#039;1&#039;) ~= &#039;0&#039; then&lt;br /&gt;
		local region = args[&#039;geo-region&#039;] -- or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
		local pvalue = args[&#039;geo-data-type&#039;] or &#039;P1082&#039;&lt;br /&gt;
		local plabel = mw.wikibase.getLabel(pvalue)&lt;br /&gt;
		local subhead=&#039;&#039; -- Assemble the subhead content, a line of text about the region as a whole&lt;br /&gt;
		if region and mw.wikibase.getBestStatements(region,pvalue)[1] then&lt;br /&gt;
			local punit=mw.wikibase.getBestStatements(region,pvalue)[1].mainsnak.datavalue.value.unit:match(&amp;quot;Q.*&amp;quot;) -- extract Q value&lt;br /&gt;
			if pvalue == &#039;P10622&#039; then -- add other currency-based pvalues here&lt;br /&gt;
				areaUnits=mw.wikibase.getLabel(punit)&lt;br /&gt;
			end&lt;br /&gt;
			if punit == &#039;Q35852&#039; then unitConvert=100 areaUnits = &#039; &#039;..sqkm -- if its hectares, convert to sq km&lt;br /&gt;
			elseif punit == &#039;Q232291&#039; then unitConvert = (1/2.59) areaUnits = &#039; &#039;..sqkm -- or this if it&#039;s square miles&lt;br /&gt;
			elseif punit == &#039;Q81292&#039; then unitConvert = 247.1 areaUnits = &#039; &#039;..sqkm -- or this if it&#039;s acres&lt;br /&gt;
			elseif punit == &#039;Q712226&#039; then unitConvert = 1 areaUnits = &#039; &#039;..sqkm -- or this if it&#039;s already sq km&lt;br /&gt;
				&lt;br /&gt;
			elseif punit == &#039;Q4917&#039; then areaUnits=&#039; US$&#039;  -- replace long version with some shortform currencies ()&lt;br /&gt;
			elseif punit == &#039;Q4916&#039; then areaUnits=&#039; euro&#039;&lt;br /&gt;
			elseif punit == &#039;Q25224&#039; then areaUnits=&#039; £GBP&#039;&lt;br /&gt;
			end&lt;br /&gt;
			-- if pvalue == &#039;P2046&#039; then&lt;br /&gt;
				 -- may need to add other instances of sq km so add in other P-items here if they need units showing&lt;br /&gt;
			-- end&lt;br /&gt;
			geoTotalPop=(mw.wikibase.getBestStatements(region,pvalue)[1].mainsnak.datavalue.value.amount) / unitConvert&lt;br /&gt;
			local yearVal&lt;br /&gt;
			if mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers then&lt;br /&gt;
				yearVal = mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P585[1].datavalue.value.time&lt;br /&gt;
				if yearVal and yearVal:sub(1,1) == &#039;+&#039; then yearVal = yearVal:sub(2,5)&lt;br /&gt;
					if mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P459 and mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P459[1] then&lt;br /&gt;
						local methodVal = mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P459[1].datavalue.value.id&lt;br /&gt;
						if methodVal then yearVal=yearVal..&#039; &#039;..mw.wikibase.getLabel(methodVal) end&lt;br /&gt;
					end&lt;br /&gt;
					yearVal = &#039; (&#039;..yearVal..&#039;)&#039;&lt;br /&gt;
				else yearVal =&#039;&#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			subhead=totalItems..&#039; &#039;..mw.wikibase.getLabel(region)..&#039; &#039;..plabel..&#039; ([[wikidata:&#039;..region..&#039;]]) = &#039;..formatInt(round(geoTotalPop),1)..areaUnits..yearVal&lt;br /&gt;
		else &lt;br /&gt;
			if pvalue == &#039;P2046&#039; then areaUnits = sqkm end&lt;br /&gt;
			subhead=totalItems..&#039; &#039;..mw.wikibase.getLabel(region)..&#039; &#039;..plabel..&#039; (&#039;..sumOfDatapoints..&#039;) = &#039;..formatInt(round(geoTotalPop),1)..areaUnits&lt;br /&gt;
		end&lt;br /&gt;
		if maplist.width &amp;lt; 350 and #plabel &amp;gt; 4 then plabel=string.sub((plabel or &#039;   &#039;),1,3)..&#039;.&#039; end&lt;br /&gt;
		if maplist.width &amp;lt; 330 then numberCol = &#039; &#039; end&lt;br /&gt;
		if maplist.width &amp;lt; 280 then year = &#039;no-year&#039; end&lt;br /&gt;
		captionTable = subhead&lt;br /&gt;
		if (args[&#039;show-q-values&#039;] or &#039;&#039;)  ~= &#039;1&#039; then &lt;br /&gt;
			captionTable = captionTable..&#039;&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;&amp;lt;small&amp;gt; (WD&amp;amp;nbsp;=&amp;amp;nbsp;&#039;..wikidataLink..&#039;)&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&#039; &lt;br /&gt;
			wikidataLink=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		captionTable = captionTable..&#039;&amp;lt;table class=&amp;quot;wikitable plainrowheaders sortable mw-collapsible mw-collapsed&amp;quot;  style=&amp;quot;width: 100%;&amp;quot;&amp;gt;&amp;lt;caption&amp;gt;&#039;..(args.toggletext or toggletext)..&#039; &amp;lt;/caption&amp;gt;&#039;&lt;br /&gt;
		captionTable = htmlTableLine(captionTable,numberCol,mw.wikibase.getLabel(region),plabel..&#039; &#039;..areaUnits, year, wikidataLink,&#039;header&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return dotTable&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
local function checkfortooltip (title,dx,dy,dotlabel,dlink,nolabel)  -- returns tlink if available, and dlink, if needed and tshape=true if shape needed&lt;br /&gt;
  local tshape,tlink = false,&amp;quot;&amp;quot;&lt;br /&gt;
  if dlink~=&#039;&#039; and not nolabel then tlink=dlink end&lt;br /&gt;
  if (tlink==&amp;quot;&amp;quot; or nolabel) and title~=&amp;quot;&amp;quot; then tshape=true end -- tshape flags True if title is wanted for shape&lt;br /&gt;
  if (not (dx==0 or dy==0) or dotlabel==&#039;&#039;) and title~=&#039;&#039; then tshape=true end -- add tooltip to shape if its number has moved&lt;br /&gt;
  return tshape,tlink&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
local function tshift(angle) -- adjustment to place text near the centre of a triangle, shifted to allow rotation of triangle shape&lt;br /&gt;
  local x=tonumber(string.match(angle,&amp;quot;%-?%d+&amp;quot;))&lt;br /&gt;
  if x&amp;lt;0 then x=360+x end -- set to a single degree direction, 0 to 360&lt;br /&gt;
  if x&amp;gt;359 then return 0,0 end&lt;br /&gt;
  -- shift the centre of the triangle based on rotation value&lt;br /&gt;
  if x &amp;lt;=40 or x&amp;gt;=320 then return -0.17,0 -- triangle up= -shiftv&lt;br /&gt;
  elseif x&amp;gt;=140 and x&amp;lt;=220 then return 0.17,0 --triangle down= +shiftv&lt;br /&gt;
  elseif x &amp;gt;220 then return 0,-0.17 --triangle left= -shifth&lt;br /&gt;
  elseif x &amp;gt;40 then return 0,0.22 --triangle right= +shifth&lt;br /&gt;
  end&lt;br /&gt;
  return 0,0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTriangle(result,row,shape,outline,tlink)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
  if outline then&lt;br /&gt;
    local p=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
    w=w+p*2&lt;br /&gt;
    h=h+p*2&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&#039;&amp;lt;div &#039;)&lt;br /&gt;
  if tlink then &lt;br /&gt;
    table.insert(result,&#039; title=&amp;quot;&#039;..row.title..&#039;&amp;quot; &#039;)&lt;br /&gt;
  end        &lt;br /&gt;
  table.insert(result,&#039;style=&amp;quot;display:inline-block; position: absolute&#039;)&lt;br /&gt;
  if shape.shapeAngle ~= &#039;0deg&#039; then&lt;br /&gt;
    table.insert(result,&#039;; transform: rotate(&#039;..shape.shapeAngle..&#039;)&#039;)&lt;br /&gt;
  end&lt;br /&gt;
  local shiftv,shifth=0,0&lt;br /&gt;
  shiftv,shifth=tshift(shape.shapeAngle)&lt;br /&gt;
  table.insert(result,&#039;; top: &#039;..tostring(row.gridy-h/2+h*shiftv)..&#039;px&#039;)&lt;br /&gt;
  table.insert(result,&#039;; left: &#039;..tostring(row.gridx-w/2+w*shifth)..&#039;px; width: 0; height: 0; outline-width: 0px&#039;)&lt;br /&gt;
  table.insert(result,&#039;; border-left: &#039;..tostring(w/2)..&#039;px solid transparent&#039;)&lt;br /&gt;
  table.insert(result,&#039;; border-right: &#039;..tostring(w/2)..&#039;px solid transparent&#039;)&lt;br /&gt;
  if outline then -- fill with outline colour, to make a &#039;base layer&#039; or shape colour&lt;br /&gt;
    table.insert(result,&#039;; border-bottom: &#039;..tostring(h)..&#039;px solid &#039;..getColor(shape.outlineColor).. &#039;&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
  else  &lt;br /&gt;
    table.insert(result,&#039;; border-bottom: &#039;..tostring(h)..&#039;px solid &#039;..getColor(shape.shapeColor).. &#039;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeSquare(result,row,shape,tshape)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
  if shape.shape==&#039;square&#039; then h=w end -- squares are always square!. box can stretch&lt;br /&gt;
  local div=mw.html.create (&#039;div&#039;)&lt;br /&gt;
  if tshape then -- Add tooltip if needed&lt;br /&gt;
    div:attr(&#039;title&#039;,row.title)&lt;br /&gt;
  end        &lt;br /&gt;
  div:css(&#039;position&#039;, &amp;quot;absolute&amp;quot;)&lt;br /&gt;
  if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
    div:css(&#039;outline&#039;, shape.outlineWidth..&amp;quot; &amp;quot;..shape.outlineStyle..&amp;quot; &amp;quot;..getColor(shape.outlineColor))&lt;br /&gt;
  end&lt;br /&gt;
  if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then&lt;br /&gt;
   div:css(&#039;transform&#039;,&amp;quot;rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  if r~=0 then div:css(&#039;border-radius&#039;,tostring(r)..&amp;quot;px&amp;quot;) end&lt;br /&gt;
  if shape.shape==&#039;panel&#039; then &lt;br /&gt;
 	div:css(&#039;top&#039;, tostring(row.gridy)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	div:css(&#039;left&#039;, tostring(row.gridx)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  else&lt;br /&gt;
	div:css(&#039;top&#039;, tostring(row.gridy-h/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	div:css(&#039;left&#039;, tostring(row.gridx-w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  div:css(&#039;width&#039;, tostring(w)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  div:css(&#039;height&#039;, tostring(h)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  div:css(&#039;background-color&#039;, getColor(shape.shapeColor) )&lt;br /&gt;
  div:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
  table.insert(result,tostring(div))&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
local function makeCircle(result,row,shape,tshape)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize) -- = width,height,rounding&lt;br /&gt;
  if shape.shape==&#039;circle&#039; then h=w end -- circles are always round. ellipse can stretch&lt;br /&gt;
  local div=mw.html.create (&#039;div&#039;)&lt;br /&gt;
  if tshape then -- Add tooltip if needed&lt;br /&gt;
    div:attr(&#039;title&#039;,row.title)&lt;br /&gt;
  end        &lt;br /&gt;
  div:css(&#039;position&#039;, &amp;quot;absolute&amp;quot;)&lt;br /&gt;
  if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
    div:css(&#039;outline&#039;, shape.outlineWidth..&amp;quot; &amp;quot;..shape.outlineStyle..&amp;quot; &amp;quot;..getColor(shape.outlineColor))&lt;br /&gt;
  end&lt;br /&gt;
  if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then&lt;br /&gt;
    div:css(&#039;transform&#039;,&amp;quot;rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  div&lt;br /&gt;
	:css(&#039;top&#039;, tostring(row.gridy-h/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;left&#039;, tostring(row.gridx-w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;width&#039;, tostring(w)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;height&#039;, tostring(h)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;border-radius&#039;, &amp;quot;50%&amp;quot;)&lt;br /&gt;
	:css(&#039;background-color&#039;, getColor(shape.shapeColor) )&lt;br /&gt;
	:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
  table.insert(result,tostring(div))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeRuleA(result,row,shape)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize) -- = width,height,rounding&lt;br /&gt;
  local oWid=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
  local lineV=0&lt;br /&gt;
  if shape.shape==&#039;rulea&#039; then lineV=oWid*3+16 end&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute&amp;quot;) -- create a square transparent container, which will rotate line and arrow together&lt;br /&gt;
  table.insert(result,&amp;quot;; top:&amp;quot;..tostring(row.gridy - w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; left:&amp;quot;..tostring(row.gridx - w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; width:&amp;quot;..tostring(w)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; height:&amp;quot;..tostring(w)..&amp;quot;px; background:transparent; color:inherit;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; transform: rotate( &amp;quot;..tostring(tonumber(string.match(shape.shapeAngle,&amp;quot;[%.%-?%d]+&amp;quot;)) - 90)..&amp;quot;deg);\&amp;quot;&amp;gt;&amp;quot; )&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute&amp;quot;) -- put the line (as a border-right) across the container&lt;br /&gt;
  table.insert(result,&amp;quot;; top:&amp;quot;..tostring(lineV)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; left:&amp;quot;..tostring((w - oWid )/2)..&amp;quot;px; width: 0px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; height: &amp;quot;..tostring(w -lineV)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; border-right: &amp;quot;..shape.outlineWidth..&amp;quot; &amp;quot;..shape.outlineStyle..&amp;quot; &amp;quot;..getColor(shape.outlineColor))&lt;br /&gt;
  table.insert(result,&amp;quot;; background:transparent; color:inherit;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
  if shape.shape==&#039;rulea&#039; then&lt;br /&gt;
	table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute; top: 0px&amp;quot;) --and add arrow head&lt;br /&gt;
	table.insert(result,&amp;quot;; left:&amp;quot;..tostring(w/2-( oWid/2)-oWid*0.55-2)..&amp;quot;px; width: 0; height: 0; outline-width: 0px&amp;quot;)&lt;br /&gt;
	table.insert(result,&amp;quot;; border-left: &amp;quot;..tostring(oWid*1.1+2)..&amp;quot;px solid transparent&amp;quot;)&lt;br /&gt;
	table.insert(result,&amp;quot;; border-right: &amp;quot;..tostring(oWid*1.1+2)..&amp;quot;px solid transparent&amp;quot;)&lt;br /&gt;
	table.insert(result,&amp;quot;; border-bottom: &amp;quot;..tostring(oWid*3+16)..&amp;quot;px solid &amp;quot;..getColor(shape.outlineColor)..&amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeCurveA(result,row,shape) -- draw a curve with Arrow -----&lt;br /&gt;
	local w,h=getsize(shape.shapeSize) -- = width,height&lt;br /&gt;
	local oWid=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
	local Angle=tonumber(string.match(shape.shapeAngle,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;&#039;)    --set up out div, which will allow the whole to rotate&lt;br /&gt;
	table.insert(result,&#039;top:&#039;..tostring(row.gridy - (w + oWid*3+16)/2)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;left:&#039;..tostring(row.gridx - ( w + oWid*3+16)/2)..&#039;px; &#039;)&lt;br /&gt;
	table.insert(result,&#039;width: &#039;..tostring(w+oWid*3+16)..&#039;px; &#039;)&lt;br /&gt;
	table.insert(result,&#039;height: &#039;..tostring(w+oWid*3+16)..&#039;px; &#039;) &lt;br /&gt;
	if shape.shape==&#039;curvea&#039; then&lt;br /&gt;
		table.insert(result,&#039;transform: rotate( &#039;..tostring(Angle-120)..&#039;deg);&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	else table.insert(result,&#039;transform: rotate( &#039;..tostring(Angle -62)..&#039;deg);&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	end	&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;&#039;)   --set up div for the rounded corner of a rectangle&lt;br /&gt;
	table.insert(result,&#039;border-left: &#039;..shape.outlineWidth..&#039; &#039;..shape.outlineStyle..&#039; &#039;..getColor(shape.outlineColor)..&#039;;&#039;)&lt;br /&gt;
	if shape.shape==&#039;curvea&#039; then&lt;br /&gt;
  		table.insert(result,&#039;border-radius: 10000px 0 0 &#039;..tostring(w)..&#039;px;  top:0px; left:&#039;..tostring(w*0.25)..&#039;px;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(result,&#039;border-radius: &#039;..tostring(w)..&#039;px 0 0 10000px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;top:&#039;..tostring((oWid*3+16)/2+w*0.15)..&#039;px; left:&#039;..tostring(w*0.25)..&#039;px;&#039;)&lt;br /&gt;
	end -- and add a triangular arrow head&lt;br /&gt;
	table.insert(result,&#039;width: &#039;..tostring(w)..&#039;px; height: &#039;..tostring(w)..&#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;position: absolute; &#039;)&lt;br /&gt;
	if shape.shape==&#039;curvea&#039; then&lt;br /&gt;
		table.insert(result,&#039;transform: rotate(180deg);  top:&#039;..tostring(w-1)..&#039;px; &#039;)&lt;br /&gt;
	else table.insert(result,&#039;transform: rotate(0deg); top: &#039;..tostring(0-( ( oWid*3+16)/2)+1+( w*0.15) )..&#039;px;&#039;)&lt;br /&gt;
	end -- reverse &lt;br /&gt;
	table.insert(result,&#039;left:&#039;..tostring(0-( oWid*0.6)-2+(w*0.25))..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;width: 0; height: 0; outline-width: 0px; border-left: &#039;..tostring(oWid*1.1+2)..&#039;px solid transparent;&#039;)&lt;br /&gt;
	table.insert(result,&#039;border-right: &#039;..tostring(oWid*1.1+2)..&#039;px solid transparent;&#039;)&lt;br /&gt;
	table.insert(result,&#039;border-bottom: &#039;..tostring(oWid*3+16)..&#039;px solid &#039;..getColor(shape.outlineColor)..&#039;;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLineTo (result,x1,y1,x2,y2,oWid, oStyle, oCol,double,shape)&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute;&amp;quot;)  &lt;br /&gt;
	-- draw a line between x1,y1 and x2,y2, px-coords where 0,0 is centre of frame&lt;br /&gt;
	-- Maths calculations thanks to ES&lt;br /&gt;
  local tw&lt;br /&gt;
  if double &amp;lt;= 1 then&lt;br /&gt;
	tw = tonumber(string.match(oWid,&amp;quot;[%.%d]+&amp;quot;))/2 -- shift centre by half the line width&lt;br /&gt;
  else	&lt;br /&gt;
	tw = tonumber(string.match(oWid,&amp;quot;[%.%d]+&amp;quot;)) + (double/2) - 0.5 -- shift centre by a line width + half the gap&lt;br /&gt;
  end&lt;br /&gt;
  -- debugmsg(oWid..&#039;+&#039;..double..&#039;/2=&#039;..tw)&lt;br /&gt;
  table.insert(result,&amp;quot;left: &amp;quot;..tostring(x1+( (x2-x1)/2) - (math.sqrt( ( x2-x1)^2 + (y2-y1)^2 )/2) )..&amp;quot;px;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;top: &amp;quot;..tostring(y1+( ( y2-y1 )/2) - tw)..&amp;quot;px;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;width: &amp;quot;..tostring(math.sqrt( (x2-x1 )^2 + ( y2-y1 )^2) )..&amp;quot;px;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;height: &amp;quot;..tostring(double)..&amp;quot;px;  background-color:transparent; color:inherit; &amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;outline-width: 0; border-bottom: &amp;quot;..oWid..&amp;quot; &amp;quot;..oStyle..&amp;quot; &amp;quot;..getColor(oCol)..&amp;quot;;&amp;quot; )&lt;br /&gt;
  if double&amp;gt;1 then table.insert(result,&amp;quot;border-top: &amp;quot;..oWid..&amp;quot; &amp;quot;..oStyle..&amp;quot; &amp;quot;..getColor(oCol)..&amp;quot;;&amp;quot; ) end&lt;br /&gt;
  local lineAngle=math.atan(( y2-y1)/( x2-x1 ) )*180/math.pi&lt;br /&gt;
  -- if x1 == x2 then lineAngle=90 end&lt;br /&gt;
  table.insert(result,&amp;quot;transform: rotate(&amp;quot;..lineAngle..&amp;quot;deg);\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
     -- debugmsg(&#039;text angle started as &#039;..shape.textNG..&#039; and lineAngle = &#039;..lineAngle)&lt;br /&gt;
  if (lineAngle &amp;lt; -90) or (lineAngle &amp;gt;90) then lineAngle=lineAngle-180 end&lt;br /&gt;
  if shape and not shape.textNGarg then shape.textNG=tostring(round(lineAngle,0))..&#039;deg&#039; end  -- Put in line angle for a default text angle as well&lt;br /&gt;
  -- if (y2 &amp;gt;= y1) and (x2 &amp;lt;= x1) then lineAngle=lineAngle-180 debugmsg(&#039;arrow angle corrected&#039;) end&lt;br /&gt;
  if x2 &amp;lt; x1 then lineAngle=lineAngle-180 end&lt;br /&gt;
  if shape and not shape.shapeAngleArg and shape.shape == &#039;arrowhead&#039; then shape.shapeAngle=tostring(round(lineAngle,0))..&#039;deg&#039; end  -- line angle for arrowhead&lt;br /&gt;
  -- debugmsg(&#039;text angle is now &#039;..shape.textNG..&#039;with arrow at &#039;..lineAngle)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeClipPath(result,row,shape,outline,tshape) --tshape is a flag to show if the tooltip (title=) is wanted&lt;br /&gt;
  -- return the text css div code to position and draw a shape occupying a specified clippath&lt;br /&gt;
  if string.find(shape.shape, &#039;svgpath,&#039;) and #shape.shape &amp;gt; 9 then&lt;br /&gt;
  	pathshape.svgpath=string.sub(shape.shape,9)&lt;br /&gt;
	shape.shape=&#039;svgpath&#039;&lt;br /&gt;
  end&lt;br /&gt;
  if not pathshape[shape.shape] then&lt;br /&gt;
	debugmsg(mw.addWarning(&#039;shape&#039;..row.code..&#039; = &#039;..shape.shape..&#039;. The shape name is not defined&#039;))&lt;br /&gt;
    return&lt;br /&gt;
  end&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
  	if shape.shape == &#039;arrowhead&#039; then -- enlarge arrowheads, as they only go to the middle of the notional shape-size&lt;br /&gt;
		w=w*2.5 &lt;br /&gt;
		h=h*2.5 &lt;br /&gt;
	end&lt;br /&gt;
  if string.match(shape.shape,&amp;quot;circle&amp;quot;) or string.match(shape.shape,&amp;quot;square&amp;quot;) then h=w end -- use ellipse and box for stretched shapes&lt;br /&gt;
  local shifth,shiftv = 0,0&lt;br /&gt;
  if string.match(shape.shape,&amp;quot;triangle&amp;quot;) then&lt;br /&gt;
    shiftv,shifth =tshift(shape.shapeAngle)&lt;br /&gt;
  end&lt;br /&gt;
  if outline then&lt;br /&gt;
    local p=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;)) or 0&lt;br /&gt;
    w=w+p*2&lt;br /&gt;
    h=h+p*2&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div &amp;quot;)&lt;br /&gt;
  if tshape then -- Add tooltip if needed&lt;br /&gt;
    table.insert(result,&amp;quot; title=\&amp;quot;&amp;quot;..row.title..&amp;quot;\&amp;quot; &amp;quot;)&lt;br /&gt;
  end        &lt;br /&gt;
  table.insert(result,&amp;quot;style=\&amp;quot;display:inline-block; position: absolute; background-color:&amp;quot;)&lt;br /&gt;
  if outline then&lt;br /&gt;
    table.insert(result,getColor(shape.outlineColor)) -- fill with outline colour, to make a &#039;base layer&#039;&lt;br /&gt;
  else&lt;br /&gt;
     table.insert(result,getColor(shape.shapeColor))&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot;; color:inherit; clip-path:path(nonzero, &amp;amp;#39;&amp;quot;..pathshape[shape.shape]..&amp;quot;&amp;amp;#39;) &amp;quot;)&lt;br /&gt;
  -- adds the required clippath data from the table of pathshape string literals&lt;br /&gt;
  table.insert(result,&amp;quot;; top:&amp;quot;..tostring(row.gridy - 10 + h*shiftv)..&amp;quot;px&amp;quot;) &lt;br /&gt;
  table.insert(result,&amp;quot;; left:&amp;quot;..tostring(row.gridx - 10 + w*shifth)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; width:20px&amp;quot;) -- needs to be a path within a 20px20px box, and then rescales using size values to match other shape sizes&lt;br /&gt;
  table.insert(result,&amp;quot;; height:20px; transform:&amp;quot;)&lt;br /&gt;
  if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then &lt;br /&gt;
    table.insert(result,&amp;quot; rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot; scale(&amp;quot;..tostring(w/16)..&amp;quot;, &amp;quot;..tostring(h/16)..&amp;quot;)&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeImage(result,row,shape)&lt;br /&gt;
	local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
	local image=shape.shapeFile&lt;br /&gt;
	if not image or image==&#039;&#039; then image=&#039;Red pog.svg&#039; end&lt;br /&gt;
    local imagediv=mw.html.create (&#039;div&#039;)&lt;br /&gt;
	imagediv:css(&#039;position&#039;, &amp;quot;absolute&amp;quot;)&lt;br /&gt;
	if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then&lt;br /&gt;
		imagediv:css(&#039;transform&#039;,&amp;quot;rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	imagediv&lt;br /&gt;
	:css(&#039;top&#039;, (row.gridy+2 + math.min(h/2-12,0) - h/2)..&amp;quot;px&amp;quot;) --File seems to adjust pos for small images&lt;br /&gt;
	:css(&#039;left&#039;, (row.gridx-1-w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;background-color&#039;, &amp;quot;transparent&amp;quot; )&lt;br /&gt;
	:css(&#039;color&#039;,&#039;inherit&#039;)&lt;br /&gt;
	:wikitext(&#039;[[file:&#039;..image..&#039;|&#039;..tostring(w+2)..&#039;px|alt=&#039;..(row.title or &#039;&#039;)..&#039;|link=]]&#039;)&lt;br /&gt;
  table.insert(result,tostring(imagediv))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makePhotoPanel(result,row,shape)&lt;br /&gt;
	local h=row.ppheight&lt;br /&gt;
	table.insert(result, &#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(row.gridy+row.dy-h/2)..&#039;px;&#039; )&lt;br /&gt;
	table.insert(result, &#039;left: &#039;..tostring(row.gridx+row.dx - row.ppwidth/2)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result, &#039;width: &#039;..tostring(row.ppwidth)..&#039;px; height: &#039;..tostring(h)..&#039;px; border-radius: 2px; color:inherit;&#039;)&lt;br /&gt;
	table.insert(result, &#039;background-color: #E8E8D6; outline: 2px solid &#039;..getColor(shape.textCL)..&#039;; box-shadow: 2px 2px 4px #33203335;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	if row.photoImage  and row.photowidth &amp;gt;0 then&lt;br /&gt;
		table.insert(result, &#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(row.gridy+row.dy-h/2)..&#039;px;&#039;)&lt;br /&gt;
		if row.labelPos==&#039;left&#039; or string.find(row.labelPos,&#039;west&#039;) then&lt;br /&gt;
			table.insert(result, &#039;left: &#039;..tostring(row.gridx+row.dx  - row.ppwidth/2)..&#039;px;&#039;)&lt;br /&gt;
			row.dx=row.dx+row.photowidth/2&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(result, &#039;left: &#039;..tostring(row.gridx+row.dx + (row.ppwidth-row.photowidth) - row.ppwidth/2)..&#039;px;&#039;)&lt;br /&gt;
			row.dx=row.dx-row.photowidth/2&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result, &#039;background-color:transparent; color:inherit; border-radius: 2px;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		table.insert(result,&#039;[[File:&#039;..row.photoImage..&#039;|x&#039;..tostring(h)..&#039;px|File:&#039;..row.photoImage..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
		row.labelPos=&#039;center&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makePanelText(result, row, shape)&lt;br /&gt;
	local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
	local ty=tonumber(string.match(shape.textSZ or &#039;11&#039;,&amp;quot;%d+&amp;quot;) )&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position:absolute; line-height: 120%; font-size: &#039;..shape.textSZ..&#039;; color:&#039;..getColor(shape.textCL)..&#039;;&#039;)&lt;br /&gt;
	if row.labelPos == &#039;left&#039; or string.find(row.labelPos,&#039;west&#039;) then&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.dy+row.gridy+(ty/3))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+3)..&#039;px; text-align: left; width:&#039;..tostring(w)..&#039;px;&#039;)&lt;br /&gt;
	elseif row.labelPos == &#039;right&#039; or string.find(row.labelPos,&#039;east&#039;) then&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+(ty/3))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+w-3)..&#039;px; text-align: right; width: max-content; transform: translateX(-100%);&#039;)&lt;br /&gt;
	elseif row.labelPos == &#039;top&#039; or row.labelPos== &#039;north&#039; then&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+(ty/3))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+(w/2))..&#039;px; text-align: center; width:max-content; transform: translateX(-50%);&#039;)&lt;br /&gt;
	elseif row.labelPos == &#039;bottom&#039; or row.labelPos==&#039;south&#039; then&lt;br /&gt;
		local bry=(select(2, string.gsub(row.labelText,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))+1)*1.1&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+w-(ty*bry))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+(w/2))..&#039;px; text-align: center; width:max-content; transform: translateX(-50%);&#039;)&lt;br /&gt;
	else -- center or centre&lt;br /&gt;
		local bry=(select(2, string.gsub(row.labelText,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))+1)*0.6&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+(h/2)-(ty*bry))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+(w/2))..&#039;px; text-align: center; width:max-content; transform: translateX(-50%);&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if shape.textSP and shape.textSP ~=&#039;0px&#039; then table.insert(result,&amp;quot;letter-spacing: &amp;quot;..shape.textSP..&#039;;&#039;) end&lt;br /&gt;
	if shape.textLH and shape.textLH ~=&#039;120%&#039; then table.insert(result,&amp;quot;line-height: &amp;quot;..shape.textLH..&#039;;&#039;) end&lt;br /&gt;
	table.insert(result,&amp;quot;vertical-align: middle;\&amp;quot;&amp;gt;&amp;quot;..row.labelText..&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTextItem(result, row, shape, align, tlink, textItem, dotItem)&lt;br /&gt;
	local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
	table.insert(result,&amp;quot;&amp;lt;div &amp;quot;)&lt;br /&gt;
	if row.title ~= &amp;quot;&amp;quot; then table.insert(result,&amp;quot; title=\&amp;quot;&amp;quot;..row.title..&amp;quot;\&amp;quot; &amp;quot;) end&lt;br /&gt;
	local ty,bry,linkoffset = 0,0,0&lt;br /&gt;
	local compy=0&lt;br /&gt;
	local lh=tonumber(string.match(shape.textLH or &#039;120&#039;,&amp;quot;%d+&amp;quot;))/100&lt;br /&gt;
	if dotItem==1 or (dotItem==2 and row.posType~=&#039;n-line&#039;) then	-- if there is a dotTag in the middle of the shape then use the tag settings&lt;br /&gt;
		ty=tonumber(string.match(shape.tagSize,&amp;quot;%d+&amp;quot;)) or 0&lt;br /&gt;
		table.insert(result,&amp;quot;style=\&amp;quot;position:absolute; line-height: 120%; top: &amp;quot;..tostring(row.gridy-ty*0.62))&lt;br /&gt;
		table.insert(result,&amp;quot;px; left: &amp;quot;..tostring(row.gridx)..&amp;quot;px; width: fit-content; &amp;quot;)&lt;br /&gt;
        table.insert(result,&amp;quot;text-align: center; color: &amp;quot;..getColor(shape.tagColor)..&amp;quot;; background-color: transparent;&amp;quot;)&lt;br /&gt;
        local trf=&amp;quot;&amp;quot;&lt;br /&gt;
		if shape.tagAngle ~=&amp;quot;0deg&amp;quot; then trf=&amp;quot; rotate(&amp;quot;..shape.tagAngle..&amp;quot;)&amp;quot; end&lt;br /&gt;
        table.insert(result, &amp;quot;transform: translateX(-50%)&amp;quot;..trf..&amp;quot;; font-size: &amp;quot;..shape.tagSize..&amp;quot;;&amp;quot;)&lt;br /&gt;
        if shape.tagSpacer~=&#039;0px&#039; then table.insert(result, &amp;quot;letter-spacing:&amp;quot;..shape.tagSpacer..&amp;quot;;&amp;quot;) end&lt;br /&gt;
    else -- or add tfx settings for left, right or center align, colors, backgrounds, border-outline&lt;br /&gt;
    	table.insert(result,&#039;style=&amp;quot;position:absolute; &#039;)&lt;br /&gt;
    	if dotItem==2 then -- dotTag is out at x,y so 85%&lt;br /&gt;
    		ty=tonumber(string.match(shape.tagSize or &#039;0&#039;,&amp;quot;%d+&amp;quot;))&lt;br /&gt;
    		table.insert(result,&#039;font-size: &#039;..shape.tagSize..&#039;; padding:0px 2px;line-height: 85%; top: &#039;..tostring(row.dy+row.gridy-ty*0.52))&lt;br /&gt;
    	else -- it is labelText, so use textLH or 120%&lt;br /&gt;
    		ty=tonumber(string.match(shape.textSZ or &#039;11&#039;,&amp;quot;%d+&amp;quot;))&lt;br /&gt;
			if row.labelPos==&#039;northwest&#039; or row.labelPos==&#039;northeast&#039; then compy=-ty&lt;br /&gt;
			elseif row.labelPos==&#039;southeast&#039; or row.labelPos==&#039;southwest&#039; then compy=ty/2 end&lt;br /&gt;
    		if row.labelPos and not (row.labelPos== &#039;auto&#039; or row.labelPos==&#039;&#039;) then&lt;br /&gt;
    			bry=(select(2, string.gsub(row.labelText,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))*lh) -- is it a multiline text? expand by line-height /120%?&lt;br /&gt;
    			if row.posType == &#039;with-line&#039; then bry=0 end&lt;br /&gt;
    			if row.labelPos==&#039;bottom&#039; or row.labelPos == &#039;south&#039; then bry = 0 -- and shift by none, all or half&lt;br /&gt;
    			elseif row.labelPos==&#039;top&#039; or row.labelPos == &#039;north&#039; then &lt;br /&gt;
    				if shape.shape==&#039;image:&#039; then bry= 1 + math.min(w/2-10,0)-bry*ty&lt;br /&gt;
    				else bry= -bry*ty+2&lt;br /&gt;
    				end&lt;br /&gt;
    			else bry=-bry*(ty/2 * lh)&lt;br /&gt;
    			end&lt;br /&gt;
    		end&lt;br /&gt;
    		if row.posType == &#039;photo-panel&#039; then bry=bry+3 end&lt;br /&gt;
    		table.insert(result,&#039;font-size: &#039;..shape.textSZ..&#039;; padding:0px 3px;line-height: &#039;..shape.textLH..&#039;; &#039;)&lt;br /&gt;
    		table.insert(result,&#039;top: &#039;..tostring(row.dy+row.gridy+compy+bry-ty*lh/2))&lt;br /&gt;
    	end&lt;br /&gt;
		table.insert(result,&amp;quot;px; left: &amp;quot;..tostring(row.dx+row.gridx)..&amp;quot;px; color: &amp;quot;..getColor(shape.textCL)..&amp;quot;; &amp;quot;)&lt;br /&gt;
		table.insert(result,&amp;quot;width: max-content; &amp;quot;)&lt;br /&gt;
    	local trf=&amp;quot;&amp;quot;&lt;br /&gt;
		if shape.textNG ~=&amp;quot;0deg&amp;quot; then trf=&amp;quot;rotate(&amp;quot;..shape.textNG..&amp;quot;)&amp;quot; end&lt;br /&gt;
        if shape.textOL~=&amp;quot;0px&amp;quot; then&lt;br /&gt;
        	table.insert(result,&amp;quot;background-color: &amp;quot;..getColor(shape.textBG)..&amp;quot;; &amp;quot;) &lt;br /&gt;
            table.insert(result,&amp;quot;border: &amp;quot;..shape.textOL..&amp;quot; solid &amp;quot;..getColor(shape.textCL)..&amp;quot;; border-radius:6px;&amp;quot;)&lt;br /&gt;
        else table.insert(result,&amp;quot;background-color: transparent;&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
        if row.labelPos==&amp;quot;right&amp;quot; or string.find(row.labelPos,&#039;east&#039;) then&lt;br /&gt;
          table.insert(result,&amp;quot;text-align: left; &amp;quot;)&lt;br /&gt;
          linkoffset=w&lt;br /&gt;
          if shape.textNG ~=&amp;quot;0px&amp;quot; then table.insert(result,&amp;quot;transform-origin: left; transform: rotate(&amp;quot;..shape.textNG..&amp;quot;); &amp;quot;) end&lt;br /&gt;
        elseif row.labelPos==&amp;quot;left&amp;quot; or string.find(row.labelPos,&#039;west&#039;) then&lt;br /&gt;
          if shape.textNG ~=&amp;quot;0px&amp;quot; then table.insert(result,&amp;quot;transform-origin: right;&amp;quot;) end&lt;br /&gt;
          linkoffset=-w&lt;br /&gt;
          table.insert(result,&amp;quot;text-align: right; transform: translateX(-100%) &amp;quot;..trf..&amp;quot;; &amp;quot;)&lt;br /&gt;
        else&lt;br /&gt;
          table.insert(result,&amp;quot;text-align: center; transform: translateX(-50%) &amp;quot;..trf..&amp;quot;; &amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
		table.insert(result,&#039;font-weight: normal; line-height: &#039;..shape.textLH..&#039;; letter-spacing:&#039;..shape.textSP..&#039;; vertical-align: bottom;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if string.find(shape.textAT or &#039;&#039;,&#039;bold&#039;) then textItem=&#039;&amp;lt;b&amp;gt;&#039;..textItem..&#039;&amp;lt;/b&amp;gt;&#039; end&lt;br /&gt;
	if string.find(shape.textAT or &#039;&#039;,&#039;italic&#039;) then textItem=&#039;&amp;lt;i&amp;gt;&#039;..textItem..&#039;&amp;lt;/i&amp;gt;&#039; end&lt;br /&gt;
	if shape.textOL==&#039;0px&#039; and shape.textBG~=&#039;transparent&#039; and dotItem==0 then&lt;br /&gt;
		table.insert(result,&#039;\&amp;quot;&amp;gt;&amp;lt;span style=\&amp;quot;background-color: &#039;..getColor(shape.textBG)..&#039;; color:inherit;\&amp;quot;&amp;gt;&#039;..textItem..&#039;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(result,&amp;quot;\&amp;quot;&amp;gt;&amp;quot;..textItem..&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if tlink~=&#039;&#039; and not string.match(row.param1 or &amp;quot;&amp;quot;,&amp;quot;nolink&amp;quot;) then &lt;br /&gt;
	  table.insert(result,makeLinkBox(row.gridx+row.dx+linkoffset, row.gridy+row.dy+bry, 16, row.dotTag..&#039; &#039;..row.title,tlink))&lt;br /&gt;
	end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function getshapetable(row,shape) -- Construct CSS divs for a dot from shape and map data&lt;br /&gt;
    local result={}&lt;br /&gt;
    local w,h,rndg=getsize(shape.shapeSize)&lt;br /&gt;
    local tshape,tlink=checkfortooltip(row.title,row.dx,row.dy,row.dotTag,row.dlink,string.match(row.param1 or &amp;quot;&amp;quot;,&amp;quot;nolink&amp;quot;) )&lt;br /&gt;
    local align=row.labelPos or &#039;&#039;&lt;br /&gt;
    local offsetx,offsety=0,0&lt;br /&gt;
    local ty=tonumber(string.match((shape.tagSize or 9),&amp;quot;%d+&amp;quot; ))&lt;br /&gt;
    if row.labelText and row.labelText~=&#039;&#039; then ty=tonumber(string.match((shape.textSZ or 11),&amp;quot;%d+&amp;quot; )) &lt;br /&gt;
    else align=&#039;center&#039; end -- it is just for dotTag, so justify center&lt;br /&gt;
-- identify align value and extend offsets&lt;br /&gt;
	local widthzone,heightzone = (w/2)+1,(h/2)+1&lt;br /&gt;
	local theta,r = math.deg( math.atan2(row.dy, row.dx)) , math.sqrt(row.dx^2 + row.dy^2)&lt;br /&gt;
	if align==&#039;auto&#039; or align==&#039;&#039; then &lt;br /&gt;
		if (theta &amp;lt; -112 or theta &amp;gt; 112) and math.abs(row.dx)&amp;gt;=w/2 and math.abs(row.dy)&amp;lt;w/1.4 then align = &amp;quot;left&amp;quot; offsetx=1&lt;br /&gt;
		elseif (theta &amp;gt; -68 and theta &amp;lt; 68) and math.abs(row.dx)&amp;gt;=w/2 and math.abs(row.dy)&amp;lt;w/1.4 then align = &amp;quot;right&amp;quot; offsetx=-1&lt;br /&gt;
		elseif theta &amp;lt;0 then offsety=ty/2-1 -- bottom&lt;br /&gt;
		else offsety=0-ty/2+1 -- top&lt;br /&gt;
		end&lt;br /&gt;
	elseif align==&#039;left&#039; or string.find(align,&#039;west&#039;) then &lt;br /&gt;
	  row.dx=row.dx - w/2 widthzone=4  offsetx=-1&lt;br /&gt;
	elseif align==&#039;right&#039; or string.find(align,&#039;east&#039;) then &lt;br /&gt;
	  row.dx=row.dx + w/2 widthzone=4  offsetx=1&lt;br /&gt;
	elseif align==&#039;top&#039; or align==&#039;north&#039; then&lt;br /&gt;
		if string.find(shape.shape,&#039;curve&#039;) then&lt;br /&gt;
			row.dy=row.dy-(h/2)-12 heightzone=4 offsety=ty/2-1&lt;br /&gt;
		else&lt;br /&gt;
			row.dy=row.dy - h-2 heightzone=4 offsety=ty/2-1&lt;br /&gt;
		end&lt;br /&gt;
	elseif align==&#039;bottom&#039; or align==&#039;south&#039; then &lt;br /&gt;
		if string.find(shape.shape,&#039;curve&#039;) then&lt;br /&gt;
			row.dy=row.dy+(h/2) heightzone=4 offsety=ty/2-1&lt;br /&gt;
		else&lt;br /&gt;
			row.dy=row.dy + h+2 heightzone=4 offsety=0-ty/2-1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if shape.textEW ~= &amp;quot;0px&amp;quot; and not string.match(row.param1 or &amp;quot;&amp;quot;,&amp;quot;noline&amp;quot;) then &lt;br /&gt;
		-- debugmsg(&#039;r-(w/2) &amp;gt; widthzone   r-w/2=&#039;..tostring(r-(w/2))..&#039;, widthzone=&#039;..widthzone..&#039;, label=&#039;..(row.labelText or &#039;&#039;)..&#039;, postype=&#039;..(row.posType or &#039;&#039;))&lt;br /&gt;
		makeLineTo(result, row.gridx+1, row.gridy-1, row.gridx+row.dx+offsetx, row.gridy+row.dy+offsety, shape.textEW, shape.textES,shape.textEC,1)&lt;br /&gt;
	    -- debugmsg(&#039;n-line for &#039;..row.code..&#039;:&#039;..tostring(row.gridx+1)..&#039;, &#039;..tostring(row.gridy-1)..&#039;, &#039;..tostring(row.gridx+row.dx+offsetx)..&#039;, &#039;..tostring(row.gridy+row.dy+offsety)..&#039;, with width &#039;..tostring(shape.textEW)..&#039;px &#039;..(shape.textES or &#039;no style&#039;)..&#039; and color &#039;..shape.textEC)&lt;br /&gt;
	end&lt;br /&gt;
	if row.posType and row.posType==&#039;mark-line&#039; then&lt;br /&gt;
		if row.gridx2 and row.gridy2 then&lt;br /&gt;
			makeLineTo(result, row.gridx, row.gridy, row.gridx2, row.gridy2, tostring(row.mlWidth)..&#039;px&#039;, row.mlStyle, getColor(shape.textEC),row.mlGap,shape)&lt;br /&gt;
			-- debugmsg(&#039;mark-line line drawn from &#039;..row.code..&#039; with width &#039;..tostring(row.mlWidth)..&#039;px &#039;..(row.mlStyle or &#039;no style&#039;)..&#039; and color &#039;..getColor(shape.textEC))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
    if w ~= 0 then&lt;br /&gt;
      if shape.shape==&#039;itriangle&#039; then shape.shape=&#039;triangle&#039; shape.shapeSize=tostring(w)..&#039;px&#039;..tostring(w/2)..&#039;px&#039; end&lt;br /&gt;
      if shape.shape==&amp;quot;triangle&amp;quot; then&lt;br /&gt;
        if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
          makeTriangle(result,row,shape,true,false) -- larger triangle to give the outline, if required&lt;br /&gt;
        end&lt;br /&gt;
        makeTriangle(result,row,shape,false,tshape) -- smaller triangle to fit over the top&lt;br /&gt;
      elseif shape.shape==&amp;quot;square&amp;quot; or shape.shape==&amp;quot;box&amp;quot; or shape.shape==&#039;panel&#039; then&lt;br /&gt;
        makeSquare(result,row,shape,tshape)&lt;br /&gt;
      elseif shape.shape==&amp;quot;circle&amp;quot; or shape.shape==&amp;quot;ellipse&amp;quot; then&lt;br /&gt;
        makeCircle(result,row,shape,tshape)&lt;br /&gt;
      elseif string.find(shape.shape,&#039;image:&#039;)==1 then&lt;br /&gt;
   		makeImage(result,row,shape)&lt;br /&gt;
      elseif shape.shape==&amp;quot;rulea&amp;quot; or shape.shape==&#039;rule&#039; then&lt;br /&gt;
        makeRuleA(result,row,shape)&lt;br /&gt;
      elseif shape.shape==&amp;quot;curvea&amp;quot; or shape.shape==&amp;quot;curvec&amp;quot; then&lt;br /&gt;
        makeCurveA(result,row,shape)&lt;br /&gt;
      else -- use a pathshape clipPath&lt;br /&gt;
        if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
          makeClipPath(result,row,shape,true,false) -- larger path-shape to give the outline, if required&lt;br /&gt;
        end&lt;br /&gt;
        makeClipPath(result,row,shape,false,tshape)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
	if row.ppwidth and row.ppwidth&amp;gt;0 then makePhotoPanel(result,row,shape) end&lt;br /&gt;
    if shape.shape==&#039;panel&#039; and row.labelText then makePanelText(result, row, shape)&lt;br /&gt;
    else&lt;br /&gt;
	    if row.dotTag and row.dotTag ~= &amp;quot;&amp;quot; then -- there is a dotTag&lt;br /&gt;
	    	if (row.dx==0 and row.dy==0) and w&amp;gt;0 then  -- it is on the dot so if dotsize is not 0 any label is ignored&lt;br /&gt;
	    		makeTextItem(result, row, shape, align, tlink, &#039;&amp;lt;b&amp;gt;&#039;..row.dotTag..&#039;&amp;lt;/b&amp;gt;&#039;, 1)&lt;br /&gt;
	    	else &lt;br /&gt;
	    		if row.labelText and row.labelText~=&#039;&#039; then -- tag and label both used&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, &#039;&#039;, &#039;&amp;lt;b&amp;gt;&#039;..row.dotTag..&#039;&amp;lt;/b&amp;gt;&#039;, 1)&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, tlink, row.labelText, 0)&lt;br /&gt;
	    		else&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, &#039;&#039;, &#039;&amp;lt;b&amp;gt;&#039;..row.dotTag..&#039;&amp;lt;/b&amp;gt;&#039;, 1)&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, tlink, row.dotTag, 2) -- tag is ouside the dot&lt;br /&gt;
	    		end&lt;br /&gt;
	    	end&lt;br /&gt;
	    else&lt;br /&gt;
	    	if (row.labelText and row.labelText~=&#039;&#039;) then -- just the label. No tag&lt;br /&gt;
	    		makeTextItem(result, row, shape, align, tlink, row.labelText, 0)&lt;br /&gt;
	    	end&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
    if tlink and tlink~=&#039;&#039; then&lt;br /&gt;
		table.insert(result,makeLinkBox(row.gridx, row.gridy,w+3,row.dotTag..&#039; &#039;..row.title,tlink))&lt;br /&gt;
	end&lt;br /&gt;
    return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getmapframecontent(args,use)&lt;br /&gt;
	local result, comma= {}, &#039;&#039;&lt;br /&gt;
	local propertyTable= {}&lt;br /&gt;
	local color=splitItem(string.lower( args[&#039;map-data-color&#039;] or &#039;dark orange&#039;), 2)&lt;br /&gt;
	if use == &#039;basemap&#039; then &lt;br /&gt;
		table.insert(result, &#039;[&#039;) &lt;br /&gt;
		propertyTable.stroke = &amp;quot;#000000&amp;quot;&lt;br /&gt;
		propertyTable[&#039;stroke-width&#039;] = tonumber(args[&#039;map-data-width&#039;] or &#039;6&#039;)&lt;br /&gt;
		if color[2] then&lt;br /&gt;
			propertyTable[&#039;stroke-opacity&#039;] = tonumber(color[2] or &#039;20&#039;)/100&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		propertyTable.title = args[&#039;map-data-text&#039;] or args[&#039;map-data&#039;] or &#039;&#039;&lt;br /&gt;
		propertyTable.stroke = getColor(color[1])&lt;br /&gt;
		propertyTable[&#039;stroke-width&#039;] = tonumber(args[&#039;map-data-width&#039;] or &#039;6&#039;)&lt;br /&gt;
		propertyTable[&#039;stroke-opacity&#039;] = tonumber(color[2] or &#039;100&#039;)/100 &lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;map-data-inverse&#039;] then &lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geomask&#039;,&lt;br /&gt;
			ids = args[&#039;map-data-inverse&#039;],&lt;br /&gt;
			properties =  {title = (args[&#039;map-data-text&#039;] or &#039;&#039;), &lt;br /&gt;
				stroke = &#039;#555555&#039;,&lt;br /&gt;
				fill = &#039;#555555&#039;, &lt;br /&gt;
				[&#039;fill-opacity&#039;] = 0.1,&lt;br /&gt;
				[&#039;stroke-width&#039;] = 1,&lt;br /&gt;
				[&#039;stroke-opacity&#039;] = 0.5 }&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-data-heavy&#039;] then&lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geoline&#039;,&lt;br /&gt;
			ids = args[&#039;map-data-heavy&#039;],&lt;br /&gt;
			properties =  { title = args[&#039;map-data-heavy&#039;],&lt;br /&gt;
				stroke = propertyTable.stroke,&lt;br /&gt;
				[&#039;stroke-width&#039;] = 9,&lt;br /&gt;
				[&#039;stroke-opacity&#039;] = propertyTable[&#039;stroke-opacity&#039;] or 0.2 }&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, comma .. mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-data-light&#039;] and args[&#039;map-data-light&#039;] ~= &#039;&#039; then&lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geoline&#039;,&lt;br /&gt;
			ids = args[&#039;map-data-light&#039;],&lt;br /&gt;
			properties =  { title = args[&#039;map-data-light&#039;],&lt;br /&gt;
				stroke = propertyTable.stroke,&lt;br /&gt;
				[&#039;stroke-width&#039;] = 3,&lt;br /&gt;
				[&#039;stroke-opacity&#039;] = propertyTable[&#039;stroke-opacity&#039;] or 0.4 }&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, comma .. mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-data&#039;] then&lt;br /&gt;
    	propertyTable[&#039;stroke-opacity&#039;] = propertyTable[&#039;stroke-opacity&#039;] or 0.2 &lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geoline&#039;,&lt;br /&gt;
			ids = args[&#039;map-data&#039;],&lt;br /&gt;
			properties = propertyTable&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, comma .. mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
   	end&lt;br /&gt;
    if args[&#039;map-wdqs&#039;] then -- inserts a SPARQL wdqs query to find geopoints, geoshapes etc from wikidata&lt;br /&gt;
        local mapSparql = mw.text.jsonEncode{&lt;br /&gt;
            type = &#039;ExternalData&#039;,&lt;br /&gt;
            service = args[&#039;map-wdqs-type&#039;] or &#039;geopoint&#039;,&lt;br /&gt;
            query = args[&#039;map-wdqs&#039;],&lt;br /&gt;
        }&lt;br /&gt;
        table.insert(result, comma .. mapSparql)&lt;br /&gt;
        -- debugmsg(&#039;mapSparql = &#039; .. mapSparql)&lt;br /&gt;
        comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-raw&#039;] then&lt;br /&gt;
    	table.insert(result, comma .. args[&#039;map-raw&#039;])&lt;br /&gt;
    end&lt;br /&gt;
	if use==&#039;basemap&#039; then table.insert(result,&#039;]&#039;) end	&lt;br /&gt;
    return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--eg | minilocator=filename,bottom right,132px153px, 38%,60%, 22px&lt;br /&gt;
local function makeLocatorMap (args, result)&lt;br /&gt;
	local miniFile,pos,itemlist,miniW,miniH, miniX,miniY,miniBox, miniBH&lt;br /&gt;
	if args[&#039;mini-locator&#039;] then&lt;br /&gt;
		pos,miniFile=extractItem(args[&#039;mini-locator&#039;]) -- first item is filename, in quotes if it includes commas&lt;br /&gt;
		itemlist=splitItem(pos,5) -- put items in a table filename removed, position,WpxHpx, x%y%,box&lt;br /&gt;
		pos=itemlist[2] or &#039;right&#039;&lt;br /&gt;
		miniW,miniH=getsize(itemlist[3])&lt;br /&gt;
		miniX=tonumber(string.match(itemlist[4] or &#039;0&#039;,&#039;[%d]+&#039;))*miniW/100&lt;br /&gt;
		miniY=tonumber(string.match(itemlist[5] or &#039;0&#039;,&#039;[%d]+&#039;))*miniH/100&lt;br /&gt;
		miniBox=tonumber(string.match(itemlist[6] or &#039;0&#039;,&#039;[%d]+&#039;))&lt;br /&gt;
		miniBox=miniBox*miniW/100&lt;br /&gt;
		miniBH=miniBox * maplist.height/maplist.width &lt;br /&gt;
	elseif args[&#039;mini-file&#039;] then &lt;br /&gt;
		miniFile = args[&#039;mini-file&#039;]&lt;br /&gt;
		pos=string.lower(args.minimap or &#039;right&#039;)&lt;br /&gt;
		if pos==&#039;file&#039; then pos=&#039;right&#039; end&lt;br /&gt;
		miniW,miniH = tonumber(args[&#039;mini-width&#039;] or 60), tonumber(args[&#039;mini-height&#039;] or 60) -- find top left corner of locator&lt;br /&gt;
		miniBox,miniBH=tonumber(args[&#039;minimap-boxwidth&#039;] or &#039;0&#039;),0 -- firm up pos offsets for dot (with % or not) and boxsize if any, &lt;br /&gt;
		miniX, miniY=args[&#039;minipog-gx&#039;],args[&#039;minipog-gy&#039;]&lt;br /&gt;
		if not miniX then miniX=tonumber(args[&#039;minipog-x&#039;] or &#039;0&#039;) else miniX=tonumber(miniX)*tonumber(miniW)/100 end&lt;br /&gt;
		if not miniY then miniY=tonumber(args[&#039;minipog-y&#039;] or &#039;0&#039;) else miniY=tonumber(miniY)*tonumber(miniH)/100 end&lt;br /&gt;
		if args[&#039;minipog-gx&#039;] then miniBox=miniBox*miniW/100 end&lt;br /&gt;
		miniBH=miniBox * maplist.height/maplist.width &lt;br /&gt;
	else return end&lt;br /&gt;
	local miniTop,miniLeft=0,1&lt;br /&gt;
	if not string.find(pos,&#039;top&#039;) then --only use top left, as link box is in top right or put bottom left or right&lt;br /&gt;
		miniTop=maplist.height+2-miniH  &lt;br /&gt;
		if string.find(pos,&#039;right&#039;) then &lt;br /&gt;
			miniTop=miniTop-15              -- to avoid (c) line&lt;br /&gt;
			miniLeft=maplist.width-1-miniW&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; outline-width: 1px; outline-style: solid; outline-color: white;&#039;)&lt;br /&gt;
	table.insert(result,&#039;top: &#039;..tostring(miniTop)..&#039;px; left:&#039;..tostring(miniLeft)..&#039;px; width:&#039;..tostring(miniW)..&#039;px;&#039; )&lt;br /&gt;
	table.insert(result,&#039;background-color:transparent; color:inherit;&amp;quot;&amp;gt;[[File:&#039;..miniFile..&#039;|&#039;..tostring(miniW)..&#039;px|File:&#039;..miniFile..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	if miniX and miniX&amp;gt;0 then&lt;br /&gt;
		if args[&#039;minipog-y&#039;] then miniY=miniY/1.04 end&lt;br /&gt;
		if args[&#039;minipog-x&#039;] then miniX=miniX/1.04 end&lt;br /&gt;
		if miniBox&amp;lt;1 then&lt;br /&gt;
			table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(miniY+miniTop-3-6)..&#039;px; left:&#039;..tostring(miniX+miniLeft-3)..&#039;px;&#039;)&lt;br /&gt;
			table.insert(result, &#039;width: 6px; background-color:transparent; color:inherit;&amp;quot;&amp;gt;[[File:Red pog.svg|6px|link=]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(miniY+miniTop-miniBH/2)..&#039;px; left:&#039;..tostring(miniX+miniLeft-miniBox/2)..&#039;px;&#039;)&lt;br /&gt;
			table.insert(result, &#039;width: &#039;..tostring(miniBox)..&#039;px; height:&#039;..tostring(miniBH)..&#039;px; outline:1px solid #AA1205; background-color:#AA120522; color:inherit;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeArcText(args,result,nval)&lt;br /&gt;
	local items, itemlist=&#039;&#039;,{}&lt;br /&gt;
	local arcText=&#039;&#039;&lt;br /&gt;
	if args[&#039;arc&#039;..nval] then &lt;br /&gt;
		items=convertCoords (args[&#039;arc&#039;..nval])&lt;br /&gt;
		items,arcText=extractItem(items) -- first item is text, in quotes if it includes commas&lt;br /&gt;
		itemlist=splitItem(items,9) -- put items in a table: text, lat,lon,size,color,angle,gap,radius,ellipse&lt;br /&gt;
		if itemlist[4]==&#039;&#039; then itemlist[4]=&#039;12&#039; end&lt;br /&gt;
		itemlist[4]=string.match((itemlist[4] or &#039;12&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
		if itemlist[5]==&#039;&#039; then itemlist[5]=&#039;grey&#039; end&lt;br /&gt;
		itemlist[6]=string.match((itemlist[6] or &#039;0&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
		itemlist[7]=string.match((itemlist[7] or &#039;0&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
		itemlist[8]=string.match((itemlist[8] or &#039;0&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;arc-coord&#039;..nval] then &lt;br /&gt;
		local itemTab=splitItem(convertCoordsTrad (args[&#039;arc-coord&#039;..nval]),2)&lt;br /&gt;
		maplist.lat=tonumber(string.match(itemTab[1],&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
		maplist.lon=tonumber(string.match(itemTab[2],&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	else&lt;br /&gt;
		maplist.lat=tonumber(string.match(args[&#039;arc-lat&#039;..nval] or itemlist[2] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
		maplist.lon=tonumber(string.match(args[&#039;arc-lon&#039;..nval] or itemlist[3] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;))	&lt;br /&gt;
	end&lt;br /&gt;
	local arcX,arcY=maptogrid(maplist,6)&lt;br /&gt;
	arcText = args[&#039;arc-text&#039;..nval] or arcText&lt;br /&gt;
	local fontSize =tonumber(args[&#039;arc-text-size&#039;..nval] or itemlist[4] or &#039;12&#039;)&lt;br /&gt;
	local textColor=getColor(string.gsub(args[&#039;arc-text-color&#039;..nval] or itemlist[5] or &#039;grey&#039;,&#039;[%s]+&#039;,&#039;&#039;) )&lt;br /&gt;
	local arcAngle= tonumber((args[&#039;arc-angle&#039;..nval]) or (itemlist[6]) or &#039;45&#039;)-90&lt;br /&gt;
	local arcRadius =tonumber(args[&#039;arc-radius&#039;..nval] or itemlist[8] or &#039;0.05&#039;)&lt;br /&gt;
	local arcGap = tonumber(args[&#039;arc-gap&#039;..nval] or itemlist[7] or &#039;1&#039;)* ( ( math.sin(8-math.rad(arcRadius))^8 )+0.4 )*( ( fontSize+6 )/15 )&lt;br /&gt;
	arcRadius=450*arcRadius*0.75&lt;br /&gt;
	local ellipseFactor=tonumber(args[&#039;ellipse-factor&#039;..nval] or itemlist[9] or &#039;1&#039;) &lt;br /&gt;
	local arcRotate =arcAngle+90&lt;br /&gt;
	if arcGap&amp;lt;0 then arcRotate=arcAngle-90 end&lt;br /&gt;
	local latF=arcY - fontSize + (0-(math.sin(math.rad(arcAngle))) * arcRadius)&lt;br /&gt;
	local lonF=arcX - fontSize +(0-(math.cos(math.rad(arcAngle))) * arcRadius)&lt;br /&gt;
&lt;br /&gt;
	local step=1&lt;br /&gt;
	for codepoint in mw.ustring.gcodepoint( arcText ) do   -- block  step=1,#arcText do&lt;br /&gt;
	  table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;&#039;)&lt;br /&gt;
	    local posY=tostring(round( (latF + (math.sin(math.rad(arcAngle+((step-1)*arcGap))) * arcRadius)) *ellipseFactor,2))..&#039;px;&#039;&lt;br /&gt;
	    local posX=tostring(round( (lonF + (math.cos(math.rad(arcAngle+((step-1)*arcGap))) * arcRadius))/ellipseFactor,2))..&#039;px;&#039;&lt;br /&gt;
	  table.insert(result,&#039; top: &#039;..posY..&#039; left: &#039;..posX..&#039; transform: rotate( &#039;..tostring(round(arcRotate +((step-1)*arcGap)),2)..&#039;deg);&#039;)&lt;br /&gt;
	  table.insert(result,&#039;width:&#039;..tostring(fontSize*2)..&#039;px; text-align: center; background-color:transparent; color: &#039;..textColor..&#039;;&#039;)&lt;br /&gt;
	  table.insert(result,&#039;vertical-align: baseline; font-size: &#039;..tostring(fontSize)..&#039;px;&amp;quot;&amp;gt;&#039;..mw.ustring.char(codepoint)..&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	  step=step+1&lt;br /&gt;
	end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
local function makeFullscreenItem (itemtitle,itemdescription,lat,lon,group,itemcolor)&lt;br /&gt;
	local item={}&lt;br /&gt;
    itemdescription=stripdivs(itemdescription or &#039;&#039;)&lt;br /&gt;
    local templon=lon&lt;br /&gt;
    if lon &amp;gt; 180 then templon=lon-360 end --for hemisphere+ or -1 dots&lt;br /&gt;
    if lon &amp;lt; -180 then templon=lon+360 end -- use &#039;real&#039; coordinates for geohack label, while retaining shifted coords for plot&lt;br /&gt;
    if itemcolor==&#039;transparent&#039; then itemcolor=&#039;white&#039; end&lt;br /&gt;
    itemcolor=getColor(itemcolor) -- ensure no opacity, which breaks maplink&lt;br /&gt;
    if string.find(itemcolor,&#039;#&#039;)==1 and #itemcolor&amp;gt;7 then itemcolor=string.sub(itemcolor,1,7) end&lt;br /&gt;
    table.insert(item, &#039;{ &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,  &amp;quot;properties&amp;quot;: {&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;title&amp;quot;: &amp;quot;&#039;..itemtitle..&#039;&amp;quot;,&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;description&amp;quot;: &amp;quot;&#039;..itemdescription)&lt;br /&gt;
    table.insert(item, &#039; ([https://geohack.toolforge.org/geohack.php?params=&#039;..tostring(lat)..&#039;;&#039;..tostring(templon))&lt;br /&gt;
    table.insert(item, &#039;_dim:2000 &#039;..tostring(lat)..&#039;,&#039;..tostring(templon)..&#039;])&amp;quot;,&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;marker-symbol&amp;quot;: &amp;quot;-number-&#039;..string.gsub(group,&#039;%W&#039;,&#039;&#039;)..&#039;&amp;quot;, &amp;quot;marker-size&amp;quot;: &amp;quot;medium&amp;quot;, &amp;quot;marker-color&amp;quot;: &amp;quot;&#039;..itemcolor..&#039;&amp;quot; },&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;geometry&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;, &amp;quot;coordinates&amp;quot;: [&#039;..tostring(lon)..&#039;,&#039;..tostring(lat)..&#039;] } }&#039;)&lt;br /&gt;
    return table.concat(item)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLegendBox(result,args)&lt;br /&gt;
	local legend ={}&lt;br /&gt;
	local line,count, maxWidth=&#039;&#039;,1,8&lt;br /&gt;
	local item&lt;br /&gt;
	line,item=extractItem(args.legendBox or &#039;&#039;)&lt;br /&gt;
	local a=&#039;&#039; for c in item:gmatch(&#039;.&#039;) do a=a..(c:gsub(&#039;%^&#039;,&#039;&amp;lt;br&amp;gt;&#039;) or c) end&lt;br /&gt;
	legend.Text = a -- convert hats to line breaks&lt;br /&gt;
    line=splitItem(line,6) -- (text, size, poition,background color, text/outline color, param options)&lt;br /&gt;
    legend.Size=line[2] or &#039;150px80px1px&#039;&lt;br /&gt;
    legend.Pos=line[3] or &#039;10px10px&#039;&lt;br /&gt;
    legend.Background=line[4] or &#039;beigeground&#039;&lt;br /&gt;
    legend.Color=line[5] or &#039;darkbrown&#039;&lt;br /&gt;
    legend.Param= line[6] or &#039;&#039;&lt;br /&gt;
    local argnum,legendCount,titleHeight=&#039;1&#039;,1,0&lt;br /&gt;
    if (legend.Text and legend.Text~=&#039;&#039;) then &lt;br /&gt;
	    titleHeight=15+(13.4*(select(2, string.gsub(legend.Text,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))))&lt;br /&gt;
	end&lt;br /&gt;
    local legendLine,legendGroup,legendY={},{},{}&lt;br /&gt;
    while args[&#039;legendItem&#039;..argnum] do -- assign legendLine, legendGroup, legendY for each dot&lt;br /&gt;
    	line,legendLine[legendCount] = extractItem(args[&#039;legendItem&#039;..argnum] or &#039;&#039;)&lt;br /&gt;
    	line=splitItem(line,3)&lt;br /&gt;
    	legendGroup[legendCount]=line[2] or argnum &lt;br /&gt;
    	if shapeList[legendGroup[legendCount]] then&lt;br /&gt;
    		maxWidth=math.max(tonumber(string.match(shapeList[legendGroup[legendCount]].shapeSize or &#039;10&#039;,&#039;[%d]+&#039;)),maxWidth)&lt;br /&gt;
    	else maxWidth=math.max(tonumber(string.match(shapeList[&#039;1&#039;].shapeSize or &#039;10&#039;,&#039;[%d]+&#039;)),maxWidth)&lt;br /&gt;
    	end&lt;br /&gt;
    	maxWidth=maxWidth+1&lt;br /&gt;
    	if line[3] then	&lt;br /&gt;
    		legendY[legendCount]=tonumber(string.match(line[3],&#039;[%d]+&#039;))&lt;br /&gt;
    	else legendY[legendCount] = 3+maxWidth*(legendCount-1)+titleHeight&lt;br /&gt;
		--	if (legend.Text and legend.Text~=&#039;&#039;) then legendY[legendCount]=legendY[legendCount]+15 end&lt;br /&gt;
    	end&lt;br /&gt;
		legendCount=legendCount+1&lt;br /&gt;
		argnum=tostring(legendCount)&lt;br /&gt;
    end&lt;br /&gt;
	local w,h,r=getsize(legend.Size or &#039;&#039;)&lt;br /&gt;
	local x,y=getsize(legend.Pos or &#039;&#039;)&lt;br /&gt;
    local div=mw.html.create (&#039;div&#039;)&lt;br /&gt;
	div:css(&#039;position&#039;, &#039;absolute&#039;)&lt;br /&gt;
    div:css(&#039;outline&#039;, &#039;1px solid&#039;..getColor(legend.Color))&lt;br /&gt;
	if r~=0 then div:css(&#039;border-radius&#039;,tostring(r)..&amp;quot;px&amp;quot;)	end&lt;br /&gt;
	div&lt;br /&gt;
	:css(&#039;top&#039;, y..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;left&#039;, x..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;width&#039;, w..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;height&#039;, h..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;line-height&#039;,&#039;105%&#039;)&lt;br /&gt;
	:css(&#039;background-color&#039;, getColor(legend.Background) )&lt;br /&gt;
	:css(&#039;color&#039;,&#039;inherit&#039;)&lt;br /&gt;
	if not string.find(legend.Param,&#039;noshadow&#039;) then div:css(&#039;box-shadow&#039;, &#039;2px 2px 4px #33203335&#039;) end&lt;br /&gt;
	div:tag( &#039;div&#039; )&lt;br /&gt;
		:css(&#039;position&#039;, &#039;absolute&#039;)&lt;br /&gt;
		:css(&#039;top&#039;,&#039;1px&#039;)&lt;br /&gt;
		:css(&#039;left&#039;, (w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
		:css(&#039;width&#039;,(w-8)..&#039;px&#039;)&lt;br /&gt;
		:css(&#039;text-align&#039;, &#039;center&#039;)&lt;br /&gt;
		:css(&#039;color&#039;, getColor(legend.Color))&lt;br /&gt;
        :css(&#039;transform&#039;, &#039;translateX(-50%)&#039;)&lt;br /&gt;
        :css(&#039;font-size&#039;,&#039;11px&#039;)&lt;br /&gt;
		:wikitext(legend.Text)&lt;br /&gt;
	:done()&lt;br /&gt;
	for lct=1,legendCount-1 do&lt;br /&gt;
		--local t=legendGroup[lct]&lt;br /&gt;
		local shape=shapeList[legendGroup[lct]] or shapeList[&#039;1&#039;]&lt;br /&gt;
		local row={}&lt;br /&gt;
		row.gridx=3+maxWidth/2&lt;br /&gt;
		row.gridy=(legendY[lct] or 0) + 5&lt;br /&gt;
		if shape.shape==&#039;image:&#039; then row.gridy=row.gridy+6 end&lt;br /&gt;
		row.dx=0 row.dy=0&lt;br /&gt;
		local legendShape= getshapetable(row,shape)&lt;br /&gt;
		div:wikitext(legendShape)&lt;br /&gt;
		:tag( &#039;div&#039; )&lt;br /&gt;
			:css(&#039;position&#039;, &#039;absolute&#039;)&lt;br /&gt;
			:css(&#039;top&#039;,(legendY[lct] or 0)..&#039;px&#039;)&lt;br /&gt;
			:css(&#039;left&#039;, (maxWidth+6)..&#039;px&#039;)&lt;br /&gt;
			:css(&#039;width&#039;, (w-maxWidth-6)..&#039;px&#039;)&lt;br /&gt;
			:css(&#039;text-align&#039;, &#039;left&#039;)&lt;br /&gt;
			:css(&#039;line-height&#039;,&#039;103%&#039;)&lt;br /&gt;
			:css(&#039;color&#039;, getColor(legend.Color))&lt;br /&gt;
	        :css(&#039;font-size&#039;,&#039;10px&#039;)&lt;br /&gt;
			:wikitext(legendLine[lct])&lt;br /&gt;
		:done()&lt;br /&gt;
	end&lt;br /&gt;
	div:allDone()&lt;br /&gt;
	table.insert(result,tostring(div))&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
local function getQset (qValue,pValue,argNumber,args)&lt;br /&gt;
	local result={}&lt;br /&gt;
	local sortType=string.lower(args[&#039;geo-list-sort&#039;] or &#039;a&#039;)&lt;br /&gt;
	local testValue=&#039;0&#039;&lt;br /&gt;
	if sortType == &#039;alpha&#039; or sortType == &#039;a&#039; or sortType == &#039;ah&#039; or sortType == &#039;al&#039; then&lt;br /&gt;
		testValue = mw.wikibase.getLabel(qValue)&lt;br /&gt;
	elseif sortType == &#039;value&#039; or sortType == &#039;v&#039; or sortType == &#039;vh&#039; or sortType == &#039;vl&#039;then&lt;br /&gt;
		if qValue==nil or pValue == nil then debugmsg(mw.addWarning((qValue or &#039;nil&#039;)..&#039; Qnumber for &#039;..(pValue or &#039;nil&#039;)))&lt;br /&gt;
		else&lt;br /&gt;
		if mw.wikibase.getBestStatements(qValue,pValue)[1] then&lt;br /&gt;
			testValue = mw.wikibase.getBestStatements(qValue,pValue)[1].mainsnak.datavalue.value.amount or &#039;0&#039;&lt;br /&gt;
			if pValue == &#039;P2046&#039; then&lt;br /&gt;
				testValue = convertToSqKm(testValue, mw.wikibase.getBestStatements(qValue,pValue)[1].mainsnak.datavalue.value.unit)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		end&lt;br /&gt;
	elseif sortType == &#039;north&#039; or sortType == &#039;n&#039; or sortType == &#039;nh&#039; or sortType == &#039;nl&#039; then&lt;br /&gt;
		if mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1] then&lt;br /&gt;
			testValue = mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1].mainsnak.datavalue.value.latitude or 0&lt;br /&gt;
		end&lt;br /&gt;
	elseif sortType == &#039;west&#039; or sortType == &#039;w&#039; or sortType == &#039;wh&#039; or sortType == &#039;wl&#039; then&lt;br /&gt;
		if mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1] then&lt;br /&gt;
			testValue =  mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1].mainsnak.datavalue.value.longitude or 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	result[1]=testValue&lt;br /&gt;
	result[2]=argNumber&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main ( args )&lt;br /&gt;
	local result={}&lt;br /&gt;
	local frame=mw.getCurrentFrame()&lt;br /&gt;
	local dotTable={}&lt;br /&gt;
	local magVal,scaleVal = args.magnify,&#039;&#039;&lt;br /&gt;
	local origH,origW=maplist.height,maplist.width&lt;br /&gt;
	&lt;br /&gt;
	if magVal then --set up the values needed to magnify the top-right portion of the map&lt;br /&gt;
		magVal=tonumber(string.match(magVal or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;)) or 1&lt;br /&gt;
		if magVal&amp;gt;1 and magVal &amp;lt;=2 then&lt;br /&gt;
			maplist.height= round(maplist.height/magVal,0)&lt;br /&gt;
			maplist.width=round(maplist.width/magVal,0)&lt;br /&gt;
			scaleVal=&#039;transform: scale(&#039;..magVal..&#039;) translateY(&#039;..tostring((origH-maplist.height)/2)..&#039;px);&#039;&lt;br /&gt;
		else magVal=1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- set up the three nested div boxes (plus an extra if centered) to put the map plus title/caption area, in an appropriate frame on the page&lt;br /&gt;
    if args.float==&#039;center&#039; or args.float==&#039;centre&#039; then table.insert(result,&#039;&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;thumb tnone&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
    elseif args.float==&#039;left&#039; then table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumb tleft&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
    else table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
    end	&lt;br /&gt;
    table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;position: relative; top: 0px; right: 0px; width: &#039;..(args.width or &amp;quot;400&amp;quot;)..&#039;px;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
    if args.title then table.insert(result,&#039;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;&#039;..args.title..&#039;&amp;lt;/div&amp;gt;&#039;) end&lt;br /&gt;
    if magVal and magVal &amp;gt;1 and magVal&amp;lt;=2 then	&lt;br /&gt;
    	table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbinner noresize&amp;quot; style=&amp;quot;display:block; position: relative; outline:0px; border:0px; padding:0px; background-color:transparent; color:inherit;&#039;)&lt;br /&gt;
		table.insert(result,&#039;top: 50%; right: &#039;..tostring(0-((origW-maplist.width))/2)..&#039;px; &#039;)&lt;br /&gt;
		table.insert(result,&#039;height: &#039;..origH..&#039;px; width: &#039;..maplist.width..&#039;px; &#039;..scaleVal..&#039;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		magVal=1&lt;br /&gt;
	    table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbinner noresize&amp;quot; style=&amp;quot;position: relative; outline:0px; border:0px; padding:0px;&#039;)&lt;br /&gt;
	    table.insert(result,&#039;top: 0px; right: 0px; &#039;)&lt;br /&gt;
		table.insert(result,&#039;height: &#039;..maplist.height..&#039;px; width: &#039;..maplist.width..&#039;px &amp;quot;&amp;gt;&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    --add any boundary Qvalues to map-data-light if requested&lt;br /&gt;
    if args[&#039;geo-region&#039;] and (args[&#039;geo-boundaries&#039;] == &#039;1&#039;) then&lt;br /&gt;
    	local qmaps=args[&#039;map-data-light&#039;] or &#039;&#039;&lt;br /&gt;
		if qmaps ~=&#039;&#039; and string.sub(qmaps,#qmaps) ~= &#039;,&#039; then qmaps=qmaps..&#039;,&#039; end&lt;br /&gt;
		local geoRegion = args[&#039;geo-region&#039;] -- or add base-page here&lt;br /&gt;
		local geoSubRegion = args[&#039;geo-sub-region&#039;] or &#039;P150&#039;&lt;br /&gt;
		if not hasWikibase then&lt;br /&gt;
			geoSubRegion = &#039;P150&#039;&lt;br /&gt;
		elseif not mw.wikibase.isValidEntityId(geoSubRegion) then geoSubRegion = &#039;P150&#039; end&lt;br /&gt;
		if hasWikibase and mw.wikibase.isValidEntityId(geoRegion) then&lt;br /&gt;
			local ct=1&lt;br /&gt;
			local qtemp&lt;br /&gt;
			while (mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct]) do&lt;br /&gt;
				 -- debugmsg(&#039;table &#039;..ct..&#039; - &#039;..mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct].mainsnak.datavalue.value.id)&lt;br /&gt;
				qtemp = mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct].mainsnak.datavalue.value.id or nil&lt;br /&gt;
				if qtemp then&lt;br /&gt;
					if mw.wikibase.entityExists(qtemp) then &lt;br /&gt;
						qmaps=qmaps..qtemp..&#039;,&#039;   -- see if there is a geocode boundary Qvalue to add&lt;br /&gt;
					else debugmsg(mw.addWarning(&#039;unable to add geocode value for &#039;..mw.wikibase.getLabel..&#039;,&#039;..qtemp))&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
				end&lt;br /&gt;
				ct=ct+1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if qmaps and qmaps ~= &#039;&#039; then -- add back the created/expanded list of boundary Qvalues, and remove trailing comma&lt;br /&gt;
			args[&#039;map-data-light&#039;] = string.sub(qmaps,1,#qmaps-1) &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
-- Create the basemap using mapframe&lt;br /&gt;
	local mapframecontent=getmapframecontent(args,&#039;basemap&#039;)&lt;br /&gt;
	table.insert(result, frame:extensionTag{ name =&#039;mapframe&#039;, content=mapframecontent, args={width=tostring(maplist.width), height=tostring(maplist.height), &lt;br /&gt;
		zoom=tostring(maplist.zoom), longitude=tostring(maplist.lonbase), latitude=tostring(maplist.latbase), mapstyle=maplist.mapstyle, frameless=true } } )&lt;br /&gt;
&lt;br /&gt;
--Add coverall box to block the unhelpful links from mapframe - which wouldn&#039;t include all the dots. Reinstate some links to osm and wikimedia&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;width:&#039;..tostring(maplist.width)..&#039;px; height:&#039;..tostring(maplist.height)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;top:0px;left:0px;background-color:#FFFFFF00; color:inherit;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;)	&lt;br /&gt;
--Add replacent hover-links for OpenStreetMap and maps terms and conditions&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(maplist.height-18)..&#039;px; left: &#039;..tostring(maplist.width-13)..&#039;px; width: 12px; height: 12px&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result,&#039;[[file:Transparent.svg|12px|link=https://www.openstreetmap.org/copyright|&#039;..aboutOSM..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(maplist.height-18)..&#039;px; left: &#039;..tostring(maplist.width-110)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;width: 12px; height: 12px background-color: transparent; color:inherit;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result,&#039;[[file:Transparent.svg|12px| link=https://foundation.wikimedia.org/wiki/Policy:Maps_Terms_of_Use|&#039;..termsOfUse..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Add scale-line&lt;br /&gt;
	if not args.scalemark or args.scalemark~=&#039;0&#039; then&lt;br /&gt;
		local top=maplist.height-42&lt;br /&gt;
		local left=maplist.width-61-(tonumber(args.scalemark or &#039;1&#039;))&lt;br /&gt;
		local minipos=string.lower(args.minimap or &#039;&#039;) -- scalemark gets pushed left if it would be behind the minimap&lt;br /&gt;
		if minipos~=&#039;&#039; and not(string.find(minipos,&#039;left&#039;) or string.find(minipos,&#039;top&#039;) ) then &lt;br /&gt;
			local offset=tonumber(args.scalemark or &#039;1&#039;)-tonumber(args[&#039;mini-width&#039;] or &#039;60&#039;)&lt;br /&gt;
			if offset&amp;lt;1 then left=maplist.width-61-tonumber(args[&#039;mini-width&#039;] or &#039;60&#039;) end&lt;br /&gt;
		end&lt;br /&gt;
		if maplist.width-left &amp;gt;216 then top=top+14 end -- shunt scaleline down if it is beyond the copyright stuff&lt;br /&gt;
		local scalek,scalem=getScale(maplist.zoom, maplist.latbase, magVal)&lt;br /&gt;
		local magReduce=&#039;&#039;&lt;br /&gt;
		  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute; background-color: #111111&amp;quot;)&lt;br /&gt;
		  table.insert(result,&amp;quot;; color:inherit; clip-path:path(nonzero, &amp;amp;#39;M0,8 l0,4 l20,0 l0,-4 l-0.3,0 l0,3.7 l-19.4,0 l0,-3.7 z&amp;amp;#39;) &amp;quot;)&lt;br /&gt;
		  table.insert(result,&amp;quot;; width:20px&amp;quot;) -- path is a 20px20px box, and then rescales &lt;br /&gt;
		  if magVal==1 then&lt;br /&gt;
  		    table.insert(result,&amp;quot;; top:&amp;quot;..tostring(top-1)..&amp;quot;px&amp;quot;) &lt;br /&gt;
  		    table.insert(result,&amp;quot;; left:&amp;quot;..tostring(left+16)..&amp;quot;px&amp;quot;)&lt;br /&gt;
			table.insert(result,&amp;quot;; height:20px; transform:scale(&amp;quot;..tostring(2.5)..&amp;quot;, &amp;quot;..tostring(1.5)..&amp;quot;)&amp;quot;)&lt;br /&gt;
		  else -- shrink the scalemark to compensate for magnification&lt;br /&gt;
  			table.insert(result,&amp;quot;; top:&amp;quot;..tostring(top-(magVal*0.28))..&amp;quot;px&amp;quot;) &lt;br /&gt;
  			table.insert(result,&amp;quot;; left:&amp;quot;..tostring(left+(16*(magVal*1.15)))..&amp;quot;px&amp;quot;)&lt;br /&gt;
		  	table.insert(result,&amp;quot;; height:20px; transform:scale(&amp;quot;..tostring(2.5*(1/magVal))..&amp;quot;, &amp;quot;..tostring(1.5*(1/magVal))..&amp;quot;)&amp;quot;)&lt;br /&gt;
		  	magReduce= &#039;scale(&#039;..tostring(1/magVal)..&#039;)&#039;&lt;br /&gt;
		  end&lt;br /&gt;
		  table.insert(result,&amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
			&lt;br /&gt;
		table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(top)..&#039;px; left: &#039;..tostring(left+47)..&#039;px; font-size: 9.5px; line-height: 126%; width: fit-content;&#039;)&lt;br /&gt;
		table.insert(result,&#039;color: #444433; background-color: transparent; text-align: right; transform: &#039;..magReduce..&#039; translateX(-100%);&amp;quot;&amp;gt;&#039;..scalek..&#039;&amp;lt;br&amp;gt;&#039;..scalem..&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
--Set up the shapeList and dotList tables, to provide data to go on the map&lt;br /&gt;
	local sgNumbers,sgSortable={},{} --s1,s2&lt;br /&gt;
	sgNumbers[&amp;quot;1&amp;quot;]=&amp;quot;1&amp;quot;&lt;br /&gt;
	if args.useFormatStyle and args.useFormatStyle==&#039;shortstyle&#039; then&lt;br /&gt;
		shapeList=ParseShapeTypes (shapeList,args,&amp;quot;1&amp;quot;)&lt;br /&gt;
		for argindex,argv in pairs(args) do -- build a list of all the numbered sg&#039;s that have been used&lt;br /&gt;
			if string.find(argindex,&amp;quot;sg[a-f,n%d]+&amp;quot;) == 1 then -- only look through the sga,sgb, sgc,sgd,sge,sgf and sgn args&lt;br /&gt;
	    		local x=string.match(argindex,&amp;quot;[%d]+&amp;quot;) -- find its number&lt;br /&gt;
	    		if x and not sgNumbers[x] then sgNumbers[x]=x end -- only add if not already found&lt;br /&gt;
			end&lt;br /&gt;
			if string.find(argindex,&amp;quot;sg[a-f]H&amp;quot;) == 1 and highlightNum then highlightOption=true end&lt;br /&gt;
		end&lt;br /&gt;
		for indx,sgnum in pairs(sgNumbers) do table.insert(sgSortable,sgnum) end&lt;br /&gt;
		table.sort(sgSortable,lessthan) -- put the list in a sortable form&lt;br /&gt;
		for k,v in pairs(sgSortable) do -- work through the sorted list, parsing each set of sg&#039;s in turn, from 1 upwards&lt;br /&gt;
			shapeList=ParseShapeTypes (shapeList,args,v)&lt;br /&gt;
		end&lt;br /&gt;
		if highlightOption==true then shapeList=ParseShapeTypes (shapeList,args,&#039;H&#039;) end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local dotList,dotresult,dotItemTable,dotGroupList={},{},{},{}&lt;br /&gt;
	&lt;br /&gt;
	if (not args.useFormatStyle) or args.useFormatStyle==&#039;standardstyle&#039; then&lt;br /&gt;
		local dotmax=0&lt;br /&gt;
		local qset={}&lt;br /&gt;
		for indx,val in pairs(args) do&lt;br /&gt;
			if string.match(indx,&#039;mark%-coord[%d]+&#039;) or string.match(indx,&#039;lat[%d]+&#039;) or string.match(indx,&#039;geo%-data[%d]+&#039;) then&lt;br /&gt;
				dotmax=math.max(dotmax, tonumber(string.match(indx,&amp;quot;[%d]+&amp;quot;)))&lt;br /&gt;
				if string.match(indx,&#039;geo%-data[%d]+&#039;) then&lt;br /&gt;
					local argnum=string.sub(indx,9,#indx) or &#039;&#039;&lt;br /&gt;
					if args[&#039;mark-title&#039;..argnum] == &#039;none&#039; or (string.find(args[&#039;mark-title&#039;..argnum] or &#039;x&#039;,&#039;nolist&#039;)== 1) then&lt;br /&gt;
						-- debugmsg(&#039;sort values ignored &#039;..argnum..&#039;, &#039;..args[&#039;mark-title&#039;..argnum])&lt;br /&gt;
					 else&lt;br /&gt;
						qset[val]=getQset (val, (args[&#039;geo-data-type&#039;] or &#039;P1082&#039;), argnum, args)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if (indx==&#039;shapeH&#039;) or (indx==&#039;shape-colorH&#039;) or (indx==&#039;shape-outlineH&#039;) or (indx==&#039;label-colorH&#039;) then highlightOption=true end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local qlist=args[&#039;geo-data-list&#039;]&lt;br /&gt;
		if qlist then&lt;br /&gt;
			if string.sub(qlist,#qlist) ~= &#039;,&#039; then qlist=qlist..&#039;,&#039; end&lt;br /&gt;
		else&lt;br /&gt;
			qlist=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		local geoRegion = args[&#039;geo-region&#039;] -- or add base-page here&lt;br /&gt;
		local geoSubRegion = args[&#039;geo-sub-region&#039;] or &#039;P150&#039;&lt;br /&gt;
		if not hasWikibase then&lt;br /&gt;
			geoSubRegion = &#039;P150&#039;&lt;br /&gt;
		elseif not mw.wikibase.isValidEntityId(geoSubRegion) then geoSubRegion = &#039;P150&#039; end&lt;br /&gt;
		if hasWikibase and (args[&#039;find-geo-dots&#039;] or &#039;1&#039;) ~= &#039;0&#039; and geoRegion and mw.wikibase.isValidEntityId(geoRegion) then&lt;br /&gt;
			local ct=1&lt;br /&gt;
			local qtemp&lt;br /&gt;
			while (mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct]) do&lt;br /&gt;
				-- debugmsg(&#039;table &#039;..ct..&#039; - &#039;..mw.wikibase.getBestStatements(adminRegion,adminSubRegion)[ct].mainsnak.datavalue.value.id)&lt;br /&gt;
				qtemp = mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct].mainsnak.datavalue.value.id or nil&lt;br /&gt;
				if qtemp then&lt;br /&gt;
					qlist=qlist..qtemp..&#039;,&#039; -- add subregion Qvalue to the list&lt;br /&gt;
				end&lt;br /&gt;
				ct=ct+1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if qlist and #qlist&amp;gt;1 then -- create a table from the csv list&lt;br /&gt;
			local _, c = qlist:gsub(&amp;quot;,&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
			local qtab=splitItem(qlist,c)&lt;br /&gt;
			for xd,yd in pairs(qtab) do&lt;br /&gt;
				yd=string.upper(yd)&lt;br /&gt;
				if qset[yd] == nil and mw.wikibase.isValidEntityId(yd) then &lt;br /&gt;
					dotmax=dotmax+1&lt;br /&gt;
					qset[yd]=getQset (yd, (args[&#039;geo-data-type&#039;] or &#039;P1082&#039;), tostring(dotmax), args)&lt;br /&gt;
					args[&#039;geo-data&#039;..tostring(dotmax)] = yd&lt;br /&gt;
					-- debugmsg(dotmax..&#039; = &#039;..(string.upper(yd) or &#039;Q Not found&#039;)..&#039;: &#039;..(mw.wikibase.getLabel(yd) or &#039;label Not found&#039;)..&#039;: &#039;..(mw.wikibase.getSitelink(yd) or &#039;link Not found&#039;))&lt;br /&gt;
				elseif not mw.wikibase.isValidEntityId(yd) then&lt;br /&gt;
					debugmsg(mw.addWarning(yd..&#039; is not a [[wikidata]] page. geo-data-list needs comma-separated Qvalues&#039; ))&lt;br /&gt;
				else  debugmsg(mw.addWarning(yd..&#039; is duplicate&#039;))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
-- qset contains set of Qvalues and can be from wikidata geo-region, list of geo-data-list Q values or individual geo-data1= etc&lt;br /&gt;
		local ts = {} -- table to hold the keys&lt;br /&gt;
		local useQset=false&lt;br /&gt;
		for ky, val in pairs(qset) do&lt;br /&gt;
			table.insert(ts, {key = ky, value = val[1], num=val[2]})&lt;br /&gt;
			useQset=true&lt;br /&gt;
		end&lt;br /&gt;
		if useQset then&lt;br /&gt;
			local order = string.lower(args[&#039;geo-list-sort&#039;] or &#039;a&#039;) -- sort the list from previously stored sortkey, either Lowest or Highest first&lt;br /&gt;
			if string.find(&#039;,al,vl,nl,wl,west,w,alpha,a,&#039; , &#039;,&#039;..order..&#039;,&#039;) then&lt;br /&gt;
				table.sort(ts, function (a,b) return lessthan(a.value, b.value) end)&lt;br /&gt;
			else&lt;br /&gt;
				table.sort(ts, function (a,b) return morethan(a.value, b.value) end)&lt;br /&gt;
			end				&lt;br /&gt;
			for ky,val in ipairs(ts) do -- assign values from sorted list to numbered parameter&lt;br /&gt;
				&lt;br /&gt;
				args[&#039;numbered&#039;..val.num] = ky -- The numbered parameter becomes the value for each dot that has a geo Qvalue, from manual, list or wiki sources.&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		dotItemTable=tradstyleParseShapes(args,dotItemTable,dotmax)&lt;br /&gt;
		for argindex=1,dotmax do -- build a list of all the numbered coords or lat,lons that have been used&lt;br /&gt;
			local x=tostring(argindex)&lt;br /&gt;
			if args[&#039;mark-coord&#039;..x] or (args[&#039;mark-lat&#039;..x] and args[&#039;mark-lon&#039;..x]) or args[&#039;geo-data&#039;..x] then &lt;br /&gt;
    			sgNumbers[x]=x  -- add it to the list&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for indx in pairs(args) do &lt;br /&gt;
			if string.match(indx,&#039;dot[%d]+&#039;) then table.insert(dotList,indx) end --add the index name for dot1, dot2 etc to dotList&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(dotList,morethan)	&lt;br /&gt;
		for indx,dotName in pairs(dotList) do&lt;br /&gt;
			dotresult=ParseData(args,string.match(dotName,&#039;[%d]+&#039;) ) -- using each dot number, assign the settings for each dot to a dotresult item line&lt;br /&gt;
			table.insert(dotItemTable,dotresult) -- and store that item line within the dotItemTable&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for arcVal = 65,91 do -- check through args looking for any arcs&lt;br /&gt;
		local arcLetter=string.char(arcVal) &lt;br /&gt;
		if args[&#039;arc-text&#039;..arcLetter] or args[&#039;arc&#039;..arcLetter] then&lt;br /&gt;
			makeArcText(args,result,arcLetter)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local dotdivs=&#039;&#039;&lt;br /&gt;
	local ddots=0&lt;br /&gt;
	if dotItemTable[1] then&lt;br /&gt;
		local ddots=(dotItemTable[1].lat or 0)+(dotItemTable[1].lon or 0)&lt;br /&gt;
	end&lt;br /&gt;
	local fgroup=&#039;F&#039;..tostring(maplist.latbase+maplist.lonbase+ddots )&lt;br /&gt;
	local FullscreenList={}&lt;br /&gt;
	local addcomma=&#039;&#039;&lt;br /&gt;
	for i,dotitem in pairs(dotItemTable) do -- working throug each dot item, merge the dot and shape values into a full set of css text&lt;br /&gt;
		local dotgroup= dotitem.group or &amp;quot;0&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		if dotitem.posType==&#039;mark-line&#039; and dotitem.markDest then --find destination xy values for any mark-lines&lt;br /&gt;
			for n,v in pairs(dotItemTable) do&lt;br /&gt;
				if v.code == dotitem.markDest then	dotitem.gridx2=v.gridx	dotitem.gridy2=v.gridy	break end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
    	local qtype=dotitem.group -- find which shape group each dot has been assigned&lt;br /&gt;
    	--debugmsg(&#039;dotgroup=&#039;..qtype..&#039;, sg=&#039;..(sgNumbers[qtype] or &#039;nil&#039;)..&#039; , shapeList=&#039;..shapeList[qtype].shape)&lt;br /&gt;
    	if not sgNumbers[qtype] then qtype=&amp;quot;0&amp;quot; end  --shapeList[dotitem.group] will give access to the shape values for that dot&lt;br /&gt;
    	if highlightNum==dotitem.code and highlightOption==true and shapeList[&#039;H&#039;] then&lt;br /&gt;
    		table.insert(result, getshapetable(dotitem,shapeList[&#039;H&#039;]))&lt;br /&gt;
    	else&lt;br /&gt;
    		table.insert(result, getshapetable(dotitem,shapeList[qtype])) -- Add the actual css instructions for each dot&lt;br /&gt;
    	end&lt;br /&gt;
    	if shapeList[dotgroup] and not string.find((dotitem.param1 or &#039;&#039;),&#039;nomap&#039;) then -- only add if not excluded with &#039;nomap&#039; labelText&lt;br /&gt;
    		local ftext=&#039;&#039;&lt;br /&gt;
    		if dotitem.dotTag~=&#039;&#039; and not string.match(dotitem.labelText or &#039;&#039;,&#039;[%d]&#039;) then ftext=stripdivs(dotitem.dotTag or &#039;&#039;)..&#039; &amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
    		if (dotitem.labelText ~= ftext) and dotitem.dotLink ==&#039;&#039; then ftext=ftext..&#039; &#039;..stripdivs(dotitem.labelText)..&#039;&amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
    		if (dotitem.dotLink) and (dotitem.dotLink ~=&#039;&#039;) then ftext=ftext..dotitem.dotLink..&#039;&amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
    		if dotitem.imageName then ftext=ftext..&#039;[[File:&#039;..dotitem.imageName..&#039;|250px]]&#039; end&lt;br /&gt;
    		table.insert(FullscreenList,1, makeFullscreenItem (string.gsub(ftext,&amp;quot;[\n]+&amp;quot;,&amp;quot; &amp;quot;), dotitem.info,round(dotitem.lat,5),round(dotitem.lon,5),fgroup,shapeList[dotgroup].shapeColor)..addcomma )&lt;br /&gt;
    		addcomma=&#039;, &#039;&lt;br /&gt;
    	end&lt;br /&gt;
    	-- makeFullscreenItem (itemtitle,itemdescription,lat,lon,group,itemcolor) &lt;br /&gt;
    	-- Always add to start of list, to reverse the sequence, and separate with commas except for first item, which is now at the end&lt;br /&gt;
	end&lt;br /&gt;
	if args.legendBox then makeLegendBox(result,args) end&lt;br /&gt;
	if args.minimap or args[&#039;mini-locator&#039;] then makeLocatorMap(args,result) end&lt;br /&gt;
	&lt;br /&gt;
-- add tag link and details for fullscreen version&lt;br /&gt;
	addcomma=&#039;&#039;&lt;br /&gt;
	if (mapframecontent or &#039;[]&#039;) ~= &#039;[]&#039; then addcomma=&#039;,&#039; end &lt;br /&gt;
	mapframecontent=getmapframecontent(args,&#039;fullscreen&#039;)&lt;br /&gt;
	local contentstart=&#039;[ &#039;..mapframecontent..addcomma..&#039;{ &amp;quot;type&amp;quot;: &amp;quot;FeatureCollection&amp;quot;, &amp;quot;features&amp;quot;: [ &#039; --extra features after first square bracket&lt;br /&gt;
	local contentend=&#039; ] } ]&#039;&lt;br /&gt;
	table.insert(result, &#039;&amp;lt;div style=&amp;quot;position: absolute;top: 9px;left: &#039;..tostring(maplist.width-34)..&#039;px&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result, &#039;&amp;lt;div style=&amp;quot;color: white; opacity:100; font-size: 19px; font-weight:normal; text-align: left;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result, frame:extensionTag{ name =&#039;maplink&#039;, content=contentstart..table.concat(FullscreenList)..contentend, args={zoom=tostring(maplist.zoom+1), class=&#039;no-icon&#039;, frameless=&#039;1&#039;, &lt;br /&gt;
		latitude=tostring(maplist.latbase), longitude=tostring(maplist.lonbase),      --add invisble &#039;en-spaces&#039; for tooltip &lt;br /&gt;
		text=&#039;&amp;lt;div title=&amp;quot;&#039;..fullscreenlinktext..&#039;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&#039;} } ) &lt;br /&gt;
	table.insert(result,&#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;)    --  end of maplink -----&lt;br /&gt;
&lt;br /&gt;
-- add closing div for main map&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
-- collate caption material to go in the outer div class&lt;br /&gt;
	if captionTable ~= &#039;&#039; and (not args[&#039;auto-caption&#039;]) then args[&#039;auto-caption&#039;]=&#039;on&#039; end --default to include list if using geo values&lt;br /&gt;
	local autocaption=string.lower(args[&#039;auto-caption&#039;] or &#039;no&#039;)&lt;br /&gt;
	local autoOff=autocaption:match(&amp;quot;(%w+)(.*)&amp;quot;) -- select the first word in autocaption and see if it is a negativeAnswer)&lt;br /&gt;
	if negativeAnswer[autoOff] then captionTable=&#039;&#039; end&lt;br /&gt;
	if args.caption or (not negativeAnswer[autoOff]) then &lt;br /&gt;
		table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbcaption&amp;quot; style=&amp;quot;text-align:left&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		if args.caption then &lt;br /&gt;
			table.insert(result,args.caption) &lt;br /&gt;
			if captionTable ~= &#039;&#039; then table.insert(result,&#039;&amp;lt;hr&amp;gt;&#039;) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local columns=tonumber(autoOff:match(&amp;quot;[%d]+&amp;quot;) or &#039;1&#039;)&lt;br /&gt;
	if columns&amp;gt;1 then columns=round(maplist.width/(columns*17), 0) end -- convert from em to px for historical reasons&lt;br /&gt;
	--for k in pairs(dotList) do capchk=capchk..(args[&amp;quot;dotlink&amp;quot;..k] or &#039;&#039;) end&lt;br /&gt;
	&lt;br /&gt;
	local capchk=nil	&lt;br /&gt;
	local captionList = {}&lt;br /&gt;
	for key, value in pairs(dotItemTable) do&lt;br /&gt;
	  -- only add an autocaption line if there is both a dotTag and a dotLink line available and it is not marked as nolist&lt;br /&gt;
    	if value.dotTag and value.dotTag~=&#039;&#039; and (not string.find(value.param1 or &#039;&#039;,&#039;nolist&#039;)) and string.gsub(value.dotLink or &#039;&#039;,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;)~=&#039;&#039; then &lt;br /&gt;
	    		table.insert(captionList, {key = key, value = value}) &lt;br /&gt;
    		if captionTable == &#039;&#039; then&lt;br /&gt;
	    		capchk=true&lt;br /&gt;
	    	else -- add the next line of content to the html table&lt;br /&gt;
				capchk=false&lt;br /&gt;
	    	end&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
	if captionTable ~= &#039;&#039; then&lt;br /&gt;
		table.sort(captionList, function (a,b) return lessthan(string.match(a.value.dotTag,&#039;[%w]+&#039;), string.match(b.value.dotTag,&#039;[%w]+&#039;)) end)&lt;br /&gt;
		for k,v in pairs(captionList) do&lt;br /&gt;
			local nval=string.match(v.value.dotTag,&#039;[%w]+&#039;) -- find the first alphanumeric item in the dotTag&lt;br /&gt;
			local ngrp=v.value.group&lt;br /&gt;
			if captionTableText[ngrp] then&lt;br /&gt;
				-- debugmsg(&#039;table text for&#039;..v.value.dotTag..&#039;, &#039;..captionTableText[v.value.group][1]..&#039;, &#039;..captionTableText[v.value.group][2]..&#039;, &#039;..captionTableText[v.value.group][3]..&#039; (&#039;..captionTableText[v.value.group][4]..&#039;)&#039;)&lt;br /&gt;
				local c1,c2&lt;br /&gt;
				c1,c2=checkColors(shapeList[ngrp].shapeColor)&lt;br /&gt;
				local cDot=&#039;&amp;lt;div style=&amp;quot;display:inline-block;line-height:110%;vertical-align:middle; padding:1px 4px;border-radius:8px;border: 0.5px solid black;&#039;&lt;br /&gt;
				cDot=cDot..&#039;background-color:&#039;..c1..&#039;;color:&#039;..c2..&#039;;font-size:88%;font-weight:bold&amp;quot;&amp;gt;&#039;..nval..&#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				captionTable = htmlTableLine(captionTable,cDot,captionTableText[ngrp][1], captionTableText[ngrp][2], captionTableText[ngrp][3], captionTableText[ngrp][4])&lt;br /&gt;
			end&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
 	if capchk and (not negativeAnswer[autoOff]) then  &lt;br /&gt;
		table.sort(captionList, function (a,b) return lessthan(string.match(a.value.dotTag,&#039;[%w]+&#039;), string.match(b.value.dotTag,&#039;[%w]+&#039;)) end)&lt;br /&gt;
		-- local myDivision = string.gsub((args.toggletext or toggletext), &amp;quot;%s+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		if string.find(autocaption,&#039;collaps&#039;) then&lt;br /&gt;
			table.insert(result,&#039;&amp;lt;div class = &amp;quot;wikitable mw-collapsible &#039;)&lt;br /&gt;
			if string.find(autocaption,&#039;collapsed&#039;) then table.insert(result,&#039;mw-collapsed&#039;) end&lt;br /&gt;
			table.insert(result,&#039;&amp;quot; style=&amp;quot;width:100%; line-height: 17px; border-style:none; text-align: center&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&#039;..(args.toggletext or toggletext)..&#039;&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if string.find(autocaption, &#039;columns=&#039;) then&lt;br /&gt;
			columns=string.match(autocaption,&#039;[%d]+&#039;,string.find(autocaption, &#039;columns=&#039;) ) &lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result,&#039;&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot; style=&amp;quot;column-count:&#039;..columns..&#039;; column-rule:solid 1px;text-align:left;padding-top:5px&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		table.sort(dotList,lessthan)&lt;br /&gt;
		local nval,ngrp=&#039;&#039;,&#039;0&#039;&lt;br /&gt;
		for k,v in pairs(captionList) do&lt;br /&gt;
			nval=string.match(v.value.dotTag,&#039;[%w]+&#039;) -- find the first alphanumeric item in the dotTag&lt;br /&gt;
			ngrp=v.value.group or &#039;0&#039;&lt;br /&gt;
			if v.value.dotLink and v.value.dotLink~=&#039;&#039; and nval and nval~=&#039;&#039; then&lt;br /&gt;
				local c1,c2&lt;br /&gt;
				if nval==args.highlight then&lt;br /&gt;
					c1,c2=checkColors(shapeList[&#039;H&#039;].shapeColor)&lt;br /&gt;
				else&lt;br /&gt;
					c1,c2=checkColors(shapeList[ngrp].shapeColor)&lt;br /&gt;
				end&lt;br /&gt;
				table.insert(result,&#039;&amp;lt;div style=&amp;quot;display:inline-block;line-height:110%;vertical-align:middle; padding:1px 4px;border-radius:8px;border: 0.5px solid black;&#039;) &lt;br /&gt;
				table.insert(result,&#039;background-color:&#039;..c1..&#039;;color:&#039;..c2..&#039;;font-size:88%;font-weight:bold&amp;quot;&amp;gt;&#039;..nval..&#039;&amp;lt;/div&amp;gt; &#039;..v.value.dotLink..&#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) -- end for caption-content div&lt;br /&gt;
		if string.find(autocaption,&#039;collaps&#039;) then table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) end -- end for toggle frame&lt;br /&gt;
 	end&lt;br /&gt;
 	if captionTable ~= &#039;&#039; then table.insert(result,captionTable..&#039;&amp;lt;/table&amp;gt;&#039;) end&lt;br /&gt;
	if args.caption or (not negativeAnswer[autoOff]) then table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) end -- end for whole caption frame&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;) -- outer two frames&lt;br /&gt;
	if args.float == &#039;center&#039; or args.float==&#039;centre&#039; then table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) end&lt;br /&gt;
&lt;br /&gt;
	if args[&#039;show-new-format&#039;] == &#039;hints&#039; then -- provide a &#039;format hint panel&#039; in the &#039;Preview Box&#039;&lt;br /&gt;
		local w=&amp;quot;&amp;lt;small&amp;gt;Below are some template hints for  the &#039;sga&#039; compressed version, &amp;quot;&lt;br /&gt;
		w=w..&#039;{{tl|OSM Location dots}}. It can use these, instead of the more verbose {{tl|OSM Location map}} parameter format. &#039;&lt;br /&gt;
	    w=w..&#039;Data is divided between a &amp;quot;ShapeGroup&amp;quot; and the &amp;quot;Dots&amp;quot;, so that a single shapeGroup can be used for multiple dots on the map. &#039;&lt;br /&gt;
	    previewMsg(w..&#039;(nb. the &amp;quot;group&amp;quot; value can be the number or an assigned name of a shapeGroup)&amp;lt;/small&amp;gt;&#039;)&lt;br /&gt;
	&lt;br /&gt;
		w=&#039;&amp;lt;small&amp;gt;{{tl|OSM Location dots}}: | dot(n)=group,lat,lon,dotTag | &#039;&lt;br /&gt;
		w=w..&#039;dotlink=link/tooltip | dotlabel=label,position,dx,dy,param1,info | dotpic=filename  &amp;lt;br&amp;gt;&#039;&lt;br /&gt;
		w=w..&amp;quot;(nb. param1 options include &#039;nolink&#039; &#039;nolist&#039; &#039;nomap&#039; &#039;hemisphere-1&#039; &#039;hemisphere+1&#039;, &#039;noline&#039; - quotes not required, separate with spaces).&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
		w=w..&#039;| sga = Shape,Sizepx,Color,Angledeg  |  sgb= OutlineWidth,Color,Style  |  sgc=TextSize,Color,Angle,bold italic &amp;lt;br&amp;gt;&#039;&lt;br /&gt;
		w=w..&#039;| sgd=TagSizepx,Color,Spacer,Angledeg | sge=LineWidth,Color,Style |  sgf=TextSpacingpx,LineHeight%,Outlinepx,backgroundColor&amp;lt;br&amp;gt;&#039;&lt;br /&gt;
		w=w..&#039;| sgn=Name (optional, to assign a meaningful name) | sgp=Parent (can be the name or number of the parent shapeGroup. &#039;&lt;br /&gt;
		previewMsg(w..&#039;Each shapegroup will inherit values from a parent, stretching back to &amp;quot;sga1&amp;quot; and its default values.)&amp;lt;/small&amp;gt;&#039;)&lt;br /&gt;
		if #pmsg then&lt;br /&gt;
			local dbg={}&lt;br /&gt;
			for i,x in pairs(pmsg) do&lt;br /&gt;
				table.insert(dbg,x..&#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
			end&lt;br /&gt;
			dbg=mw.addWarning(table.concat(dbg))&lt;br /&gt;
			table.insert(result, dbg)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.coordtest then debugmsg(mw.text.nowiki(args.coordtest)) end&lt;br /&gt;
&lt;br /&gt;
	for i,x in pairs(msg) do&lt;br /&gt;
		table.insert(result, x..&#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local itemTab={}&lt;br /&gt;
	maplist.width=tonumber(args.width) or 400&lt;br /&gt;
	maplist.height=tonumber(args.height) or 300&lt;br /&gt;
	if args.coord then &lt;br /&gt;
		itemTab=splitItem(convertCoordsTrad (args.coord),2)&lt;br /&gt;
		maplist.latbase=itemTab[1]	&lt;br /&gt;
		maplist.lonbase=itemTab[2]	&lt;br /&gt;
	else&lt;br /&gt;
		maplist.lonbase=tonumber(args.lon) or 5&lt;br /&gt;
		maplist.latbase=tonumber(args.lat) or 0&lt;br /&gt;
	end&lt;br /&gt;
	maplist.zoom=tonumber(args.zoom) or 1&lt;br /&gt;
	visibleLinks=args.showlinks&lt;br /&gt;
	highlightNum=args.highlight&lt;br /&gt;
	if args.nolabels==&#039;1&#039; then maplist.mapstyle=&#039;osm&#039; else maplist.mapstyle=&#039;osm-intl&#039; end&lt;br /&gt;
	if maplist.width &amp;gt;= 400 and not(args[&#039;show-q-values&#039;]) then args[&#039;show-q-values&#039;] = &#039;1&#039; -- default to on if wider than 400px&lt;br /&gt;
	elseif  maplist.width &amp;lt; 320 then args[&#039;show-q-values&#039;] = &#039;0&#039; end  -- turn off Qvalus if frame is too narrow, even if requested&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:OSM_Location_map&amp;diff=2556</id>
		<title>Module:OSM Location map</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:OSM_Location_map&amp;diff=2556"/>
		<updated>2026-04-05T10:02:57Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard Module:OSM Location map against nil lat/zoom values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
local delink=require(&#039;Module:Delink&#039;).delink&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
local maplist={}&lt;br /&gt;
local sgNames={}&lt;br /&gt;
local highlightOption=false&lt;br /&gt;
local highlightNum&lt;br /&gt;
local visibleLinks&lt;br /&gt;
local geoTotalPop = 0&lt;br /&gt;
local captionTable = &#039;&#039;&lt;br /&gt;
local captionTableText = {}&lt;br /&gt;
&lt;br /&gt;
-- This module creates framed maps of anywhere in the world, at the required scale, and enables annotations, &lt;br /&gt;
-- dots, shapes, lines and other ways to customise the area of the map being shown. It also provides a link&lt;br /&gt;
-- to an interactive fullscreen version, which has locator dots instead of annotations and shapes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- This is the 2025 successor module to a wiki-markup template version of 2024, which itself was a successor &lt;br /&gt;
-- to the &#039;Graph&#039;/VEGA driven template that was begun in 2016, until the Vega version was switched off in 2023.&lt;br /&gt;
&lt;br /&gt;
-- This module is called from template {{OSM Location map}}, which uses the same parameter formats as before.&lt;br /&gt;
&lt;br /&gt;
-- In addition it may at some point be possible to use a more concise parameter format using the template {{OSM Location dots}}&lt;br /&gt;
-- In general the css output from the two formats will be identical, but the the concise version will allow bits of&lt;br /&gt;
-- greater control over some of the settings.&lt;br /&gt;
&lt;br /&gt;
-- see the documentation on the two template pages for details of how to use the mapping features.&lt;br /&gt;
&lt;br /&gt;
-- If language customisation is needed, there are text items below that can be translated. Also see the color table&lt;br /&gt;
-- below with details of how to add additional color names to allow localised alternatives.&lt;br /&gt;
-- (Translating other language shape-types could be possible, but has not currently been contemplated. &lt;br /&gt;
-- Parameter name translation would be harder but likely to be possible, ideally still retaining compatibility &lt;br /&gt;
-- with template calls already written using English).&lt;br /&gt;
&lt;br /&gt;
-- -------------- the following text variables are used within the template, and can be translated as required ---------------&lt;br /&gt;
-- -------------- you may wish to retain the English version as a comment, to keep track of the original phrase --------------&lt;br /&gt;
local negativeAnswer={no=1,&#039;0&#039;-1,off=1}&lt;br /&gt;
local fullscreenlinktext = &#039;Click for interactive fullscreen map with links to nearby articles&#039;&lt;br /&gt;
local toggletext = &#039;List of numbered map items:&#039;&lt;br /&gt;
local termsOfUse = &#039;Maps: terms of use&#039;&lt;br /&gt;
local aboutOSM = &#039;About OpenStreetMaps&#039;&lt;br /&gt;
local yards = &#039;yds&#039;&lt;br /&gt;
local miles = &#039;miles&#039;&lt;br /&gt;
local metres = &#039;m&#039;&lt;br /&gt;
local km = &#039;km&#039;&lt;br /&gt;
local sqkm = &#039;sq.km&#039;&lt;br /&gt;
local year = &#039;year&#039;&lt;br /&gt;
local notFound = &#039;not found&#039;&lt;br /&gt;
local totalItems = &#039;Total&#039;&lt;br /&gt;
local sumOfDatapoints = &#039;sum of datapoints&#039;&lt;br /&gt;
local numberCol = &#039;No.&#039; -- abbreviated for top of column of code numbers&lt;br /&gt;
local wikidataLink = &#039;Wikidata page&#039;&lt;br /&gt;
    &lt;br /&gt;
local shapeList={}             --This sets up the &#039;factoryDefault&#039; shape group 0&lt;br /&gt;
shapeList[&amp;quot;0&amp;quot;]={shapeType=&amp;quot;0&amp;quot;,&lt;br /&gt;
  Name=&amp;quot;initialSettings&amp;quot;,&lt;br /&gt;
  Parent=&amp;quot;0&amp;quot;,&lt;br /&gt;
--sga items for the shape &lt;br /&gt;
  shape=&amp;quot;circle&amp;quot;,&lt;br /&gt;
  shapeSize=&amp;quot;12px&amp;quot;,&lt;br /&gt;
  shapeColor=&amp;quot;blue&amp;quot;,&lt;br /&gt;
  shapeAngle=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
--sgb items for border of the shape&lt;br /&gt;
  outlineWidth=&amp;quot;0.5px&amp;quot;,&lt;br /&gt;
  outlineColor=&amp;quot;darkblue&amp;quot;,&lt;br /&gt;
  outlineStyle=&amp;quot;solid&amp;quot;,&lt;br /&gt;
--sgc items text settings for labels&lt;br /&gt;
  textSZ=&amp;quot;11px&amp;quot;,&lt;br /&gt;
  textCL=&amp;quot;darkgrey&amp;quot;,&lt;br /&gt;
  textNG=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
--sgf further text settings    &lt;br /&gt;
  textSP=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  textLH=&amp;quot;120%&amp;quot;,&lt;br /&gt;
  textOL=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  textBG=&amp;quot;transparent&amp;quot;,&lt;br /&gt;
--sgd items for dotTag text settings&lt;br /&gt;
  tagSize=&amp;quot;10px&amp;quot;,&lt;br /&gt;
  tagColor=&amp;quot;white&amp;quot;,&lt;br /&gt;
  tagSpacer=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  tagAngle=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
--sge items for extension line to connect label to dot&lt;br /&gt;
  textEW=&amp;quot;0px&amp;quot;,&lt;br /&gt;
  textEC=&amp;quot;darkgrey&amp;quot;,&lt;br /&gt;
  textES=&amp;quot;solid&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local   colorList={}			-- used by colorLookup to catch unsupported colors (eg &#039;LimeGreen&#039;), to convert to generic version&lt;br /&gt;
colorList[&#039;green&#039;]=&#039;hardgreen&#039;	-- it could also be added to to include alternative language equivelants, for a quick solution.&lt;br /&gt;
colorList[&#039;red&#039;]=&#039;hardred&#039;		-- colorList [&#039;source&#039;] = target    &lt;br /&gt;
colorList[&#039;white&#039;]=&#039;white&#039;		-- converts any color that includes &#039;source&#039; into its equivelent target&lt;br /&gt;
colorList[&#039;blue&#039;]=&#039;hardblue&#039;	-- note, for translation you can add to this list, rather than replace it,  &lt;br /&gt;
colorList[&#039;brown&#039;]=&#039;brown&#039;		-- which would mean existing map definitions in english would also still work, alongside translated ones&lt;br /&gt;
colorList[&#039;grey&#039;]=&#039;hardgrey&#039;&lt;br /&gt;
colorList[&#039;gray&#039;]=&#039;hardgrey&#039;&lt;br /&gt;
colorList[&#039;purple&#039;]=&#039;hardpurple&#039;&lt;br /&gt;
colorList[&#039;orange&#039;]=&#039;hardorange&#039;&lt;br /&gt;
colorList[&#039;leaf&#039;]=&#039;hardleaf&#039;&lt;br /&gt;
&lt;br /&gt;
--for a more thorough translation, you can add all the variants of the colors as further CTB elements and hex values or redirects&lt;br /&gt;
local CTB={} -- set up a table of color names (the CTB Color table index) and html hash colorhex values.&lt;br /&gt;
CTB[&amp;quot;paleblue&amp;quot;],CTB[&amp;quot;softblue&amp;quot;],CTB[&amp;quot;hardblue&amp;quot;],CTB[&amp;quot;darkblue&amp;quot;]=&amp;quot;#D6E1EC&amp;quot;,&amp;quot;#77A1CB&amp;quot;,&amp;quot;#4B77D6&amp;quot;,&amp;quot;#1c559e&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palered&amp;quot;],CTB[&amp;quot;softred&amp;quot;],CTB[&amp;quot;hardred&amp;quot;],CTB[&amp;quot;darkred&amp;quot;] = &amp;quot;#FCC6C0&amp;quot;,&amp;quot;#EC644B&amp;quot;,&amp;quot;#DB3123&amp;quot;,&amp;quot;#AA1205&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palegreen&amp;quot;],CTB[&amp;quot;softgreen&amp;quot;],CTB[&amp;quot;hardgreen&amp;quot;],CTB[&amp;quot;darkgreen&amp;quot;]= &amp;quot;#D2F0E5&amp;quot;,&amp;quot;#81AF81&amp;quot;,&amp;quot;#269F46&amp;quot;,&amp;quot;#0b7527&amp;quot;&lt;br /&gt;
CTB[&amp;quot;paleleaf&amp;quot;],CTB[&amp;quot;softleaf&amp;quot;],CTB[&amp;quot;hardleaf&amp;quot;],CTB[&amp;quot;darkleaf&amp;quot;]= &amp;quot;#dff5c1&amp;quot;,&amp;quot;#b5e376&amp;quot;,&amp;quot;#8cc244&amp;quot;,&amp;quot;#679c21&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palegrey&amp;quot;],CTB[&amp;quot;softgrey&amp;quot;],CTB[&amp;quot;hardgrey&amp;quot;],CTB[&amp;quot;darkgrey&amp;quot;]= &amp;quot;#E8E8D6&amp;quot;,&amp;quot;#AAAA88&amp;quot;,&amp;quot;#777755&amp;quot;,&amp;quot;#444433&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palegray&amp;quot;],CTB[&amp;quot;softgray&amp;quot;],CTB[&amp;quot;hardgray&amp;quot;],CTB[&amp;quot;darkgray&amp;quot;]=CTB[&amp;quot;palegrey&amp;quot;],CTB[&amp;quot;softgrey&amp;quot;],CTB[&amp;quot;hardgrey&amp;quot;],CTB[&amp;quot;darkgrey&amp;quot;]&lt;br /&gt;
CTB[&amp;quot;palebrown&amp;quot;],CTB[&amp;quot;softbrown&amp;quot;],CTB[&amp;quot;hardbrown&amp;quot;],CTB[&amp;quot;darkbrown&amp;quot;]=&amp;quot;#FAF6ED&amp;quot;,&amp;quot;#CCB56C&amp;quot;,&amp;quot;#AD7F14&amp;quot;,&amp;quot;#754910&amp;quot;&lt;br /&gt;
CTB[&amp;quot;palepurple&amp;quot;],CTB[&amp;quot;softpurple&amp;quot;],CTB[&amp;quot;hardpurple&amp;quot;],CTB[&amp;quot;darkpurple&amp;quot;]=&amp;quot;#e0d1e6&amp;quot;,&amp;quot;#c784e0&amp;quot;,&amp;quot;#a029cf&amp;quot;,&amp;quot;#7a05a8&amp;quot;&lt;br /&gt;
CTB[&amp;quot;paleorange&amp;quot;],CTB[&amp;quot;softorange&amp;quot;],CTB[&amp;quot;hardorange&amp;quot;],CTB[&amp;quot;darkorange&amp;quot;]=&amp;quot;#ffedc2&amp;quot;,&amp;quot;#ffcf61&amp;quot;,&amp;quot;#EEB533&amp;quot;,&amp;quot;#e39f05&amp;quot;&lt;br /&gt;
CTB[&amp;quot;black&amp;quot;],CTB[&amp;quot;white&amp;quot;],CTB[&amp;quot;yellow&amp;quot;]=&amp;quot;#000000&amp;quot;,&amp;quot;#FFFFFF&amp;quot;,&amp;quot;#FAF039&amp;quot;&lt;br /&gt;
CTB[&amp;quot;background&amp;quot;],CTB[&amp;quot;paleground&amp;quot;],CTB[&amp;quot;beigeground&amp;quot;]=&amp;quot;#f9f6f2&amp;quot;,&amp;quot;#FEFEFA&amp;quot;,&amp;quot;#F5F5DC&amp;quot;&lt;br /&gt;
CTB[&amp;quot;beige&amp;quot;]=CTB[&amp;quot;beigeground&amp;quot;]&lt;br /&gt;
CTB[&amp;quot;aqua&amp;quot;],CTB[&amp;quot;teal&amp;quot;],CTB[&amp;quot;fuchsia&amp;quot;] = &amp;quot;#00FFFF&amp;quot;,&amp;quot;#008080&amp;quot;,&amp;quot;#FF00FF&amp;quot;&lt;br /&gt;
CTB[&amp;quot;maroon&amp;quot;],CTB[&amp;quot;olive&amp;quot;],CTB[&amp;quot;navy&amp;quot;] = &amp;quot;#800000&amp;quot;,&amp;quot;#808000&amp;quot;,&amp;quot;#000080&amp;quot;&lt;br /&gt;
CTB[&amp;quot;lime&amp;quot;],CTB[&amp;quot;limegreen&amp;quot;],CTB[&amp;quot;aquamarine&amp;quot;] = &amp;quot;#00FF00&amp;quot;,&amp;quot;#32CD32&amp;quot;,&amp;quot;#7FFFD4&amp;quot;&lt;br /&gt;
CTB[&amp;quot;silver&amp;quot;],CTB[&amp;quot;yellow&amp;quot;],CTB[&amp;quot;orchid&amp;quot;] = &amp;quot;#800000&amp;quot;,&amp;quot;#FFFF00&amp;quot;,&amp;quot;#DA70D6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- set up a table of predefined clip-paths&lt;br /&gt;
local pathshape={}&lt;br /&gt;
pathshape.squaredd = &amp;quot;M 19,1.25 l 0,18 -18,0 0,-18 18,0m-1,1 -16,0 0,16 16,0 0,-16m-1,1 0,14 -14,0 0,-14 14,0zm-1,1 -12,0 0,12 12,0 0,-12zm-1,1 0,10 -10,0 0,-10 10,0z&amp;quot;&lt;br /&gt;
pathshape.squared =  &amp;quot;M 18,2.5 l 0,15 -15,0 0,-15 15,0m-1,1 -13,0 0,13 13,0 0,-13zm-1,1 0,11 -11,0 0,-11 11,0z&amp;quot;&lt;br /&gt;
pathshape.triangledd=&amp;quot;M 0 20,20 20,10 0,0 20ZM1.5 19,10 1.7,18.5 19,1.5 19ZM3 18,17 18,10 3.8,3 18ZM4.5 17,10 5.4,15.4 17, 4.5,17ZM6 16,13.8 16,10 7.4z&amp;quot;&lt;br /&gt;
pathshape.triangled =&amp;quot;M1,18 l 18,0 l -9,-18 l -9,18zm1.7,-1.1 l 7.3,-14.6 l 7.3,14.6 l -14.6, 0zm1.7,-1 l 11.0,0 l -5.5,-11 l -5.5,11z&amp;quot;&lt;br /&gt;
pathshape.circledd = &amp;quot;M0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm0.8,0a9.2,9.2 0 1,1 18.4,0a9.2,9.2 0 1,1 -18.4,0m1,0a8.2,8.2 0 1,0 16.4,0a8.2,8.2 0 1,0 -16.4,0zm0.8,0a7.2,7.2 0 1,1 14.8,0a7.2,7.2 0 1,1 -14.8,0m1,0 a6.4,6.4 0 1,1 12.8,0a6.4,6.4 0 1,1 -12.8,0z&amp;quot;&lt;br /&gt;
pathshape.circled =  &amp;quot;M2.5,10a7.5,7.5 0 1,0 15,0a7.5,7.5 0 1,0 -15,0zm1,0a6.5,6.5 0 1,1 13,0a6.5,6.5 0 1,1 -13,0m0.8,0 a5,5 0 1,1 11.4,0a5,5 0 1,1 -11.4,0&amp;quot;&lt;br /&gt;
pathshape.diamond =  &amp;quot;M3,10 l 7,-10 l 7,10 -7,10 -7,-10z&amp;quot;&lt;br /&gt;
pathshape.diamondd = &amp;quot;M3,10 l 7,-10 l 7,10 -7,10 -7,-10zm1,0 l 6,8.5 l 6,-8.5 -6,-8.5 -6,8.5zm1,0 l 5,-7 5,7 -5,7 -5,-7z&amp;quot;&lt;br /&gt;
pathshape.diamonddd = &amp;quot;M3,10 l 7,-10 l 7,10 -7,10 -7,-10zm0.75,0 l 6.25,9 l 6.25,-9 -6.25,-9 -6.25,9zm0.75,0 l 5.5,-8 5.5,8 -5.5,8 -5.5,-8zm0.75,0 l 4.75,7 l 4.75,-7 -4.75,-7 -4.75,7zm0.75,0 l 4,-6 4,6 -4,6 -4,-6z&amp;quot;&lt;br /&gt;
pathshape.crossd = &amp;quot;M3.1,12.5 l4.2,0 l0,4.2 l5,0 l0,-4 l4.2,0 l0,-5 l-4.2,0 l0,-4.2 l-5,0 l0,4.2 l-4.2,0zM2.3,10a7.5,7.5 0 1,0 15,0a7.5,7.5 0 1,0 -15,0zm1,0a6.5,6.5 0 1,1 13,0a6.5,6.5 0 1,1 -13,0z&amp;quot;&lt;br /&gt;
pathshape.cross = &amp;quot;M3.1,12.5 l4.2,0 l0,4.2 l5,0 l0,-4 l4.2,0 l0,-5 l-4.2,0 l0,-4.2 l-5,0 l0,4.2 l-4.2,0z&amp;quot;&lt;br /&gt;
pathshape.thincross = &amp;quot;M2,12 l6,0 l0,6 l4,0 l0,-6 l6,0 l0,-4 l-6,0 l0,-6 l-4,0 l0,6 l-6,0z&amp;quot;&lt;br /&gt;
pathshape.fivepointstar = &amp;quot;M10 0 L12.245 6.91 19.511 6.91 13.633 11.18 15.878 18.09 10 13.82 4.122 18.09 6.367 11.18 0.489 6.91 7.755 6.91Z&amp;quot;&lt;br /&gt;
pathshape.fivepointstard = &amp;quot;M10 1.5 L 11.90825 7.3735 18.08435 7.3735 13.08805 11.003 14.9963 16.8765 10 13.247 5.0037 16.8765 6.91195 11.003 1.91565 7.3735 8.09175 7.3735 ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.sixpointstar = &amp;quot;M10 0 L12.323 5.977 18.66 5 14.645 10 18.66 15 12.323 14.023 10 20 7.677 14.023 1.34 15 5.355 10 1.34 5 7.677 5.977Z&amp;quot;&lt;br /&gt;
pathshape.sixpointstard = &amp;quot;M10 1.5 L 11.97455 6.58045 17.361 5.75 13.94825 10 17.361 14.25 11.97455 13.41955 10 18.5 8.02545 13.41955 2.639 14.25 6.05175 10 2.639 5.75 8.02545 6.58045 ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.sevenpointstar = &amp;quot;M10 0 L12.048 5.747 17.818 3.765 14.602 8.95 19.749 12.225 13.69 12.943 14.339 19.01 10 14.72 5.661 19.01 6.31 12.943 0.251 12.225 5.398 8.95 2.182 3.765 7.952 5.747Z&amp;quot;&lt;br /&gt;
pathshape.sevenpointstard = &amp;quot;M10 1.5 L11.7408 6.38495 16.6453 4.70025 13.9117 9.1075 18.28665 11.89125 13.1365 12.50155 13.68815 17.6585 10 14.012 6.31185 17.6585 6.8635 12.50155 1.71335 11.89125 6.0883 9.1075 3.3547 4.70025 8.2592 6.38495 ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.eightpointstar = &amp;quot;M10 0 L11.88 5.46 17.071 2.929 14.54 8.12 20 10 14.54 11.88 17.071 17.071 11.88 14.54 10 20 8.12 14.54 2.929 17.071 5.46 11.88 0 10 5.46 8.12 2.929 2.929 8.12 5.46Z&amp;quot;&lt;br /&gt;
pathshape.eightpointstard = &amp;quot;M10 0 L10 1.5 L11.598 6.141 16.01035 3.98965 13.859 8.402 18.5 10 13.859 11.598 16.01035 16.01035 11.598 13.859 10 18.5 8.402 13.859 3.98965 16.01035 6.141 11.598 1.5 10 6.141 8.402 3.98965 3.98965 8.402 6.141ZM0,10a10,10 0 1,0 20,0a10,10 0 1,0 -20,0zm1.5,0a8.5,8.5 0 1,1 17,0a8.5,8.5 0 1,1 -17,0z&amp;quot;&lt;br /&gt;
pathshape.ring=&amp;quot;M2.6,9.5a7.5,7.5 0 1,0 15,0a7.5,7.5 0 1,0 -15,0zm1,0a6.5,6.5 0 1,1 13,0a6.5,6.5 0 1,1 -13,0z&amp;quot;&lt;br /&gt;
pathshape.semicircle = &amp;quot;M0,5 C0,18.3,20,18.3,20,5 L 0,5z&amp;quot;&lt;br /&gt;
pathshape.arrowhead = &amp;quot;M 10,10.2 l 10,2.8 -2,-3 2,-3 -10,2.8 -0.2,0.2z&amp;quot;&lt;br /&gt;
pathshape.boxd=pathshape.squared &lt;br /&gt;
pathshape.boxdd=pathshape.squaredd&lt;br /&gt;
pathshape.ellipsed=pathshape.circled &lt;br /&gt;
pathshape.ellipsedd=pathshape.circledd &lt;br /&gt;
&lt;br /&gt;
local msg={}&lt;br /&gt;
local function debugmsg(txt)&lt;br /&gt;
	table.insert(msg,txt)&lt;br /&gt;
end&lt;br /&gt;
local pmsg={}&lt;br /&gt;
local function previewMsg(txt)&lt;br /&gt;
	table.insert(pmsg,txt)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function colorLookup(color)&lt;br /&gt;
  for c,l in pairs(colorList) do&lt;br /&gt;
    if string.find(color,c) then return l end&lt;br /&gt;
  end&lt;br /&gt;
  return color&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getColor (color,chk)&lt;br /&gt;
    local c&lt;br /&gt;
    local opacity=&amp;quot;100&amp;quot;&lt;br /&gt;
    if not color or color==&#039;&#039; then color=&#039;hardgrey&#039; end&lt;br /&gt;
    if color==&amp;quot;transparent&amp;quot; then return color end&lt;br /&gt;
    if color==&amp;quot;background1&amp;quot; then color=&#039;background&#039; end&lt;br /&gt;
    if string.byte(color,1,1)==35 and (#color == 7 or #color == 9) then&lt;br /&gt;
    	 c=color&lt;br /&gt;
    elseif string.byte(color,1,1)==35 and #color == 4 then&lt;br /&gt;
    	 c=string.sub(color,1,2)..&#039;f&#039;..string.sub(color,3,3)..&#039;f&#039;..string.sub(color,4,4)..&#039;f&#039;&lt;br /&gt;
    else&lt;br /&gt;
    	local s=color..&#039;1&#039;&lt;br /&gt;
    	s= s:sub(0,s:find(&amp;quot;%d&amp;quot;)-1)&lt;br /&gt;
    	opacity=string.match(color,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    	if not CTB[s] then s= colorList[s] end -- check for synonyms and translations&lt;br /&gt;
    	if not CTB[s] then debugmsg(mw.addWarning(&#039;color = &#039;..color..&#039;. The color name is not defined. Used default grey instead&#039;)) end&lt;br /&gt;
    	c=CTB[s] or CTB.hardgrey&lt;br /&gt;
    end&lt;br /&gt;
    if opacity and (tonumber(opacity) &amp;lt; 100) and string.find(c,&amp;quot;#&amp;quot;)==1 and string.len(c)==7 and opacity~=&amp;quot;&amp;quot; then&lt;br /&gt;
        local hexval=string.format(&amp;quot;%x&amp;quot;,(math.floor(tonumber(opacity)*2.55)))&lt;br /&gt;
        c=c..hexval&lt;br /&gt;
    end&lt;br /&gt;
    return c&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.colorvalue(frame)   -- enable external access to the CTB colorTable values. usage: {{#invoke:OSM Location map|colorvalue|color=hard blue}}&lt;br /&gt;
	local c&lt;br /&gt;
	if not frame.args.color or frame.args.color==&#039;&#039; then c=&#039;grey&#039;&lt;br /&gt;
	else c=string.lower(string.gsub(frame.args.color,&#039;%s+&#039;,&#039;&#039;)) end&lt;br /&gt;
	return string.upper(string.sub(getColor(c),2))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function checkColors(color)&lt;br /&gt;
	local c=getColor(color,&#039;check&#039;)&lt;br /&gt;
	local opacity =1 -- calculate colour brightness and return black or white for contrast&lt;br /&gt;
	if c==&#039;transparent&#039; then return c,&#039;#000000&#039;,0 end&lt;br /&gt;
	if not (string.find(c,&#039;#&#039;)==1) then return c,&#039;#FFFFFF&#039;,0 end&lt;br /&gt;
	if #c&amp;gt;8 then opacity= tonumber(&#039;0x&#039;..(string.sub(c,8,9)))/500 end&lt;br /&gt;
	local r=tonumber(&#039;0x&#039;..(string.sub(c,2,3)))/255&lt;br /&gt;
    local g=tonumber(&#039;0x&#039;..(string.sub(c,4,5)))/255&lt;br /&gt;
    local b=tonumber(&#039;0x&#039;..(string.sub(c,6,7)))/255&lt;br /&gt;
    if 0.2126 * r + 0.7152 * g + 0.0722 * b / opacity &amp;lt; 0.7 then&lt;br /&gt;
		return c,&#039;#FFFFFF&#039;,0.2126 * r + 0.7152 * g + 0.0722 * b / opacity&lt;br /&gt;
	else return c,&#039;#000000&#039;,0.2126 * r + 0.7152 * g + 0.0722 * b / opacity&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function morethan(a,b)&lt;br /&gt;
	if tonumber(string.match(a, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) and tonumber(string.match(b, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) then&lt;br /&gt;
	  a = tonumber(string.match(a, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;) )&lt;br /&gt;
	  b = tonumber(string.match(b, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;) or &#039;0&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return a&amp;gt;b&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function lessthan(a,b)&lt;br /&gt;
  if tonumber(string.match(a, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) and tonumber(string.match(b, &#039;%f[%d]%d[,.%d]*%f[%D]&#039;)) then&lt;br /&gt;
    a = tonumber(string.match(a, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;))&lt;br /&gt;
    b = tonumber(string.match(b, &#039;%-?%f[%d]%d[,.%d]*%f[%D]&#039;) or &#039;0&#039;)&lt;br /&gt;
  end&lt;br /&gt;
  return a&amp;lt;b&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getsize(size)&lt;br /&gt;
    --size1 is between 1 and 3 values, each with px, equating to width,height,corner-rounding&lt;br /&gt;
    --eg &#039;15px 25px 5px&#039; (spaces are optional) or &#039;18px&#039;. returns three numbers&lt;br /&gt;
    local sizeval = {}&lt;br /&gt;
    for v in string.gmatch(size, &amp;quot;[^px]+&amp;quot;) do&lt;br /&gt;
        table.insert(sizeval,v)&lt;br /&gt;
    end&lt;br /&gt;
    sizeval[1] = tonumber(sizeval[1]) or 13&lt;br /&gt;
    sizeval[2] = tonumber(sizeval[2]) or sizeval[1]&lt;br /&gt;
    sizeval[3] = tonumber(sizeval[3]) or 0&lt;br /&gt;
    &lt;br /&gt;
    return sizeval[1],sizeval[2],sizeval[3]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function coord2text(coord) -- looks through the output from {{coord}} to find the lat and long decimal values &lt;br /&gt;
	                       -- and converts compass points to minus or not-minus, return with separating comma.&lt;br /&gt;
	local lat = string.match(coord,&#039;[%.%d]+°[NS]&#039;)&lt;br /&gt;
	local lon = string.match(coord,&#039;[%.%d]+°[EW]&#039;)&lt;br /&gt;
	local neg={N=&amp;quot;&amp;quot;,S=&amp;quot;-&amp;quot;,W=&amp;quot;-&amp;quot;,E=&amp;quot;&amp;quot;}&lt;br /&gt;
	return neg[string.match(lat, &#039;[NS]&#039;)]..string.match(lat,&#039;[%.%d]+&#039;)..&amp;quot;,&amp;quot;..neg[string.match(lon, &#039;[EW]&#039;)]..string.match(lon,&#039;[%.%d]+&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function convertCoordsTrad (row)&lt;br /&gt;
	local coords=&#039;&#039;&lt;br /&gt;
	if row and string.find (row,&#039;&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&#039;) then &lt;br /&gt;
		local a,b=string.find(row,&#039;&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		local start=b+1&lt;br /&gt;
    	a,b=string.find(row,&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;,b)&lt;br /&gt;
    	local finish=a-1&lt;br /&gt;
    	coords=string.sub(row,start,finish)&lt;br /&gt;
    	coords=string.gsub(coords,&#039;; &#039;,&#039;,&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return coords&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function convertCoords (row)&lt;br /&gt;
	local start,finish,lat,lon,coords,says&lt;br /&gt;
	if row then&lt;br /&gt;
		local a,b=string.find(row,&amp;quot;&amp;lt;span class=&amp;quot;)&lt;br /&gt;
		start=a&lt;br /&gt;
		while a do -- find the final span&amp;gt;&lt;br /&gt;
    		finish=b&lt;br /&gt;
    		a,b=string.find(row,&amp;quot;span&amp;gt;&amp;quot;,b)&lt;br /&gt;
		end&lt;br /&gt;
		if start then&lt;br /&gt;
			coords= string.sub(row,start,finish)&lt;br /&gt;
			says=&amp;quot;&amp;quot;&lt;br /&gt;
			if string.find(coords,&#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&#039;) then&lt;br /&gt;
				error(&amp;quot;coord error: badly formed coordinates&amp;quot;,0)&lt;br /&gt;
			end&lt;br /&gt;
			coords=coord2text(coords)&lt;br /&gt;
			coords = string.sub(row,1,start-1)..coords..string.sub(row,finish+1)&lt;br /&gt;
		else &lt;br /&gt;
			coords=row&lt;br /&gt;
		end&lt;br /&gt;
		return coords&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;Nothing to see here&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function fillCommas(val,max)&lt;br /&gt;
  local line=&#039;&#039;&lt;br /&gt;
  if not val then line=&#039;,&#039; -- ensure there is some content&lt;br /&gt;
  else line = val --string.lower(string.gsub(val,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;)) -- or strip spaces&lt;br /&gt;
  end &lt;br /&gt;
  if string.find(line,&#039;,&#039;) == 1 then line=&#039; &#039;..line end -- ensure initial comma is not skipped&lt;br /&gt;
  local _, count=string.gsub(line,&amp;quot;,&amp;quot;,&amp;quot;&amp;quot;) -- add enough subsequent commas for all entries&lt;br /&gt;
  line=line..string.rep(&#039;,&#039;,max-count)&lt;br /&gt;
  while(string.find(line,&amp;quot;,,&amp;quot;) ) do&lt;br /&gt;
    line=string.gsub(line,&amp;quot;,,&amp;quot;,&amp;quot;, ,&amp;quot;) --ensure string.gmatch doesn&#039;t ignore any empty items by padding with spaces&lt;br /&gt;
  end&lt;br /&gt;
  return line&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLinkBox(left,top,wid,label, link)&lt;br /&gt;
	local linkBoxName=&#039;Transparent square.svg&#039;&lt;br /&gt;
	if visibleLinks or &#039;&#039; ==&#039;yes&#039; then linkBoxName=&#039;Red hollow square.svg&#039; end&lt;br /&gt;
	local builder = mw.html.create(&#039;div&#039;) --display:inline-block; &lt;br /&gt;
	local t= string.find(label,&#039;wikidata&#039;) -- exclude wikidata from tooltip line&lt;br /&gt;
	if t then&lt;br /&gt;
		label=string.sub(label,1,t-2)                      -- don&#039;t show wikidata value in tooltip&lt;br /&gt;
		if string.find(link,&#039;wikidata&#039;) then link = &#039;&#039; end -- don&#039;t link on click to wikidata (if there was not another link)&lt;br /&gt;
	end&lt;br /&gt;
	builder&lt;br /&gt;
		:cssText(&#039;position:absolute;left:&#039;..tostring(left-1-wid/2)..&#039;px;top:&#039;..tostring(top-1 + math.min(wid/2-12,0) - wid/2)..&#039;px&#039;)&lt;br /&gt;
		:wikitext(string.format( &#039;[[File:%s|%dpx|link=%s|%s]]&#039;, linkBoxName, wid+2, link, label	))&lt;br /&gt;
	return tostring(builder)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractItem(row,searchItem) &lt;br /&gt;
-- remove text following a searchItem or start of line, which might be in quote-marks to allow commas&lt;br /&gt;
  local xend,xstart=1,0&lt;br /&gt;
  if not row then return &#039;&#039;,&#039;&#039; end&lt;br /&gt;
  if searchItem then xend,xstart= string.find(row or &#039;&#039;,searchItem or &#039;image:&#039;) end&lt;br /&gt;
  if not xstart then return string.gsub(string.gsub(row or &#039;&#039;,&amp;quot;%b\&amp;quot;\&amp;quot;&amp;quot;, &#039;&#039;),&amp;quot;%b\&#039;\&#039;&amp;quot;, &#039;&#039;) or &#039;&#039;,&#039;&#039; end&lt;br /&gt;
  while row:byte(xstart+1) == 32 and xstart&amp;lt;#row do  -- skip over any leading spaces&lt;br /&gt;
    xstart=xstart+1 &lt;br /&gt;
  end&lt;br /&gt;
  local xbyte=row:byte(xstart+1)&lt;br /&gt;
  if xbyte == 34 or xbyte == 39 then -- are they wrapped in single or double quotes&lt;br /&gt;
    xstart=xstart+1&lt;br /&gt;
    xend=row:find(string.char(xbyte),xstart+1)&lt;br /&gt;
  else&lt;br /&gt;
    xend = row:find(&#039;,&#039;,xstart+1) -- if no quotes, we assume no commas&lt;br /&gt;
    if not xend then xend=#row+1 end&lt;br /&gt;
  end  -- return residual row and extracted text&lt;br /&gt;
  return row:sub(0,xstart)..row:sub(xend), row:sub(xstart+1,xend-1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function itemCheck(item,ext)&lt;br /&gt;
	if not item then return nil end&lt;br /&gt;
	if not ext then ext=&#039;&#039; end&lt;br /&gt;
    return (string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;) or &#039;0&#039;)..ext&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function stripdivs(line)&lt;br /&gt;
   return string.gsub(line or &#039;&#039;,&amp;quot;%b&amp;lt;&amp;gt;&amp;quot;, &#039; &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function splitItem(item,max) -- takes a commas-sep list and returns a table of lowercase items with no spaces, or nil&lt;br /&gt;
	local r={}&lt;br /&gt;
	local x=1&lt;br /&gt;
	item=string.lower(fillCommas(item,max))&lt;br /&gt;
	for t in string.gmatch(item,&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
	    r[x]=string.gsub(t,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	    if r[x]==&#039;&#039; then r[x]= nil else -- residual items might have commas&lt;br /&gt;
	    	if x&amp;gt;max then r[max]=(r[max] or &#039;&#039;)..&#039;, &#039;..r[x] end&lt;br /&gt;
	    end&lt;br /&gt;
	    x=x+1&lt;br /&gt;
	end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ParseShapeTypes (result,args,sgval) -- for use with compressed, comma-separated &#039;sg plus dots&#039; parameters&lt;br /&gt;
	--[[ shape table items and default values as set at top of page&lt;br /&gt;
	shapeType=&amp;quot;0&amp;quot;,	Name=&amp;quot;initialSettings&amp;quot;,  Parent=&amp;quot;0&amp;quot;,&lt;br /&gt;
	--sga items for the shape 	shape=&amp;quot;circle&amp;quot;, 	shapeSize=&amp;quot;12px&amp;quot;,		shapeColor=&amp;quot;blue&amp;quot;,  shapeAngle=&amp;quot;0deg&amp;quot;,&lt;br /&gt;
	--sgb items for border		outlineWidth=&amp;quot;0.5px&amp;quot;, outlineColor=&amp;quot;darkblue&amp;quot;,  outlineStyle=&amp;quot;solid&amp;quot;,&lt;br /&gt;
	--sgc items label text  	textSZ=&amp;quot;11px&amp;quot;,  	textCL=&amp;quot;white&amp;quot;,			textNG=&amp;quot;0deg&amp;quot;, textAT=attributes (&amp;quot;bold&amp;quot; and/or &amp;quot;italic&amp;quot;)&lt;br /&gt;
	--sgd items for dotTag	tagSize=&amp;quot;11px&amp;quot;,	tagColor=&amp;quot;darkgrey&amp;quot;,	tagSpacer=&amp;quot;0px&amp;quot;,	tagAngle=&amp;quot;0deg&amp;quot;,	&lt;br /&gt;
	--sge extension line		textEW=&amp;quot;1px&amp;quot;,		textEC=&amp;quot;darkblue&amp;quot;,  	textES=&amp;quot;solid&amp;quot;&lt;br /&gt;
	--sgf fx for text labels	textSP=&amp;quot;0px&amp;quot;		textLH=&amp;quot;100%&amp;quot;			textOL=&amp;quot;1px&amp;quot;,		textBG=&amp;quot;paleground&amp;quot;,	&lt;br /&gt;
	&amp;lt;!--| sga = shape,Size,Color,Angle|sgb= outlineWidth,color,style eg: sga1=circle,14px,blue,0deg| sgb1=0px,dark grey,solid&lt;br /&gt;
    | sgc=textSize,color,angle,bold/italic  | sgd=tagSize,Color,Spacer,Angle  eg: sgc1=11px,dark grey,0deg,normal| sgd1=9px,white,0px,0deg&lt;br /&gt;
    | sge=lineWidth,color,style |sgf=textspacing,lineHeight%,outlinepx,backgroundcolor, [bold,italic] eg: sge1=0px,black, solid| sgf1=0px,120%,0px,background&lt;br /&gt;
    | dot=shape-group/lat/lon/title/dotTag | dotlink=link or tooltip | dotlabel=label,position,dx,dy,param1,info| dotpic=filename--&amp;gt;&lt;br /&gt;
	--]]&lt;br /&gt;
	&lt;br /&gt;
  if args[&amp;quot;sgn&amp;quot;..sgval] then&lt;br /&gt;
  	local sgname=string.match(args[&amp;quot;sgn&amp;quot;..sgval],&amp;quot;(%w+)(.*)&amp;quot;)&lt;br /&gt;
    sgNames[sgname]=sgval&lt;br /&gt;
  end&lt;br /&gt;
  local parent= args[&amp;quot;sgp&amp;quot;..sgval]&lt;br /&gt;
  if parent then &lt;br /&gt;
  	parent=string.match(parent,&amp;quot;(%w+)(.*)&amp;quot;)&lt;br /&gt;
    local pos= string.find(parent,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    if pos == 1 then&lt;br /&gt;
      parent=string.match(parent,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    else&lt;br /&gt;
      parent=sgNames[parent] or &#039;1&#039;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  if sgval~=&#039;H&#039; then&lt;br /&gt;
	if not parent or tonumber(parent) &amp;gt; tonumber(sgval) then &lt;br /&gt;
    	if sgval==&amp;quot;1&amp;quot; then parent=&amp;quot;0&amp;quot; else parent=&amp;quot;1&amp;quot; end&lt;br /&gt;
	end &lt;br /&gt;
  end&lt;br /&gt;
  local itemTab, line, filename&lt;br /&gt;
  result[sgval]={}&lt;br /&gt;
  result[sgval].shapeType=sgval &lt;br /&gt;
  line,filename=extractItem(args[&#039;sga&#039;..sgval] or &#039;&#039;,&#039;image:&#039;)&lt;br /&gt;
  if sgval==&#039;1&#039; and not args.sga1 then line=&#039;circle,12px,blue,0deg&#039; end -- ensure there is a parent=1 sga&lt;br /&gt;
  result[sgval].shapeFile=filename or &#039;&#039;&lt;br /&gt;
-- sga= Attributes for shape&lt;br /&gt;
	itemTab=splitItem(line,4)&lt;br /&gt;
    result[sgval].shape = itemTab[1] or result[parent].shape&lt;br /&gt;
    result[sgval].shapeSize=itemTab[2] or result[parent].shapeSize&lt;br /&gt;
    result[sgval].shapeColor=itemTab[3] or result[parent].shapeColor&lt;br /&gt;
    result[sgval].shapeAngle=itemCheck(itemTab[4],&#039;deg&#039;) or result[parent].shapeAngle&lt;br /&gt;
-- sgb= Border outline attributes for shape&lt;br /&gt;
	itemTab=splitItem(args[&#039;sgb&#039;..sgval],3)&lt;br /&gt;
    result[sgval].outlineWidth=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].outlineWidth &lt;br /&gt;
    result[sgval].outlineColor=itemTab[2] or result[parent].outlineColor&lt;br /&gt;
    result[sgval].outlineStyle=itemTab[3] or result[parent].outlineStyle&lt;br /&gt;
--sgc=character attributes for label&lt;br /&gt;
	itemTab=splitItem(args[&#039;sgc&#039;..sgval],4)&lt;br /&gt;
    result[sgval].textSZ=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].textSZ       -- size of text in px&lt;br /&gt;
    result[sgval].textCL=itemTab[2] or result[parent].textCL       -- colour for text&lt;br /&gt;
    result[sgval].textNG=itemCheck(itemTab[3],&#039;deg&#039;) or result[parent].textNG       -- Angle for text&lt;br /&gt;
    result[sgval].textAT=itemTab[4] or result[parent].textAT -- attributes  bold, and/or italic&lt;br /&gt;
--sgd=dotTag attributes&lt;br /&gt;
  itemTab=splitItem(args[&#039;sgd&#039;..sgval],4)&lt;br /&gt;
	result[sgval].tagSize=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].tagSize&lt;br /&gt;
	result[sgval].tagColor=itemTab[2] or result[parent].tagColor&lt;br /&gt;
	result[sgval].tagSpacer=itemCheck(itemTab[3],&#039;px&#039;) or result[parent].tagSpacer&lt;br /&gt;
	result[sgval].tagAngle=itemCheck(itemTab[4],&#039;deg&#039;) or result[parent].tagAngle&lt;br /&gt;
--sge= extension line attributes&lt;br /&gt;
	itemTab=splitItem(args[&#039;sge&#039;..sgval],4)&lt;br /&gt;
	result[sgval].textEW=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].textEW -- width&lt;br /&gt;
    result[sgval].textEC=itemTab[2] or result[parent].textEC       -- colour &lt;br /&gt;
    result[sgval].textES=itemTab[3] or result[parent].textES       -- style&lt;br /&gt;
--sgf= fx for label text&lt;br /&gt;
	itemTab=splitItem(args[&#039;sgf&#039;..sgval],4)&lt;br /&gt;
    result[sgval].textSP=itemCheck(itemTab[1],&#039;px&#039;) or result[parent].textSP       -- spacing value for letters&lt;br /&gt;
    result[sgval].textLH=itemCheck(itemTab[2],&#039;%&#039;) or result[parent].textLH       -- Angle for text&lt;br /&gt;
    result[sgval].textOL=itemCheck(itemTab[3],&#039;px&#039;) or result[parent].textOL       -- width of text-border line&lt;br /&gt;
    result[sgval].textBG=itemTab[4] or result[parent].textBG       -- color for text background&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function round(x,dec) &lt;br /&gt;
	-- x=number [, dec=integer] returns numeric value with upto dec decimals (all but first trailing zeros get truncated)&lt;br /&gt;
    if (dec or 0)==0 then&lt;br /&gt;
        return x&amp;gt;=0 and math.floor(x+0.5) or math.ceil(x-0.5) --this avoids .0 where dec=0&lt;br /&gt;
    end&lt;br /&gt;
    dec =10^(dec)&lt;br /&gt;
  return x&amp;gt;=0 and math.floor(x*dec+0.5)/dec or math.ceil(x*dec-0.5)/dec&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function maptogrid(t,r,test)&lt;br /&gt;
	--[[ converts mercator projection longitude and latitude coordinates to x and y pixel coordinates, within a frame of given size, centre coordinates and zoom level.&lt;br /&gt;
	t is a table of named indices: {lon, lat, lonbase, latbase, width, height, zoom} &lt;br /&gt;
	output is two values, x and y, rounded to r decimal places--]]&lt;br /&gt;
	local x,y&lt;br /&gt;
    	x=t.width/2 + ( ((math.rad(t.lon)*6378137) - (math.rad(t.lonbase)* 6378137) )  / (156543.03*math.cos(t.latbase/180)/(2^t.zoom) ) )*(1-(0.075*(math.abs(t.latbase)/90)))&lt;br /&gt;
	    y=t.height/2 + ( ( (math.log(math.tan(math.rad(t.latbase)/2+math.pi/4))*6378137) - (math.log(math.tan(math.rad(t.lat)/2+math.pi/4))*6378137) ) / (156543.03*math.cos(t.latbase/180) / (2^t.zoom) ) )*(1-(0.075*(math.abs(t.latbase)/90))) &lt;br /&gt;
    return round(x,r),round(y,r)&lt;br /&gt;
    --source: python code at https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames and https://wiki.openstreetmap.org/wiki/Mercator&lt;br /&gt;
--[[    &lt;br /&gt;
width and height are the size, in pixels, of the map, which will be centerd around lonbase,latbase.&lt;br /&gt;
Method: Convert lon and lonbase to meter-offsets from coord(0,0), and subtract lonbase from lon,&lt;br /&gt;
zoom and latbase are used to scale the resulting meter-offset to pixels, and add it to width/2.&lt;br /&gt;
Convert lat and lat-base to meter-offsets from coord(0,0), subtract lat from latbase,&lt;br /&gt;
scale the resulting meter-offset to pixels, add it to height/2.&lt;br /&gt;
A correction factor &#039;*(1-(0.075*(math.abs(t.latbase)/90) ) )&#039; compensates for an error that seems to creep in towards &lt;br /&gt;
the edges of the map at higher latitudes. It was identified experimentally, and ensures a dot at the edge is &lt;br /&gt;
in the same place as if that location is positioned at the centre.&lt;br /&gt;
&lt;br /&gt;
Original Python code for lat,lon to x,y where 0,0 is the centre of the map&lt;br /&gt;
print(&#039;x=&#039;,width+(((math.radians(lon1) * 6378137)-&lt;br /&gt;
      (math.radians(lonbase) * 6378137))/&lt;br /&gt;
      (156543.03*math.cos(latbase/180)/(2**zoom))),&#039; y=&#039;,height+((&lt;br /&gt;
      (math.log(math.tan(math.pi / 4 + math.radians(latbase) / 2)) * 6378137)-&lt;br /&gt;
      (math.log(math.tan(math.pi / 4 + math.radians(lat1) / 2)) * 6378137))/&lt;br /&gt;
      (156543.03*math.cos(latbase/180)/(2**zoom)))&lt;br /&gt;
     )  --]]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getScale(zoom, lat,magVal)&lt;br /&gt;
	zoom = tonumber(zoom) or 1&lt;br /&gt;
	lat = tonumber(lat) or 0&lt;br /&gt;
	if magVal and magVal&amp;gt;1 and magVal &amp;lt;=2 then zoom=zoom+(magVal-1) end&lt;br /&gt;
	local dist=(156543.03 * math.cos(math.rad(math.abs(lat))) / (2 ^ zoom))/17&lt;br /&gt;
	local y&lt;br /&gt;
	if dist &amp;lt; 1 then&lt;br /&gt;
		y=(round(dist*10,1))&lt;br /&gt;
    	return tostring(y*100)..metres, tostring(round(y*109,0))..yards&lt;br /&gt;
	elseif dist &amp;lt;18 then&lt;br /&gt;
		y=(round(dist,0))&lt;br /&gt;
    	return tostring(y)..km, tostring(round(y*0.621371,1))..miles&lt;br /&gt;
    elseif dist &amp;lt;500 then&lt;br /&gt;
    	y=round(dist/10)&lt;br /&gt;
    	return tostring(y*10)..km, tostring(round(y*6.21371,0))..miles&lt;br /&gt;
	else &lt;br /&gt;
    	y=round(dist/100)&lt;br /&gt;
    	return tostring(y*100)..km, tostring(round(y*62.1371,0))..miles&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ParseData (args,dotval)  -- for use with compressed, comma-separated &#039;sg plus dots&#039; parameters&lt;br /&gt;
    -- takes a structured series of comma-separated items which get parsed as the following:&lt;br /&gt;
    -- dot(n)= (sgNumber or Name),{{coord}} or (lat,lon), (dotTag)&lt;br /&gt;
    -- dotlink(n) = single-parameter text to give wikilink and/or title used by tootlip, fullscreen dots and autocaption list&lt;br /&gt;
    -- dotlabel(n) = &#039;label text&#039;,pos(left,roght,top,bottom,centre,auto),(dx), (dy) pixel offsets,  params, info &lt;br /&gt;
    -- dotpic(n) = single parameter wikimedia filename for an image to use in photopanel and/or fullscreen dots&lt;br /&gt;
    -- dotfeature(n)= &#039;mark-line&#039; (,linewidth,style,gap)  or  &#039;photo-panel&#039; (,image-dim,panel-width,panel-height), draws line to n-1&lt;br /&gt;
    -- label is used if either a position and/or an x,y offset are not 0,0 ( if no label then dotTag will be put at at the x,y offset, or over the dot&lt;br /&gt;
    -- label text can be autoaligned if x,y puts it left or right of the dot, or centered if above/below)&lt;br /&gt;
    -- quote marks are not needed unless including commas within the label text&lt;br /&gt;
    -- param1 is optional items separated by spaces, and can include [nolabel nolist nomap hemisphere+1 hemisphere-1]&lt;br /&gt;
    -- info is free wikitext, to be used in the fullscreen dot box. (use dotpic to show a picture)&lt;br /&gt;
&lt;br /&gt;
    --&amp;lt;!--| dotx=shape-group,[lat,lon or {{coord}} ], dotTag | dotlink=link or tooltip | dotlabel=label,position,dx,dy,param1,info| dotpic=filename--&amp;gt;&lt;br /&gt;
	local result={}&lt;br /&gt;
    local count=1&lt;br /&gt;
    local row = convertCoords (args[&amp;quot;dot&amp;quot;..dotval])  -- swap in any {{coord}} values so they are csv lat and lon&lt;br /&gt;
    row=fillCommas(row,4)&lt;br /&gt;
        result.code=dotval -- store the parameter name as the id code&lt;br /&gt;
    for item in string.gmatch(row,&amp;quot;[^,]+&amp;quot;) do -- iterate through &#039;row&#039;, adding each csv item in turn, if present&lt;br /&gt;
	  if count==1 then --see if it is a number or a name&lt;br /&gt;
	    local pos= string.find(item,&amp;quot;%d+&amp;quot;)&lt;br /&gt;
    	if pos == 1 then&lt;br /&gt;
    		result.group=string.lower(string.gsub(item,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;))&lt;br /&gt;
    	else&lt;br /&gt;
    		item=string.match(item,&amp;quot;(%w+)(.*)&amp;quot;) -- ensure just a single word&lt;br /&gt;
    		result.group=sgNames[item]&lt;br /&gt;
    	end&lt;br /&gt;
      elseif count==2 then &lt;br /&gt;
        result.lat=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0-- find the number, with no non-numeric stuff&lt;br /&gt;
      elseif count==3 then &lt;br /&gt;
        result.lon=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0 &lt;br /&gt;
      elseif count==4 then&lt;br /&gt;
        result.dotTag=item:match( &amp;quot;^%s*(.-)%s*$&amp;quot; ) or &amp;quot;&amp;quot; -- dotTag allows for internal spaces, but no commas&lt;br /&gt;
      end&lt;br /&gt;
      count=count+1&lt;br /&gt;
    end&lt;br /&gt;
    row, result.labelText= extractItem(args[&amp;quot;dotlabel&amp;quot;..dotval])&lt;br /&gt;
    result.labelText= string.gsub(result.labelText,&amp;quot;[%^]+&amp;quot;,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) -- convert hats to line breaks&lt;br /&gt;
    local item=splitItem(row,6)&lt;br /&gt;
    result.labelPos=item[2] or &#039;center&#039;&lt;br /&gt;
    result.dx=tonumber(string.match(item[3] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
    result.dy=tonumber(string.match(item[4] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
    result.param1=string.lower(item[5] or &#039;&#039;)&lt;br /&gt;
    if string.find(result.param1,&amp;quot;hemisphere-1&amp;quot;,1,true) then result.lon=result.lon-360&lt;br /&gt;
    elseif string.find(result.param1,&amp;quot;hemisphere+1&amp;quot;,1,true) then result.lon=result.lon+360&lt;br /&gt;
    end&lt;br /&gt;
    local txt = &#039;&#039;&lt;br /&gt;
    if item[6] then -- ensure all info elements are included, including commas&lt;br /&gt;
    	count=1 &lt;br /&gt;
    	local max=6&lt;br /&gt;
	    for t1 in string.gmatch(fillCommas(row,max),&amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
			if count&amp;gt;max then txt=txt..&#039;,&#039; end&lt;br /&gt;
			if count&amp;gt;=max then txt=txt..t1 end&lt;br /&gt;
			count=count+1&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
    result.info=txt&lt;br /&gt;
	result.imageName = args[&#039;dotpic&#039;..dotval]&lt;br /&gt;
	-- Get first wikilinked item (if any) from the args.dotlink and set this plus the delinked text&lt;br /&gt;
	local testx=args[&amp;quot;dotlink&amp;quot;..dotval] or &#039;&#039;&lt;br /&gt;
	result.dotLink=testx&lt;br /&gt;
	if testx ~= &#039;&#039; then&lt;br /&gt;
		testx=stripdivs(testx)&lt;br /&gt;
		result.title=delink({ testx })&lt;br /&gt;
		local linkstart= string.find(testx,&#039;[[&#039;,1,true) -- use true to ensure a plain search (no pattern)&lt;br /&gt;
		if linkstart then&lt;br /&gt;
			result.dlink=delink( { string.sub(testx,linkstart,string.find(testx,&#039;]]&#039;,1,true)+1),wikilinks=&#039;target&#039; } )&lt;br /&gt;
		else result.dlink=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
        result.dlink=&#039;&#039;&lt;br /&gt;
        result.title=&#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;dotfeature&#039;..dotval] then&lt;br /&gt;
		local item=splitItem(args[&#039;dotfeature&#039;..dotval],6)&lt;br /&gt;
		if (item[1] or &#039;&#039;) ==&#039;photo-panel&#039; then &lt;br /&gt;
			result.ppwidth= tonumber(string.match((item[3] or &#039;110&#039;),&amp;quot;%d+&amp;quot;)) -- panel width&lt;br /&gt;
			result.ppheight= tonumber(string.match((item[4] or &#039;48&#039;),&amp;quot;%d+&amp;quot;) ) --panel height&lt;br /&gt;
			result.photowidth=round(tonumber(string.match((item[2] or &#039;1.3&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)) * result.ppheight+1,0) -- dimension to set image size&lt;br /&gt;
			result.photoImage=result.imageName&lt;br /&gt;
			result.posType=&#039;photo-panel&#039;&lt;br /&gt;
		elseif (item[1] or &#039;&#039;) == &#039;mark-line&#039; then&lt;br /&gt;
			local x=tonumber(dotval or &#039;0&#039;)&lt;br /&gt;
			result.markDest=item[5] or tostring(x-1)&lt;br /&gt;
			result.mlWidth= tonumber(string.match((item[2]) or &#039;&#039;,&amp;quot;%d+&amp;quot;) or &#039;1&#039;)&lt;br /&gt;
			result.mlStyle= item[3] or &#039;solid&#039;&lt;br /&gt;
			result.mlGap=tonumber(string.match((item[4] or &#039;&#039;),&amp;quot;[%d]+&amp;quot;) or &#039;0&#039;)&lt;br /&gt;
			result.posType=&#039;mark-line&#039;&lt;br /&gt;
		end&lt;br /&gt;
		--debugmsg(&#039;photo-panel, &#039;..shapePos[2]..&#039;, 3=&#039;..shapePos[3]..&#039;, 4=&#039;..shapePos[4]..&#039;, 5=&#039;..(shapePos[5] or &#039;(48&#039;)..&#039;photowidth=&#039;..tostring(dotItem.photowidth))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    maplist.lon=result.lon&lt;br /&gt;
	maplist.lat=result.lat&lt;br /&gt;
	result.gridx, result.gridy = maptogrid(maplist,1) -- convert geo coords to grid xy - using values from maplist table&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function multiCheck (args, argName, argVal, defVal, alt)&lt;br /&gt;
	if not alt then alt=&#039;nonexistant&#039; end&lt;br /&gt;
	if argVal==&#039;H&#039; and not args[argName..&#039;H&#039;] then argVal=highlightNum or &#039;1&#039; end&lt;br /&gt;
	if argVal==&#039;&#039; then &lt;br /&gt;
		return (args[argName] or args[alt] or (args[argName..&#039;D&#039;]) or args[alt..&#039;D&#039;] or defVal) -- unnumbered args do not inherit from D or 1&lt;br /&gt;
	else&lt;br /&gt;
		return (args[argName..argVal]) or (args[alt..argVal]) or (args[argName..&#039;D&#039;]) or (args[alt..&#039;D&#039;]) or (args[argName..&#039;1&#039;]) or (args[alt..&#039;1&#039;]) or defVal&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function htmlTableLine (htmlTable,h1,h2,h3,h4,h5,type)&lt;br /&gt;
	if type == &#039;header&#039; then&lt;br /&gt;
		if (h4 or &#039;&#039;) ~= &#039;no-year&#039; then h4=&#039;&amp;lt;th class=&amp;quot;unsortable&amp;quot;&amp;gt;&#039;..h4 or &#039;&#039;..&#039;&amp;lt;/th&amp;gt;&#039; else h4 = &#039;&#039; end&lt;br /&gt;
		if (h5 or &#039;&#039;) ~= &#039;&#039; then h5=&#039;&amp;lt;th class=&amp;quot;unsortable&amp;quot;&amp;gt;&#039;..h5..&#039;&amp;lt;/th&amp;gt;&#039; else h5 = &#039;&#039; end&lt;br /&gt;
		return htmlTable..&#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&#039;..(h1 or &#039;&#039;)..&#039;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&#039;..(h2 or &#039;&#039;)..&#039;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&#039;..(h3 or &#039;&#039;)..&#039;&amp;lt;/th&amp;gt;&#039;..h4..h5..&#039;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		if (h4 or &#039;&#039;) ~= &#039;no-year&#039; then h4=&#039;&amp;lt;td&amp;gt;&#039;..h4 or &#039;&#039;..&#039;&amp;lt;/td&amp;gt;&#039; else h4 = &#039;&#039; end&lt;br /&gt;
		if (h5 or &#039;&#039;) ~= &#039;&#039; then h5=&#039;&amp;lt;td&amp;gt;&#039;..h5..&#039;&amp;lt;/td&amp;gt;&#039; else h5 = &#039;&#039; end&lt;br /&gt;
		return htmlTable..&#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&#039;..(h1 or &#039;&#039;)..&#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&#039;..(h2 or &#039;&#039;)..&#039;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&#039;..(h3 or &#039;&#039;)..&#039;&amp;lt;/td&amp;gt;&#039;..h4..h5..&#039;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatInt(number)&lt;br /&gt;
  if number == 0 then return notFound end&lt;br /&gt;
  local i, j, minus, int, fraction = tostring(number):find(&#039;([-]?)(%d+)([.]?%d*)&#039;)&lt;br /&gt;
  int = int:reverse():gsub(&amp;quot;(%d%d%d)&amp;quot;, &amp;quot;%1,&amp;quot;)&lt;br /&gt;
  return minus .. int:reverse():gsub(&amp;quot;^,&amp;quot;, &amp;quot;&amp;quot;) .. fraction&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function convertToSqKm (value,punit)&lt;br /&gt;
	if string.find(punit, &#039;Q35852&#039;) then value = value / 100 -- convert to sq km if it&#039;s hectares&lt;br /&gt;
    elseif string.find(punit, &#039;Q232291&#039;) then value = value /(1/2.59) -- or this if it&#039;s square miles&lt;br /&gt;
    elseif string.find(punit, &#039;Q81292&#039;) then value = value / 247.1 -- or this if it&#039;s acres&lt;br /&gt;
    end&lt;br /&gt;
    return value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function assignTradstyleShape(shapeResult,default,dotResult,args,nval)&lt;br /&gt;
	local item,itemTab&lt;br /&gt;
	local autoDotTag=&#039;&#039;&lt;br /&gt;
	local shapeWidth,shapeHeight=0,0&lt;br /&gt;
	local argval=nval -- to catch the unnumbered shape series&lt;br /&gt;
	local qvalue=&#039;&#039;&lt;br /&gt;
	if argval==&#039;0&#039; then argval=&#039;&#039; end&lt;br /&gt;
	if nval==&#039;H&#039; then shapeResult.H={} end&lt;br /&gt;
	&lt;br /&gt;
	     -- Assign autovalues if a wikidata Qvalue has been supplied&lt;br /&gt;
	     -- some preliminary documentation&lt;br /&gt;
	          -- geo-data-type= default is P1082 (population)&lt;br /&gt;
	        	-- other options might include number of households (P1538) and per capita income (P10622) or land area (P2046)&lt;br /&gt;
	          -- geo-data-list= this is a comma-separated list of Q values, for a manually generated list that doesn&#039;t require nymbered parameters&lt;br /&gt;
	          -- geo-scalefactor = can enlarge or shrink all the dots in proportion, depending an what the map needs&lt;br /&gt;
	          -- geo-region = needs to be a Qvalue of the larger administrative region that the settlements/sub-regions are in&lt;br /&gt;
	          -- geo-sub-region needs to be a Pvalue, but will default to P150 (some pages use &#039;has parts&#039; = P527)&lt;br /&gt;
	          -- geo-data3= etc numbered Qvalue item, if used in conjunction with other shape/label parameters&lt;br /&gt;
	          -- shapeD= sets default shape, which migh be n-circle to include numbers.&lt;br /&gt;
	          -- geo-number-size= will give a fixed size for shape numbers. (defaults to 12 when using proportional dots)&lt;br /&gt;
	          -- geo-boundaries= if set to 1 will add any Qvalues for the sub-regions to &#039;map-data-light&#039;. &lt;br /&gt;
	          -- show-geo-dots= to use proportional dots. Will be fixed size if 0. (set mark-sizeD=0 to have no dot at all, eg to show labels or boundaries)&lt;br /&gt;
	          -- find-geo-dots=1 or 0 (needs to also include geo-region)&lt;br /&gt;
	          -- label-posD =  gets additional options: [off] gives no label, [on] will position lower centre, &lt;br /&gt;
	                   -- [on+] includes numeric values beside/below label, [on^] will always put it below. [on-] always puts values beside&lt;br /&gt;
	if args[&#039;geo-data&#039;..argval] then -- and (args[&#039;mark-title&#039;..argval] or &#039;&#039;) ~= &#039;none&#039; then&lt;br /&gt;
		local pvalue = args[&#039;geo-data-type&#039;] or &#039;P1082&#039;&lt;br /&gt;
		local plabel = mw.wikibase.getLabel(pvalue)&lt;br /&gt;
		if not args[&#039;geo-number-size&#039;] then args[&#039;geo-number-size&#039;]=12 end&lt;br /&gt;
		if not args[&#039;label-posD&#039;] then args[&#039;label-posD&#039;] = &#039;on&#039; end&lt;br /&gt;
		qvalue=args[&#039;geo-data&#039;..argval]&lt;br /&gt;
		      -- total poulation is a Qvalue wikidata page entry, or add up all the geo-data values or use a random 10000&lt;br /&gt;
		local region = args[&#039;geo-region&#039;] -- or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
		local thisPop=0&lt;br /&gt;
		local areatxt=&#039;&#039;&lt;br /&gt;
		local yearVal=&#039;&#039;&lt;br /&gt;
		if mw.wikibase.getBestStatements(qvalue,pvalue)[1] then &lt;br /&gt;
			thisPop=tonumber(mw.wikibase.getBestStatements(qvalue,pvalue)[1].mainsnak.datavalue.value.amount) or 0&lt;br /&gt;
			if pvalue == &#039;P2046&#039; then -- area, so convert from ha to sq km if needed (/100)&lt;br /&gt;
				thisPop = convertToSqKm(thisPop, mw.wikibase.getBestStatements(qvalue,pvalue)[1].mainsnak.datavalue.value.unit)&lt;br /&gt;
			end&lt;br /&gt;
			if mw.wikibase.getBestStatements(qvalue,pvalue)[1].qualifiers and mw.wikibase.getBestStatements(qvalue,pvalue)[1].qualifiers.P585 then&lt;br /&gt;
				yearVal = mw.wikibase.getBestStatements(qvalue,pvalue)[1].qualifiers.P585[1].datavalue.value.time&lt;br /&gt;
				if yearVal then yearVal = yearVal:sub(2,5) end -- wikidata reports an entire date and time, so extract the year&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			debugmsg(mw.addWarning(mw.wikibase.getLabel(qvalue)..&#039; (&#039;..qvalue..&#039;) has no recorded &#039;..plabel))&lt;br /&gt;
		end&lt;br /&gt;
		local scalefactor=args[&#039;geo-scalefactor&#039;] or 1&lt;br /&gt;
		if argval==&#039;1&#039; and args[&#039;mark-size1&#039;] and not args[&#039;mark-sizeD&#039;] then args[&#039;mark-sizeD&#039;] = args[&#039;mark-size1&#039;] end&lt;br /&gt;
		if argval==&#039;1&#039; and args[&#039;label-pos1&#039;] and not args[&#039;label-posD&#039;] then args[&#039;label-posD&#039;] = args[&#039;label-pos1&#039;] end&lt;br /&gt;
		if not args[&#039;mark-size&#039;..argval] then &lt;br /&gt;
			if args[&#039;show-geo-dots&#039;] == &#039;0&#039; then&lt;br /&gt;
				args[&#039;mark-size&#039;..argval] = args[&#039;mark-sizeD&#039;] or &#039;1&#039;   -- just use a &#039;point&#039; for the label to attach to&lt;br /&gt;
			else&lt;br /&gt;
				if thisPop&amp;gt;0 then&lt;br /&gt;
					args[&#039;mark-size&#039;..argval] = round(math.sqrt(thisPop/geoTotalPop*100) * 8 * scalefactor,0) &lt;br /&gt;
				else &lt;br /&gt;
					args[&#039;mark-size&#039;..argval] = args[&#039;mark-sizeD&#039;] or &#039;1&#039;&lt;br /&gt;
					args[&#039;shape-outline&#039;..argval]=args[&#039;shape-outline&#039;..argval] or args[&#039;shape-outlineH&#039;]&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local posTemp=string.lower(multiCheck(args,&#039;label-pos&#039;,argval,&#039;on&#039;))&lt;br /&gt;
		args[&#039;label-pos&#039;..argval] = posTemp&lt;br /&gt;
		posTemp=splitItem(posTemp,2)[1]&lt;br /&gt;
		if pvalue == &#039;P2046&#039; then &lt;br /&gt;
			thisPop = round(thisPop,2)  &lt;br /&gt;
			areatxt=sqkm..areatxt  -- round decimals if sq km area&lt;br /&gt;
		elseif pvalue == &#039;P10622&#039; then&lt;br /&gt;
			if mw.wikibase.getBestStatements(qvalue,pvalue)[1] then&lt;br /&gt;
				local punit=(mw.wikibase.getBestStatements(qvalue,pvalue)[1].mainsnak.datavalue.value.unit or &#039;&#039;):match(&amp;quot;Q.*&amp;quot;) -- extract Q value&lt;br /&gt;
				if punit == &#039;Q4917&#039; then areatxt=&#039; US$&#039;&lt;br /&gt;
				elseif punit == &#039;Q4916&#039; then areatxt=&#039; euro&#039;&lt;br /&gt;
				elseif punit == &#039;Q25224&#039; then areatxt=&#039; £GBP&#039;&lt;br /&gt;
				else areatxt=mw.wikibase.getLabel(punit)..areatxt&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if posTemp==&#039;off&#039; then&lt;br /&gt;
		else&lt;br /&gt;
			if not args[&#039;label&#039;..argval] then args[&#039;label&#039;..argval] = mw.wikibase.getLabel(qvalue) end&lt;br /&gt;
			local tline=posTemp:find(&amp;quot;[%+%^%-]&amp;quot;)&lt;br /&gt;
			if tline then&lt;br /&gt;
				local tval=posTemp:sub(tline,tline)&lt;br /&gt;
				local eline&lt;br /&gt;
				posTemp=posTemp:sub(1,tline-1)&lt;br /&gt;
				if posTemp == &#039;left&#039; or posTemp == &#039;right&#039; or string.find(posTemp,&#039;east&#039;) or string.find(posTemp,&#039;west&#039;) then &lt;br /&gt;
					if tval == &#039;^&#039; then eline = &#039;^&#039; else eline = &#039; &#039; end  -- only add line break if &#039;forced&#039;, used for left/right&lt;br /&gt;
				elseif tval == &#039;+&#039; or tval == &#039;^&#039; then eline = &#039;^&#039;         -- add linebreak unless  &#039;forced&#039; not to&lt;br /&gt;
				else eline = &#039; &#039;											-- must be a dash, so no line break&lt;br /&gt;
				end&lt;br /&gt;
				args[&#039;label&#039;..argval] = args[&#039;label&#039;..argval]..eline..&#039;(&#039;..formatInt(thisPop)..&#039;)&#039; &lt;br /&gt;
				args[&#039;label-pos&#039;..argval] = posTemp..args[&#039;label-pos&#039;..argval]:sub(tline+1,#args[&#039;label-pos&#039;..argval])&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		end&lt;br /&gt;
		if posTemp==&#039;on&#039;  then &lt;br /&gt;
			if argval==&#039;1&#039; and (not args.ldyD) then args.ldyD = args[&#039;ldy&#039;..argval] or &#039;0&#039; end&lt;br /&gt;
			if not args[&#039;ldy&#039;..argval] then args[&#039;ldy&#039;..argval] = args.ldyD end -- ensure ldy for that dot is added to the position&lt;br /&gt;
			args[&#039;label-pos&#039;..argval]=&#039;center&#039;&lt;br /&gt;
			local _,br = string.gsub(args[&#039;label&#039;..argval],&#039;%^&#039;,&#039;&#039;)&lt;br /&gt;
			local item=splitItem(args[&#039;label-size&#039;..argval],2)&lt;br /&gt;
			args[&#039;ldy&#039;..argval] = (args[&#039;ldy&#039;..argval] or 0) + ((item[1] or 11) * ((br+1)*0.6)) + ((args[&#039;geo-number-size&#039;] or 12) / 2)&lt;br /&gt;
		end&lt;br /&gt;
		local nt=&#039;&#039;&lt;br /&gt;
		if args[&#039;mark-title&#039;..argval] == &#039;nolist&#039; then nt=&#039;nolist,&#039; end&lt;br /&gt;
		if not args[&#039;mark-title&#039;..argval] or args[&#039;mark-title&#039;..argval] == &#039;&#039; or args[&#039;mark-title&#039;..argval] == &#039;nolist&#039; then &lt;br /&gt;
			if mw.wikibase.getSitelink(qvalue) then &lt;br /&gt;
				args[&#039;mark-title&#039;..argval] = nt..&#039;[[&#039;..mw.wikibase.getSitelink(qvalue)..&#039;]]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				args[&#039;mark-title&#039;..argval] = nt..mw.wikibase.getLabel(qvalue)&lt;br /&gt;
			end&lt;br /&gt;
		end -- If mark-title is not set locally then attempt Sitelink value, or use label&lt;br /&gt;
		if thisPop == 0 then areatxt=&#039;&#039; end&lt;br /&gt;
		captionTableText[argval]={}&lt;br /&gt;
		captionTableText[argval][1]= args[&#039;mark-title&#039;..argval]&lt;br /&gt;
		captionTableText[argval][2]= formatInt(thisPop)&lt;br /&gt;
		if maplist.width &amp;gt;= 280 then captionTableText[argval][3]= yearVal else captionTableText[argval][3]=&#039;no-year&#039; end&lt;br /&gt;
		if args[&#039;show-q-values&#039;] == &#039;1&#039; then&lt;br /&gt;
			captionTableText[argval][4]=&#039;&amp;lt;small&amp;gt;[[wikidata:&#039;..qvalue..&#039;|&#039;..qvalue..&#039;]]&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
		else &lt;br /&gt;
			local nbsp = &#039;&amp;amp;nbsp;&#039;&lt;br /&gt;
			if maplist.width &amp;lt; 230 then nbsp = &#039; &#039; end&lt;br /&gt;
			captionTableText[argval][4]=&#039;&#039;&lt;br /&gt;
			if captionTableText[argval][3] == &#039;no-year&#039; then &lt;br /&gt;
				captionTableText[argval][2] = captionTableText[argval][2]..&#039;&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;&#039;..nbsp..&#039;[[wikidata:&#039;..qvalue..&#039;|WD]]&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
			else&lt;br /&gt;
				captionTableText[argval][3] = captionTableText[argval][3]..&#039;&amp;lt;small&amp;gt;&amp;lt;sup&amp;gt;&#039;..nbsp..&#039;[[wikidata:&#039;..qvalue..&#039;|WD]]&amp;lt;/sup&amp;gt;&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if args[&#039;mark-title&#039;..argval] == &#039;none&#039; then&lt;br /&gt;
			-- no title&lt;br /&gt;
		else&lt;br /&gt;
			args[&#039;mark-title&#039;..argval] = args[&#039;mark-title&#039;..argval]..&#039; (&#039;..plabel..&#039; &#039;..formatInt(thisPop)..areatxt..&#039;)&#039;&lt;br /&gt;
		end&lt;br /&gt;
        if not args[&#039;mark-description&#039;..argval] then args[&#039;mark-description&#039;..argval] = (mw.wikibase.getDescription(qvalue) or &#039;&#039;)..&#039;&amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
        if (not args[&#039;mark-image&#039;..argval]) and (mw.wikibase.getBestStatements(qvalue,&#039;P18&#039;)[1]) then &lt;br /&gt;
        	args[&#039;mark-image&#039;..argval] = mw.wikibase.getBestStatements(qvalue,&#039;P18&#039;)[1].mainsnak.datavalue.value&lt;br /&gt;
        end&lt;br /&gt;
		item = multiCheck(args,&#039;shape&#039;,argval,&#039;circle&#039;) --default to circle if geo-data&lt;br /&gt;
		if not string.find(item,&#039;svgpath,&#039;) then item=string.lower(item) end -- ensure svgpath items retain original case values&lt;br /&gt;
	else&lt;br /&gt;
		item = multiCheck(args,&#039;shape&#039;,argval,&#039;image&#039;)&lt;br /&gt;
		if not string.find(item,&#039;svgpath,&#039;) then item=string.lower(item) end -- ensure svgpath items retain original case values&lt;br /&gt;
	end&lt;br /&gt;
	if string.find(item,&#039;n-&#039;,0,true)==1 or string.find(item,&#039;l-&#039;,0,true)==1 then &lt;br /&gt;
		autoDotTag=string.sub(item,0,1) &lt;br /&gt;
		item=string.sub(item,3) &lt;br /&gt;
	end&lt;br /&gt;
    if item == &#039;image&#039; then &lt;br /&gt;
    	shapeResult[nval].shape = &#039;image:&#039;&lt;br /&gt;
    	shapeResult[nval].shapeFile =multiCheck(args,&#039;mark&#039;,argval,&#039;Red pog.svg&#039;)&lt;br /&gt;
    	shapeWidth=-1&lt;br /&gt;
    else   shapeResult[nval].shape = item &lt;br /&gt;
    end&lt;br /&gt;
    item= multiCheck(args,&#039;mark-size&#039;,argval,(shapeResult[nval].shapeSize or &#039;14px&#039;)) -- add geo-data as fallback if already assigned&lt;br /&gt;
	local a,b,c= getsize(string.gsub(string.gsub(item,&#039;,&#039;,&#039;px&#039;)..&#039;px&#039;,&#039;pxpx&#039;,&#039;px&#039;))&lt;br /&gt;
	if b==a and args[&#039;mark-dim&#039;..argval] then &lt;br /&gt;
		b= b / tonumber(string.match(args[&#039;mark-dim&#039;..argval],&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	shapeHeight=b/2&lt;br /&gt;
	item=tostring(a)..&#039;px&#039;..tostring(b)..&#039;px&#039;..tostring(c)..&#039;px&#039;&lt;br /&gt;
    shapeResult[nval].shapeSize= item&lt;br /&gt;
    itemTab=splitItem(multiCheck(args,&#039;shape-color&#039;,argval,&#039;hard red&#039;),2)&lt;br /&gt;
    shapeResult[nval].shapeColor=itemTab[1] or &#039;hardred&#039;&lt;br /&gt;
    item=itemCheck(itemTab[2],&#039;%&#039;) -- jump through the various opacity hoops and add to color if needed&lt;br /&gt;
    if not item then item=itemCheck(args[&#039;shape-opacity&#039;..argval],&#039;%&#039;) end&lt;br /&gt;
    if item and item~=&#039;0%&#039; and item~=&#039;100%&#039; then shapeResult[nval].shapeColor=shapeResult[nval].shapeColor..item  end&lt;br /&gt;
    shapeResult[nval].shapeAngle=itemCheck(multiCheck(args,&#039;shape-angle&#039;,argval,&#039;0&#039;),&#039;deg&#039;) or &#039;0deg&#039;&lt;br /&gt;
    if args[&#039;shape-angle&#039;..argval] then shapeResult[nval].shapeAngleArg=true else shapeResult[nval].shapeAngleArg=false end&lt;br /&gt;
--sort out the outline entry&lt;br /&gt;
    itemTab=splitItem(multiCheck(args,&#039;shape-outline&#039;,argval,&#039;transparent,0,100,solid&#039;),4)&lt;br /&gt;
    shapeResult[nval].outlineColor=itemTab[1] or &#039;dark grey&#039;&lt;br /&gt;
    shapeResult[nval].outlineWidth=itemCheck(itemTab[2],&#039;px&#039;) or &#039;1px&#039; &lt;br /&gt;
    if itemTab[3] and itemTab[3]~=&#039;100&#039; and itemTab[3]~=&#039;0&#039; then&lt;br /&gt;
    	shapeResult[nval].outlineColor=shapeResult[nval].outlineColor..itemCheck(itemTab[3],&#039;%&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    shapeResult[nval].outlineStyle=itemTab[4] or &#039;solid&#039;&lt;br /&gt;
-- label size, background, outline&lt;br /&gt;
    shapeResult[nval].textAT=args[&#039;label-attribute&#039;..argval] or &#039;&#039;&lt;br /&gt;
    itemTab=splitItem( multiCheck(args,&#039;label-size&#039;,argval,&#039;12&#039;),3)&lt;br /&gt;
    shapeResult[nval].textSZ=itemCheck(itemTab[1],&#039;px&#039;) or &#039;12px&#039; &lt;br /&gt;
    if itemTab[2]==&#039;outline&#039; then &lt;br /&gt;
    	shapeResult[nval].textBG=itemTab[3] or &#039;transparent&#039;&lt;br /&gt;
    	shapeResult[nval].textOL=&#039;1px&#039; &lt;br /&gt;
    elseif itemTab[3]==&#039;outline&#039; then &lt;br /&gt;
    	shapeResult[nval].textBG=itemTab[2] or &#039;transparent&#039;&lt;br /&gt;
    	shapeResult[nval].textOL=&#039;1px&#039; &lt;br /&gt;
    else shapeResult[nval].textOL=&#039;0px&#039; &lt;br /&gt;
    	shapeResult[nval].textBG=itemTab[2] or &#039;transparent&#039;&lt;br /&gt;
    end&lt;br /&gt;
    if getColor(shapeResult[nval].textBG)==CTB[&#039;hardgrey&#039;] and shapeResult[nval].textBG~=&#039;hardgrey&#039; then shapeResult[nval].textBG= &#039;transparent&#039; end&lt;br /&gt;
--label color etc&lt;br /&gt;
    itemTab=splitItem(multiCheck(args,&#039;label-color&#039;,argval, &#039;darkgrey&#039;,&#039;label-colour&#039;),2)&lt;br /&gt;
    shapeResult[nval].textCL=itemTab[1] or &#039;darkgrey&#039;&lt;br /&gt;
    if itemTab[2] and itemTab[2]~=&#039;0%&#039; and itemTab[2]~=&#039;100%&#039; then shapeResult[nval].textCL=shapeResult[nval].textCL..itemTab[2]  end&lt;br /&gt;
    shapeResult[nval].textSP=itemCheck( multiCheck(args,&#039;label-spacing&#039;,argval,&#039;0&#039;),&#039;px&#039;) -- sets letter-spacing in px&lt;br /&gt;
    shapeResult[nval].textLH=itemCheck( multiCheck(args,&#039;label-height&#039;,argval,&#039;120&#039;),&#039;%&#039;) -- sets line height, 120% default &lt;br /&gt;
    shapeResult[nval].textNG=itemCheck(multiCheck(args,&#039;label-angle&#039;,argval,&#039;0&#039;),&#039;deg&#039;)&lt;br /&gt;
    if args[&#039;label-angle&#039;..argval] then shapeResult[nval].textNGarg=true else shapeResult[nval].textNGarg=false end&lt;br /&gt;
--sgd=dotTag attributes&lt;br /&gt;
 	shapeResult[nval].tagSize=(args[&#039;geo-number-size&#039;] or tostring(shapeHeight*1.5))..&#039;px&#039;&lt;br /&gt;
 	local c1,c2=checkColors(shapeResult[nval].shapeColor)&lt;br /&gt;
	shapeResult[nval].tagColor=c2&lt;br /&gt;
	shapeResult[nval].tagSpacer=&#039;0px&#039;&lt;br /&gt;
	shapeResult[nval].tagAngle=&#039;0deg&#039;&lt;br /&gt;
-- sge extension line attributes &lt;br /&gt;
	local shapePos=splitItem(multiCheck(args,&#039;label-pos&#039;,argval,&#039;right&#039;),6)&lt;br /&gt;
	if shapePos[2]==&#039;with-line&#039; or shapePos[2]==&#039;n-line&#039; then &lt;br /&gt;
    	shapeResult[nval].textEW=(shapePos[3] or &#039;1&#039;)..&#039;px&#039; -- width&lt;br /&gt;
    	shapeResult[nval].textEC=(shapePos[4] or shapeResult[nval].shapeColor or &#039;darkgrey&#039;)&lt;br /&gt;
	elseif shapePos[2]==&#039;photo-panel&#039; then &lt;br /&gt;
		shapeResult[nval].textEW=&#039;2px&#039; -- width&lt;br /&gt;
    	shapeResult[nval].textEC=shapeResult[nval].textCL&lt;br /&gt;
    else&lt;br /&gt;
    	shapeResult[nval].textEW=&#039;0px&#039; -- width&lt;br /&gt;
    	shapeResult[nval].textEC=&#039;grey&#039;-- colour &lt;br /&gt;
    end&lt;br /&gt;
    shapeResult[nval].textES=&#039;solid&#039;&lt;br /&gt;
    if argval==&#039;H&#039; then return dotResult end&lt;br /&gt;
--Assign dot values&lt;br /&gt;
	local dotItem={}&lt;br /&gt;
	dotItem.group=nval&lt;br /&gt;
	dotItem.code=nval&lt;br /&gt;
	dotItem.posType=shapePos[2] or &#039;nil&#039;&lt;br /&gt;
	if (shapePos[2] or &#039;&#039;) ==&#039;photo-panel&#039; then &lt;br /&gt;
		dotItem.ppwidth= tonumber(string.match((shapePos[4] or &#039;110&#039;),&amp;quot;%d+&amp;quot;))&lt;br /&gt;
		dotItem.ppheight= tonumber(string.match((shapePos[5] or &#039;48&#039;),&amp;quot;%d+&amp;quot;) )&lt;br /&gt;
		dotItem.photowidth=round(tonumber(string.match((shapePos[3] or &#039;1.3&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)) * dotItem.ppheight+1,0)&lt;br /&gt;
		dotItem.photoImage=args[&#039;mark-image&#039;..argval]&lt;br /&gt;
		--debugmsg(&#039;photo-panel, &#039;..shapePos[2]..&#039;, 3=&#039;..shapePos[3]..&#039;, 4=&#039;..shapePos[4]..&#039;, 5=&#039;..(shapePos[5] or &#039;(48&#039;)..&#039;photowidth=&#039;..tostring(dotItem.photowidth))&lt;br /&gt;
	end&lt;br /&gt;
	if (shapePos[2] or &#039;&#039;) ==&#039;mark-line&#039; then &lt;br /&gt;
		local x=tonumber(argval or &#039;1&#039;)&lt;br /&gt;
		dotItem.markDest=shapePos[6] or tostring(x-1)&lt;br /&gt;
		dotItem.mlWidth= tonumber(string.match((shapePos[3] or &#039;1&#039;),&amp;quot;%d+&amp;quot;))&lt;br /&gt;
		dotItem.mlStyle= shapePos[4] or &#039;solid&#039;&lt;br /&gt;
		dotItem.mlGap=tonumber(string.match((shapePos[5] or &#039;0&#039;),&amp;quot;[%d]+&amp;quot;))&lt;br /&gt;
		shapeResult[nval].textEC=shapeResult[nval].outlineColor or &#039;darkgrey&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;mark-coord&#039;..argval] then &lt;br /&gt;
		itemTab=splitItem(convertCoordsTrad (args[&#039;mark-coord&#039;..argval]),2)&lt;br /&gt;
		if itemTab[1] == nil or itemTab[2] == nil then&lt;br /&gt;
			debugmsg(mw.addWarning(&#039;Unable to read coordinates for mark-coord&#039;..argval))&lt;br /&gt;
		else&lt;br /&gt;
			dotItem.lat=tonumber(string.match(itemTab[1],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
			dotItem.lon=tonumber(string.match(itemTab[2],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		dotItem.lat=tonumber(string.match(args[&#039;mark-lat&#039;..argval],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0&lt;br /&gt;
		dotItem.lon=tonumber(string.match(args[&#039;mark-lon&#039;..argval],&amp;quot;[%.%-?%d]+&amp;quot;)) or 0		&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;dateline&#039;..argval] and (args[&#039;dateline&#039;..argval]==&#039;1&#039; or args[&#039;dateline&#039;..argval]==&#039;-1&#039;) then&lt;br /&gt;
		dotItem.lon=dotItem.lon+(tonumber(args[&#039;dateline&#039;..argval] ) *360) &lt;br /&gt;
	end&lt;br /&gt;
	maplist.lon=dotItem.lon&lt;br /&gt;
	maplist.lat=dotItem.lat&lt;br /&gt;
	dotItem.gridx, dotItem.gridy = maptogrid(maplist,1)&lt;br /&gt;
	&lt;br /&gt;
	local item=args[&#039;mark-title&#039;..argval] or &#039;&#039; -- sort out the caption, wikilink and plaintext tooltip items from dotLink&lt;br /&gt;
	if item==&#039;none&#039; then dotItem.param1=&#039;nomap nolist&#039; item=&#039;&#039; end&lt;br /&gt;
	if string.find(item,&#039;nolist&#039;) then dotItem.param1=&#039;nolist,&#039; item = string.sub(args[&#039;mark-title&#039;..argval],8) or args[&#039;label&#039;..argval] end&lt;br /&gt;
	dotItem.dotLink=item&lt;br /&gt;
	if item ~= &#039;&#039; then&lt;br /&gt;
		item=stripdivs(item)&lt;br /&gt;
		dotItem.title=delink({item})&lt;br /&gt;
		local linkstart= string.find(item,&#039;[[&#039;,1,true) -- use true to ensure a plain search (no pattern)&lt;br /&gt;
		if linkstart then&lt;br /&gt;
			dotItem.dlink=delink({string.sub(item,linkstart,string.find(item,&#039;]]&#039;,1,true)+1),wikilinks=&#039;target&#039;})&lt;br /&gt;
			-- debugmsg(&#039;dlink for &#039;..item..&#039; is &#039;..dotItem.dlink)&lt;br /&gt;
		else dotItem.dlink=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
        dotItem.dlink=&#039;&#039;&lt;br /&gt;
        dotItem.title=&#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if autoDotTag==&#039;n&#039; then item=nval &lt;br /&gt;
	elseif autoDotTag==&#039;l&#039; then item=string.char(64+tonumber(nval)) &lt;br /&gt;
	else item=&#039;&#039; end&lt;br /&gt;
	dotItem.dotTag = args[&#039;numbered&#039;..argval] or item&lt;br /&gt;
	if shapePos[2]==&#039;n-line&#039; and (args[&#039;label&#039;..argval] or args[&#039;label&#039;..argval]==&#039;&#039;) then &lt;br /&gt;
		if dotItem.dlink ==&#039;&#039; then&lt;br /&gt;
			item=dotItem.dotTag..&#039; &#039;..args[&#039;label&#039;..argval]&lt;br /&gt;
		else &lt;br /&gt;
			item=&#039;[[&#039;..dotItem.dlink..&#039;|&#039;..dotItem.dotTag..&#039;]] &#039;..args[&#039;label&#039;..argval]&lt;br /&gt;
		end&lt;br /&gt;
	else item=(args[&#039;label&#039;..argval] or &#039;&#039;) end&lt;br /&gt;
	if args[&#039;labela&#039;..argval] then item = item..&#039;^&#039;..args[&#039;labela&#039;..argval] end&lt;br /&gt;
	if args[&#039;labelb&#039;..argval] then item = item..&#039;^&#039;..args[&#039;labelb&#039;..argval] end&lt;br /&gt;
	local a=&#039;&#039; for c in item:gmatch(&#039;.&#039;) do a=a..(c:gsub(&#039;%^&#039;,&#039;&amp;lt;br&amp;gt;&#039;) or c) end&lt;br /&gt;
	dotItem.labelText = a -- convert hats to line breaks&lt;br /&gt;
	if argval==&#039;&#039; then item = (args[&#039;label-offset-x&#039;]) or (args.ldx) or &#039;0&#039;&lt;br /&gt;
	else item=args[&#039;label-offset-x&#039;..argval] or args[&#039;ldx&#039;..argval] or args[&#039;label-offset-xD&#039;] or args.ldxD or args[&#039;label-offset-x1&#039;] or args.ldx1 or &#039;0&#039;&lt;br /&gt;
	end&lt;br /&gt;
	dotItem.dx=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	if argval==&#039;&#039; then item = (args[&#039;label-offset-y&#039;]) or (args.ldy) or &#039;0&#039;&lt;br /&gt;
	else item=args[&#039;label-offset-y&#039;..argval] or args[&#039;ldy&#039;..argval] or args[&#039;label-offset-yD&#039;] or args.ldyD or args[&#039;label-offset-y1&#039;] or args.ldy1 or &#039;0&#039;&lt;br /&gt;
	end&lt;br /&gt;
	dotItem.dy=tonumber(string.match(item,&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	dotItem.labelPos=shapePos[1]&lt;br /&gt;
	if args[&#039;mark-image&#039;..argval] then dotItem.imageName= args[&#039;mark-image&#039;..argval] end&lt;br /&gt;
	dotItem.info=args[&#039;mark-description&#039;..argval] or &#039;&#039;&lt;br /&gt;
	table.insert(dotResult,1,dotItem) -- add to start of list, so they are in reverese order for displaying&lt;br /&gt;
	-- debugmsg(dotItem.code..&#039; = &#039;..dotItem.lat..&#039;,&#039;..dotItem.lon..&#039;: &#039;..dotItem.labelText..&#039; - &#039;..dotItem.title..&#039;, &#039;..shapeResult[nval].shapeSize)&lt;br /&gt;
	return dotResult&lt;br /&gt;
end	&lt;br /&gt;
	&lt;br /&gt;
local function tradstyleParseShapes(args,dotTable,dotmax)&lt;br /&gt;
	local sgNumbers,sgSortable={},{}&lt;br /&gt;
	for argindex=1,dotmax do -- build a list of all the numbered coords or lat,lons that have been used&lt;br /&gt;
		local x=tostring(argindex)&lt;br /&gt;
		if args[&#039;geo-data&#039;..x] and (not args[&#039;mark-coord&#039;..x]) and (not args[&#039;mark-lat&#039;..x]) then&lt;br /&gt;
			   -- get lat and lon values from wikidata and put them into the args.lat and args.lon for use wherever needed&lt;br /&gt;
			if (mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],&#039;P625&#039;)[1]) then&lt;br /&gt;
				args[&#039;mark-lat&#039;..x] = (mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],&#039;P625&#039;)[1].mainsnak.datavalue.value.latitude) or &#039;0&#039;&lt;br /&gt;
    			args[&#039;mark-lon&#039;..x] = (mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],&#039;P625&#039;)[1].mainsnak.datavalue.value.longitude) or &#039;0&#039;&lt;br /&gt;
    			local p=args[&#039;geo-data-type&#039;] or &#039;P1082&#039;&lt;br /&gt;
    			if mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],p)[1] then&lt;br /&gt;
    				local n = tonumber(mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],p)[1].mainsnak.datavalue.value.amount) or 0&lt;br /&gt;
    				if p == &#039;P2046&#039; then -- area, so convert to sq km if needed (/100)&lt;br /&gt;
    					n = convertToSqKm( n, mw.wikibase.getBestStatements(args[&#039;geo-data&#039;..x],p)[1].mainsnak.datavalue.value.unit)&lt;br /&gt;
	   				end&lt;br /&gt;
					geoTotalPop = geoTotalPop + n&lt;br /&gt;
				end&lt;br /&gt;
    		else debugmsg(mw.addWarning(&#039;could not find coords for &#039;..mw.wikibase.getLabel(args[&#039;geo-data&#039;..x])..&#039;, &#039;..args[&#039;geo-data&#039;..x]))&lt;br /&gt;
			end&lt;br /&gt;
    	end&lt;br /&gt;
		if args[&#039;mark-coord&#039;..x] or (args[&#039;mark-lat&#039;..x] and args[&#039;mark-lon&#039;..x]) then &lt;br /&gt;
    		sgNumbers[x]=x  -- add it to the list&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for indx,sgnum in pairs(sgNumbers) do table.insert(sgSortable,sgnum) end&lt;br /&gt;
	table.sort(sgSortable,lessthan) -- put the list in a sortable form (needs a second table, seemingly)&lt;br /&gt;
	if args[&#039;mark-coord&#039;] or (args[&#039;mark-lat&#039;] and args[&#039;mark-lon&#039;]) then table.insert(sgSortable,&#039;0&#039;) end -- add it to the end of the list&lt;br /&gt;
	local default={} default.D={} &lt;br /&gt;
	local dotResult={}&lt;br /&gt;
	for k,sgnum in pairs(sgSortable) do -- work through the sorted list, parsing each set of shapes in turn, from 1 upwards&lt;br /&gt;
		shapeList[sgnum]={}&lt;br /&gt;
		dotTable=assignTradstyleShape(shapeList,default,dotTable,args,sgnum)&lt;br /&gt;
	end	&lt;br /&gt;
	dotTable=assignTradstyleShape(shapeList,default,dotTable,args,&#039;H&#039;) -- construct an extra highlight shapeitem&lt;br /&gt;
	local unitConvert=1&lt;br /&gt;
	local areaUnits=&#039;&#039;&lt;br /&gt;
	if args[&#039;geo-region&#039;] and (args[&#039;find-geo-dots&#039;] or &#039;1&#039;) ~= &#039;0&#039; then&lt;br /&gt;
		local region = args[&#039;geo-region&#039;] -- or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
		local pvalue = args[&#039;geo-data-type&#039;] or &#039;P1082&#039;&lt;br /&gt;
		local plabel = mw.wikibase.getLabel(pvalue)&lt;br /&gt;
		local subhead=&#039;&#039; -- Assemble the subhead content, a line of text about the region as a whole&lt;br /&gt;
		if region and mw.wikibase.getBestStatements(region,pvalue)[1] then&lt;br /&gt;
			local punit=mw.wikibase.getBestStatements(region,pvalue)[1].mainsnak.datavalue.value.unit:match(&amp;quot;Q.*&amp;quot;) -- extract Q value&lt;br /&gt;
			if pvalue == &#039;P10622&#039; then -- add other currency-based pvalues here&lt;br /&gt;
				areaUnits=mw.wikibase.getLabel(punit)&lt;br /&gt;
			end&lt;br /&gt;
			if punit == &#039;Q35852&#039; then unitConvert=100 areaUnits = &#039; &#039;..sqkm -- if its hectares, convert to sq km&lt;br /&gt;
			elseif punit == &#039;Q232291&#039; then unitConvert = (1/2.59) areaUnits = &#039; &#039;..sqkm -- or this if it&#039;s square miles&lt;br /&gt;
			elseif punit == &#039;Q81292&#039; then unitConvert = 247.1 areaUnits = &#039; &#039;..sqkm -- or this if it&#039;s acres&lt;br /&gt;
			elseif punit == &#039;Q712226&#039; then unitConvert = 1 areaUnits = &#039; &#039;..sqkm -- or this if it&#039;s already sq km&lt;br /&gt;
				&lt;br /&gt;
			elseif punit == &#039;Q4917&#039; then areaUnits=&#039; US$&#039;  -- replace long version with some shortform currencies ()&lt;br /&gt;
			elseif punit == &#039;Q4916&#039; then areaUnits=&#039; euro&#039;&lt;br /&gt;
			elseif punit == &#039;Q25224&#039; then areaUnits=&#039; £GBP&#039;&lt;br /&gt;
			end&lt;br /&gt;
			-- if pvalue == &#039;P2046&#039; then&lt;br /&gt;
				 -- may need to add other instances of sq km so add in other P-items here if they need units showing&lt;br /&gt;
			-- end&lt;br /&gt;
			geoTotalPop=(mw.wikibase.getBestStatements(region,pvalue)[1].mainsnak.datavalue.value.amount) / unitConvert&lt;br /&gt;
			local yearVal&lt;br /&gt;
			if mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers then&lt;br /&gt;
				yearVal = mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P585[1].datavalue.value.time&lt;br /&gt;
				if yearVal and yearVal:sub(1,1) == &#039;+&#039; then yearVal = yearVal:sub(2,5)&lt;br /&gt;
					if mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P459 and mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P459[1] then&lt;br /&gt;
						local methodVal = mw.wikibase.getBestStatements(region,pvalue)[1].qualifiers.P459[1].datavalue.value.id&lt;br /&gt;
						if methodVal then yearVal=yearVal..&#039; &#039;..mw.wikibase.getLabel(methodVal) end&lt;br /&gt;
					end&lt;br /&gt;
					yearVal = &#039; (&#039;..yearVal..&#039;)&#039;&lt;br /&gt;
				else yearVal =&#039;&#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			subhead=totalItems..&#039; &#039;..mw.wikibase.getLabel(region)..&#039; &#039;..plabel..&#039; ([[wikidata:&#039;..region..&#039;]]) = &#039;..formatInt(round(geoTotalPop),1)..areaUnits..yearVal&lt;br /&gt;
		else &lt;br /&gt;
			if pvalue == &#039;P2046&#039; then areaUnits = sqkm end&lt;br /&gt;
			subhead=totalItems..&#039; &#039;..mw.wikibase.getLabel(region)..&#039; &#039;..plabel..&#039; (&#039;..sumOfDatapoints..&#039;) = &#039;..formatInt(round(geoTotalPop),1)..areaUnits&lt;br /&gt;
		end&lt;br /&gt;
		if maplist.width &amp;lt; 350 and #plabel &amp;gt; 4 then plabel=string.sub((plabel or &#039;   &#039;),1,3)..&#039;.&#039; end&lt;br /&gt;
		if maplist.width &amp;lt; 330 then numberCol = &#039; &#039; end&lt;br /&gt;
		if maplist.width &amp;lt; 280 then year = &#039;no-year&#039; end&lt;br /&gt;
		captionTable = subhead&lt;br /&gt;
		if (args[&#039;show-q-values&#039;] or &#039;&#039;)  ~= &#039;1&#039; then &lt;br /&gt;
			captionTable = captionTable..&#039;&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;&amp;lt;small&amp;gt; (WD&amp;amp;nbsp;=&amp;amp;nbsp;&#039;..wikidataLink..&#039;)&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&#039; &lt;br /&gt;
			wikidataLink=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		captionTable = captionTable..&#039;&amp;lt;table class=&amp;quot;wikitable plainrowheaders sortable mw-collapsible mw-collapsed&amp;quot;  style=&amp;quot;width: 100%;&amp;quot;&amp;gt;&amp;lt;caption&amp;gt;&#039;..(args.toggletext or toggletext)..&#039; &amp;lt;/caption&amp;gt;&#039;&lt;br /&gt;
		captionTable = htmlTableLine(captionTable,numberCol,mw.wikibase.getLabel(region),plabel..&#039; &#039;..areaUnits, year, wikidataLink,&#039;header&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return dotTable&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
local function checkfortooltip (title,dx,dy,dotlabel,dlink,nolabel)  -- returns tlink if available, and dlink, if needed and tshape=true if shape needed&lt;br /&gt;
  local tshape,tlink = false,&amp;quot;&amp;quot;&lt;br /&gt;
  if dlink~=&#039;&#039; and not nolabel then tlink=dlink end&lt;br /&gt;
  if (tlink==&amp;quot;&amp;quot; or nolabel) and title~=&amp;quot;&amp;quot; then tshape=true end -- tshape flags True if title is wanted for shape&lt;br /&gt;
  if (not (dx==0 or dy==0) or dotlabel==&#039;&#039;) and title~=&#039;&#039; then tshape=true end -- add tooltip to shape if its number has moved&lt;br /&gt;
  return tshape,tlink&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
local function tshift(angle) -- adjustment to place text near the centre of a triangle, shifted to allow rotation of triangle shape&lt;br /&gt;
  local x=tonumber(string.match(angle,&amp;quot;%-?%d+&amp;quot;))&lt;br /&gt;
  if x&amp;lt;0 then x=360+x end -- set to a single degree direction, 0 to 360&lt;br /&gt;
  if x&amp;gt;359 then return 0,0 end&lt;br /&gt;
  -- shift the centre of the triangle based on rotation value&lt;br /&gt;
  if x &amp;lt;=40 or x&amp;gt;=320 then return -0.17,0 -- triangle up= -shiftv&lt;br /&gt;
  elseif x&amp;gt;=140 and x&amp;lt;=220 then return 0.17,0 --triangle down= +shiftv&lt;br /&gt;
  elseif x &amp;gt;220 then return 0,-0.17 --triangle left= -shifth&lt;br /&gt;
  elseif x &amp;gt;40 then return 0,0.22 --triangle right= +shifth&lt;br /&gt;
  end&lt;br /&gt;
  return 0,0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTriangle(result,row,shape,outline,tlink)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
  if outline then&lt;br /&gt;
    local p=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
    w=w+p*2&lt;br /&gt;
    h=h+p*2&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&#039;&amp;lt;div &#039;)&lt;br /&gt;
  if tlink then &lt;br /&gt;
    table.insert(result,&#039; title=&amp;quot;&#039;..row.title..&#039;&amp;quot; &#039;)&lt;br /&gt;
  end        &lt;br /&gt;
  table.insert(result,&#039;style=&amp;quot;display:inline-block; position: absolute&#039;)&lt;br /&gt;
  if shape.shapeAngle ~= &#039;0deg&#039; then&lt;br /&gt;
    table.insert(result,&#039;; transform: rotate(&#039;..shape.shapeAngle..&#039;)&#039;)&lt;br /&gt;
  end&lt;br /&gt;
  local shiftv,shifth=0,0&lt;br /&gt;
  shiftv,shifth=tshift(shape.shapeAngle)&lt;br /&gt;
  table.insert(result,&#039;; top: &#039;..tostring(row.gridy-h/2+h*shiftv)..&#039;px&#039;)&lt;br /&gt;
  table.insert(result,&#039;; left: &#039;..tostring(row.gridx-w/2+w*shifth)..&#039;px; width: 0; height: 0; outline-width: 0px&#039;)&lt;br /&gt;
  table.insert(result,&#039;; border-left: &#039;..tostring(w/2)..&#039;px solid transparent&#039;)&lt;br /&gt;
  table.insert(result,&#039;; border-right: &#039;..tostring(w/2)..&#039;px solid transparent&#039;)&lt;br /&gt;
  if outline then -- fill with outline colour, to make a &#039;base layer&#039; or shape colour&lt;br /&gt;
    table.insert(result,&#039;; border-bottom: &#039;..tostring(h)..&#039;px solid &#039;..getColor(shape.outlineColor).. &#039;&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
  else  &lt;br /&gt;
    table.insert(result,&#039;; border-bottom: &#039;..tostring(h)..&#039;px solid &#039;..getColor(shape.shapeColor).. &#039;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeSquare(result,row,shape,tshape)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
  if shape.shape==&#039;square&#039; then h=w end -- squares are always square!. box can stretch&lt;br /&gt;
  local div=mw.html.create (&#039;div&#039;)&lt;br /&gt;
  if tshape then -- Add tooltip if needed&lt;br /&gt;
    div:attr(&#039;title&#039;,row.title)&lt;br /&gt;
  end        &lt;br /&gt;
  div:css(&#039;position&#039;, &amp;quot;absolute&amp;quot;)&lt;br /&gt;
  if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
    div:css(&#039;outline&#039;, shape.outlineWidth..&amp;quot; &amp;quot;..shape.outlineStyle..&amp;quot; &amp;quot;..getColor(shape.outlineColor))&lt;br /&gt;
  end&lt;br /&gt;
  if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then&lt;br /&gt;
   div:css(&#039;transform&#039;,&amp;quot;rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  if r~=0 then div:css(&#039;border-radius&#039;,tostring(r)..&amp;quot;px&amp;quot;) end&lt;br /&gt;
  if shape.shape==&#039;panel&#039; then &lt;br /&gt;
 	div:css(&#039;top&#039;, tostring(row.gridy)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	div:css(&#039;left&#039;, tostring(row.gridx)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  else&lt;br /&gt;
	div:css(&#039;top&#039;, tostring(row.gridy-h/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	div:css(&#039;left&#039;, tostring(row.gridx-w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  div:css(&#039;width&#039;, tostring(w)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  div:css(&#039;height&#039;, tostring(h)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  div:css(&#039;background-color&#039;, getColor(shape.shapeColor) )&lt;br /&gt;
  div:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
  table.insert(result,tostring(div))&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
local function makeCircle(result,row,shape,tshape)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize) -- = width,height,rounding&lt;br /&gt;
  if shape.shape==&#039;circle&#039; then h=w end -- circles are always round. ellipse can stretch&lt;br /&gt;
  local div=mw.html.create (&#039;div&#039;)&lt;br /&gt;
  if tshape then -- Add tooltip if needed&lt;br /&gt;
    div:attr(&#039;title&#039;,row.title)&lt;br /&gt;
  end        &lt;br /&gt;
  div:css(&#039;position&#039;, &amp;quot;absolute&amp;quot;)&lt;br /&gt;
  if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
    div:css(&#039;outline&#039;, shape.outlineWidth..&amp;quot; &amp;quot;..shape.outlineStyle..&amp;quot; &amp;quot;..getColor(shape.outlineColor))&lt;br /&gt;
  end&lt;br /&gt;
  if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then&lt;br /&gt;
    div:css(&#039;transform&#039;,&amp;quot;rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  div&lt;br /&gt;
	:css(&#039;top&#039;, tostring(row.gridy-h/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;left&#039;, tostring(row.gridx-w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;width&#039;, tostring(w)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;height&#039;, tostring(h)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;border-radius&#039;, &amp;quot;50%&amp;quot;)&lt;br /&gt;
	:css(&#039;background-color&#039;, getColor(shape.shapeColor) )&lt;br /&gt;
	:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
  table.insert(result,tostring(div))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeRuleA(result,row,shape)&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize) -- = width,height,rounding&lt;br /&gt;
  local oWid=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
  local lineV=0&lt;br /&gt;
  if shape.shape==&#039;rulea&#039; then lineV=oWid*3+16 end&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute&amp;quot;) -- create a square transparent container, which will rotate line and arrow together&lt;br /&gt;
  table.insert(result,&amp;quot;; top:&amp;quot;..tostring(row.gridy - w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; left:&amp;quot;..tostring(row.gridx - w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; width:&amp;quot;..tostring(w)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; height:&amp;quot;..tostring(w)..&amp;quot;px; background:transparent; color:inherit;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; transform: rotate( &amp;quot;..tostring(tonumber(string.match(shape.shapeAngle,&amp;quot;[%.%-?%d]+&amp;quot;)) - 90)..&amp;quot;deg);\&amp;quot;&amp;gt;&amp;quot; )&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute&amp;quot;) -- put the line (as a border-right) across the container&lt;br /&gt;
  table.insert(result,&amp;quot;; top:&amp;quot;..tostring(lineV)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; left:&amp;quot;..tostring((w - oWid )/2)..&amp;quot;px; width: 0px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; height: &amp;quot;..tostring(w -lineV)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; border-right: &amp;quot;..shape.outlineWidth..&amp;quot; &amp;quot;..shape.outlineStyle..&amp;quot; &amp;quot;..getColor(shape.outlineColor))&lt;br /&gt;
  table.insert(result,&amp;quot;; background:transparent; color:inherit;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
  if shape.shape==&#039;rulea&#039; then&lt;br /&gt;
	table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute; top: 0px&amp;quot;) --and add arrow head&lt;br /&gt;
	table.insert(result,&amp;quot;; left:&amp;quot;..tostring(w/2-( oWid/2)-oWid*0.55-2)..&amp;quot;px; width: 0; height: 0; outline-width: 0px&amp;quot;)&lt;br /&gt;
	table.insert(result,&amp;quot;; border-left: &amp;quot;..tostring(oWid*1.1+2)..&amp;quot;px solid transparent&amp;quot;)&lt;br /&gt;
	table.insert(result,&amp;quot;; border-right: &amp;quot;..tostring(oWid*1.1+2)..&amp;quot;px solid transparent&amp;quot;)&lt;br /&gt;
	table.insert(result,&amp;quot;; border-bottom: &amp;quot;..tostring(oWid*3+16)..&amp;quot;px solid &amp;quot;..getColor(shape.outlineColor)..&amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeCurveA(result,row,shape) -- draw a curve with Arrow -----&lt;br /&gt;
	local w,h=getsize(shape.shapeSize) -- = width,height&lt;br /&gt;
	local oWid=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
	local Angle=tonumber(string.match(shape.shapeAngle,&amp;quot;[%.%d]+&amp;quot;))&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;&#039;)    --set up out div, which will allow the whole to rotate&lt;br /&gt;
	table.insert(result,&#039;top:&#039;..tostring(row.gridy - (w + oWid*3+16)/2)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;left:&#039;..tostring(row.gridx - ( w + oWid*3+16)/2)..&#039;px; &#039;)&lt;br /&gt;
	table.insert(result,&#039;width: &#039;..tostring(w+oWid*3+16)..&#039;px; &#039;)&lt;br /&gt;
	table.insert(result,&#039;height: &#039;..tostring(w+oWid*3+16)..&#039;px; &#039;) &lt;br /&gt;
	if shape.shape==&#039;curvea&#039; then&lt;br /&gt;
		table.insert(result,&#039;transform: rotate( &#039;..tostring(Angle-120)..&#039;deg);&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	else table.insert(result,&#039;transform: rotate( &#039;..tostring(Angle -62)..&#039;deg);&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	end	&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;&#039;)   --set up div for the rounded corner of a rectangle&lt;br /&gt;
	table.insert(result,&#039;border-left: &#039;..shape.outlineWidth..&#039; &#039;..shape.outlineStyle..&#039; &#039;..getColor(shape.outlineColor)..&#039;;&#039;)&lt;br /&gt;
	if shape.shape==&#039;curvea&#039; then&lt;br /&gt;
  		table.insert(result,&#039;border-radius: 10000px 0 0 &#039;..tostring(w)..&#039;px;  top:0px; left:&#039;..tostring(w*0.25)..&#039;px;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(result,&#039;border-radius: &#039;..tostring(w)..&#039;px 0 0 10000px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;top:&#039;..tostring((oWid*3+16)/2+w*0.15)..&#039;px; left:&#039;..tostring(w*0.25)..&#039;px;&#039;)&lt;br /&gt;
	end -- and add a triangular arrow head&lt;br /&gt;
	table.insert(result,&#039;width: &#039;..tostring(w)..&#039;px; height: &#039;..tostring(w)..&#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;position: absolute; &#039;)&lt;br /&gt;
	if shape.shape==&#039;curvea&#039; then&lt;br /&gt;
		table.insert(result,&#039;transform: rotate(180deg);  top:&#039;..tostring(w-1)..&#039;px; &#039;)&lt;br /&gt;
	else table.insert(result,&#039;transform: rotate(0deg); top: &#039;..tostring(0-( ( oWid*3+16)/2)+1+( w*0.15) )..&#039;px;&#039;)&lt;br /&gt;
	end -- reverse &lt;br /&gt;
	table.insert(result,&#039;left:&#039;..tostring(0-( oWid*0.6)-2+(w*0.25))..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;width: 0; height: 0; outline-width: 0px; border-left: &#039;..tostring(oWid*1.1+2)..&#039;px solid transparent;&#039;)&lt;br /&gt;
	table.insert(result,&#039;border-right: &#039;..tostring(oWid*1.1+2)..&#039;px solid transparent;&#039;)&lt;br /&gt;
	table.insert(result,&#039;border-bottom: &#039;..tostring(oWid*3+16)..&#039;px solid &#039;..getColor(shape.outlineColor)..&#039;;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLineTo (result,x1,y1,x2,y2,oWid, oStyle, oCol,double,shape)&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute;&amp;quot;)  &lt;br /&gt;
	-- draw a line between x1,y1 and x2,y2, px-coords where 0,0 is centre of frame&lt;br /&gt;
	-- Maths calculations thanks to ES&lt;br /&gt;
  local tw&lt;br /&gt;
  if double &amp;lt;= 1 then&lt;br /&gt;
	tw = tonumber(string.match(oWid,&amp;quot;[%.%d]+&amp;quot;))/2 -- shift centre by half the line width&lt;br /&gt;
  else	&lt;br /&gt;
	tw = tonumber(string.match(oWid,&amp;quot;[%.%d]+&amp;quot;)) + (double/2) - 0.5 -- shift centre by a line width + half the gap&lt;br /&gt;
  end&lt;br /&gt;
  -- debugmsg(oWid..&#039;+&#039;..double..&#039;/2=&#039;..tw)&lt;br /&gt;
  table.insert(result,&amp;quot;left: &amp;quot;..tostring(x1+( (x2-x1)/2) - (math.sqrt( ( x2-x1)^2 + (y2-y1)^2 )/2) )..&amp;quot;px;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;top: &amp;quot;..tostring(y1+( ( y2-y1 )/2) - tw)..&amp;quot;px;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;width: &amp;quot;..tostring(math.sqrt( (x2-x1 )^2 + ( y2-y1 )^2) )..&amp;quot;px;&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;height: &amp;quot;..tostring(double)..&amp;quot;px;  background-color:transparent; color:inherit; &amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;outline-width: 0; border-bottom: &amp;quot;..oWid..&amp;quot; &amp;quot;..oStyle..&amp;quot; &amp;quot;..getColor(oCol)..&amp;quot;;&amp;quot; )&lt;br /&gt;
  if double&amp;gt;1 then table.insert(result,&amp;quot;border-top: &amp;quot;..oWid..&amp;quot; &amp;quot;..oStyle..&amp;quot; &amp;quot;..getColor(oCol)..&amp;quot;;&amp;quot; ) end&lt;br /&gt;
  local lineAngle=math.atan(( y2-y1)/( x2-x1 ) )*180/math.pi&lt;br /&gt;
  -- if x1 == x2 then lineAngle=90 end&lt;br /&gt;
  table.insert(result,&amp;quot;transform: rotate(&amp;quot;..lineAngle..&amp;quot;deg);\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
     -- debugmsg(&#039;text angle started as &#039;..shape.textNG..&#039; and lineAngle = &#039;..lineAngle)&lt;br /&gt;
  if (lineAngle &amp;lt; -90) or (lineAngle &amp;gt;90) then lineAngle=lineAngle-180 end&lt;br /&gt;
  if shape and not shape.textNGarg then shape.textNG=tostring(round(lineAngle,0))..&#039;deg&#039; end  -- Put in line angle for a default text angle as well&lt;br /&gt;
  -- if (y2 &amp;gt;= y1) and (x2 &amp;lt;= x1) then lineAngle=lineAngle-180 debugmsg(&#039;arrow angle corrected&#039;) end&lt;br /&gt;
  if x2 &amp;lt; x1 then lineAngle=lineAngle-180 end&lt;br /&gt;
  if shape and not shape.shapeAngleArg and shape.shape == &#039;arrowhead&#039; then shape.shapeAngle=tostring(round(lineAngle,0))..&#039;deg&#039; end  -- line angle for arrowhead&lt;br /&gt;
  -- debugmsg(&#039;text angle is now &#039;..shape.textNG..&#039;with arrow at &#039;..lineAngle)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeClipPath(result,row,shape,outline,tshape) --tshape is a flag to show if the tooltip (title=) is wanted&lt;br /&gt;
  -- return the text css div code to position and draw a shape occupying a specified clippath&lt;br /&gt;
  if string.find(shape.shape, &#039;svgpath,&#039;) and #shape.shape &amp;gt; 9 then&lt;br /&gt;
  	pathshape.svgpath=string.sub(shape.shape,9)&lt;br /&gt;
	shape.shape=&#039;svgpath&#039;&lt;br /&gt;
  end&lt;br /&gt;
  if not pathshape[shape.shape] then&lt;br /&gt;
	debugmsg(mw.addWarning(&#039;shape&#039;..row.code..&#039; = &#039;..shape.shape..&#039;. The shape name is not defined&#039;))&lt;br /&gt;
    return&lt;br /&gt;
  end&lt;br /&gt;
  local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
  	if shape.shape == &#039;arrowhead&#039; then -- enlarge arrowheads, as they only go to the middle of the notional shape-size&lt;br /&gt;
		w=w*2.5 &lt;br /&gt;
		h=h*2.5 &lt;br /&gt;
	end&lt;br /&gt;
  if string.match(shape.shape,&amp;quot;circle&amp;quot;) or string.match(shape.shape,&amp;quot;square&amp;quot;) then h=w end -- use ellipse and box for stretched shapes&lt;br /&gt;
  local shifth,shiftv = 0,0&lt;br /&gt;
  if string.match(shape.shape,&amp;quot;triangle&amp;quot;) then&lt;br /&gt;
    shiftv,shifth =tshift(shape.shapeAngle)&lt;br /&gt;
  end&lt;br /&gt;
  if outline then&lt;br /&gt;
    local p=tonumber(string.match(shape.outlineWidth,&amp;quot;[%.%d]+&amp;quot;)) or 0&lt;br /&gt;
    w=w+p*2&lt;br /&gt;
    h=h+p*2&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot;&amp;lt;div &amp;quot;)&lt;br /&gt;
  if tshape then -- Add tooltip if needed&lt;br /&gt;
    table.insert(result,&amp;quot; title=\&amp;quot;&amp;quot;..row.title..&amp;quot;\&amp;quot; &amp;quot;)&lt;br /&gt;
  end        &lt;br /&gt;
  table.insert(result,&amp;quot;style=\&amp;quot;display:inline-block; position: absolute; background-color:&amp;quot;)&lt;br /&gt;
  if outline then&lt;br /&gt;
    table.insert(result,getColor(shape.outlineColor)) -- fill with outline colour, to make a &#039;base layer&#039;&lt;br /&gt;
  else&lt;br /&gt;
     table.insert(result,getColor(shape.shapeColor))&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot;; color:inherit; clip-path:path(nonzero, &amp;amp;#39;&amp;quot;..pathshape[shape.shape]..&amp;quot;&amp;amp;#39;) &amp;quot;)&lt;br /&gt;
  -- adds the required clippath data from the table of pathshape string literals&lt;br /&gt;
  table.insert(result,&amp;quot;; top:&amp;quot;..tostring(row.gridy - 10 + h*shiftv)..&amp;quot;px&amp;quot;) &lt;br /&gt;
  table.insert(result,&amp;quot;; left:&amp;quot;..tostring(row.gridx - 10 + w*shifth)..&amp;quot;px&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;; width:20px&amp;quot;) -- needs to be a path within a 20px20px box, and then rescales using size values to match other shape sizes&lt;br /&gt;
  table.insert(result,&amp;quot;; height:20px; transform:&amp;quot;)&lt;br /&gt;
  if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then &lt;br /&gt;
    table.insert(result,&amp;quot; rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  table.insert(result,&amp;quot; scale(&amp;quot;..tostring(w/16)..&amp;quot;, &amp;quot;..tostring(h/16)..&amp;quot;)&amp;quot;)&lt;br /&gt;
  table.insert(result,&amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeImage(result,row,shape)&lt;br /&gt;
	local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
	local image=shape.shapeFile&lt;br /&gt;
	if not image or image==&#039;&#039; then image=&#039;Red pog.svg&#039; end&lt;br /&gt;
    local imagediv=mw.html.create (&#039;div&#039;)&lt;br /&gt;
	imagediv:css(&#039;position&#039;, &amp;quot;absolute&amp;quot;)&lt;br /&gt;
	if shape.shapeAngle ~= &amp;quot;0deg&amp;quot; then&lt;br /&gt;
		imagediv:css(&#039;transform&#039;,&amp;quot;rotate(&amp;quot;..shape.shapeAngle..&amp;quot;)&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	imagediv&lt;br /&gt;
	:css(&#039;top&#039;, (row.gridy+2 + math.min(h/2-12,0) - h/2)..&amp;quot;px&amp;quot;) --File seems to adjust pos for small images&lt;br /&gt;
	:css(&#039;left&#039;, (row.gridx-1-w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;background-color&#039;, &amp;quot;transparent&amp;quot; )&lt;br /&gt;
	:css(&#039;color&#039;,&#039;inherit&#039;)&lt;br /&gt;
	:wikitext(&#039;[[file:&#039;..image..&#039;|&#039;..tostring(w+2)..&#039;px|alt=&#039;..(row.title or &#039;&#039;)..&#039;|link=]]&#039;)&lt;br /&gt;
  table.insert(result,tostring(imagediv))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makePhotoPanel(result,row,shape)&lt;br /&gt;
	local h=row.ppheight&lt;br /&gt;
	table.insert(result, &#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(row.gridy+row.dy-h/2)..&#039;px;&#039; )&lt;br /&gt;
	table.insert(result, &#039;left: &#039;..tostring(row.gridx+row.dx - row.ppwidth/2)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result, &#039;width: &#039;..tostring(row.ppwidth)..&#039;px; height: &#039;..tostring(h)..&#039;px; border-radius: 2px; color:inherit;&#039;)&lt;br /&gt;
	table.insert(result, &#039;background-color: #E8E8D6; outline: 2px solid &#039;..getColor(shape.textCL)..&#039;; box-shadow: 2px 2px 4px #33203335;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	if row.photoImage  and row.photowidth &amp;gt;0 then&lt;br /&gt;
		table.insert(result, &#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(row.gridy+row.dy-h/2)..&#039;px;&#039;)&lt;br /&gt;
		if row.labelPos==&#039;left&#039; or string.find(row.labelPos,&#039;west&#039;) then&lt;br /&gt;
			table.insert(result, &#039;left: &#039;..tostring(row.gridx+row.dx  - row.ppwidth/2)..&#039;px;&#039;)&lt;br /&gt;
			row.dx=row.dx+row.photowidth/2&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(result, &#039;left: &#039;..tostring(row.gridx+row.dx + (row.ppwidth-row.photowidth) - row.ppwidth/2)..&#039;px;&#039;)&lt;br /&gt;
			row.dx=row.dx-row.photowidth/2&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result, &#039;background-color:transparent; color:inherit; border-radius: 2px;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		table.insert(result,&#039;[[File:&#039;..row.photoImage..&#039;|x&#039;..tostring(h)..&#039;px|File:&#039;..row.photoImage..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
		row.labelPos=&#039;center&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makePanelText(result, row, shape)&lt;br /&gt;
	local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
	local ty=tonumber(string.match(shape.textSZ or &#039;11&#039;,&amp;quot;%d+&amp;quot;) )&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position:absolute; line-height: 120%; font-size: &#039;..shape.textSZ..&#039;; color:&#039;..getColor(shape.textCL)..&#039;;&#039;)&lt;br /&gt;
	if row.labelPos == &#039;left&#039; or string.find(row.labelPos,&#039;west&#039;) then&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.dy+row.gridy+(ty/3))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+3)..&#039;px; text-align: left; width:&#039;..tostring(w)..&#039;px;&#039;)&lt;br /&gt;
	elseif row.labelPos == &#039;right&#039; or string.find(row.labelPos,&#039;east&#039;) then&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+(ty/3))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+w-3)..&#039;px; text-align: right; width: max-content; transform: translateX(-100%);&#039;)&lt;br /&gt;
	elseif row.labelPos == &#039;top&#039; or row.labelPos== &#039;north&#039; then&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+(ty/3))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+(w/2))..&#039;px; text-align: center; width:max-content; transform: translateX(-50%);&#039;)&lt;br /&gt;
	elseif row.labelPos == &#039;bottom&#039; or row.labelPos==&#039;south&#039; then&lt;br /&gt;
		local bry=(select(2, string.gsub(row.labelText,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))+1)*1.1&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+w-(ty*bry))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+(w/2))..&#039;px; text-align: center; width:max-content; transform: translateX(-50%);&#039;)&lt;br /&gt;
	else -- center or centre&lt;br /&gt;
		local bry=(select(2, string.gsub(row.labelText,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))+1)*0.6&lt;br /&gt;
		table.insert(result,&#039;top: &#039;..tostring(row.gridy+(h/2)-(ty*bry))..&#039;px;&#039;)&lt;br /&gt;
		table.insert(result,&#039;left: &#039;..tostring(row.gridx+(w/2))..&#039;px; text-align: center; width:max-content; transform: translateX(-50%);&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if shape.textSP and shape.textSP ~=&#039;0px&#039; then table.insert(result,&amp;quot;letter-spacing: &amp;quot;..shape.textSP..&#039;;&#039;) end&lt;br /&gt;
	if shape.textLH and shape.textLH ~=&#039;120%&#039; then table.insert(result,&amp;quot;line-height: &amp;quot;..shape.textLH..&#039;;&#039;) end&lt;br /&gt;
	table.insert(result,&amp;quot;vertical-align: middle;\&amp;quot;&amp;gt;&amp;quot;..row.labelText..&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTextItem(result, row, shape, align, tlink, textItem, dotItem)&lt;br /&gt;
	local w,h,r=getsize(shape.shapeSize)&lt;br /&gt;
	table.insert(result,&amp;quot;&amp;lt;div &amp;quot;)&lt;br /&gt;
	if row.title ~= &amp;quot;&amp;quot; then table.insert(result,&amp;quot; title=\&amp;quot;&amp;quot;..row.title..&amp;quot;\&amp;quot; &amp;quot;) end&lt;br /&gt;
	local ty,bry,linkoffset = 0,0,0&lt;br /&gt;
	local compy=0&lt;br /&gt;
	local lh=tonumber(string.match(shape.textLH or &#039;120&#039;,&amp;quot;%d+&amp;quot;))/100&lt;br /&gt;
	if dotItem==1 or (dotItem==2 and row.posType~=&#039;n-line&#039;) then	-- if there is a dotTag in the middle of the shape then use the tag settings&lt;br /&gt;
		ty=tonumber(string.match(shape.tagSize,&amp;quot;%d+&amp;quot;)) or 0&lt;br /&gt;
		table.insert(result,&amp;quot;style=\&amp;quot;position:absolute; line-height: 120%; top: &amp;quot;..tostring(row.gridy-ty*0.62))&lt;br /&gt;
		table.insert(result,&amp;quot;px; left: &amp;quot;..tostring(row.gridx)..&amp;quot;px; width: fit-content; &amp;quot;)&lt;br /&gt;
        table.insert(result,&amp;quot;text-align: center; color: &amp;quot;..getColor(shape.tagColor)..&amp;quot;; background-color: transparent;&amp;quot;)&lt;br /&gt;
        local trf=&amp;quot;&amp;quot;&lt;br /&gt;
		if shape.tagAngle ~=&amp;quot;0deg&amp;quot; then trf=&amp;quot; rotate(&amp;quot;..shape.tagAngle..&amp;quot;)&amp;quot; end&lt;br /&gt;
        table.insert(result, &amp;quot;transform: translateX(-50%)&amp;quot;..trf..&amp;quot;; font-size: &amp;quot;..shape.tagSize..&amp;quot;;&amp;quot;)&lt;br /&gt;
        if shape.tagSpacer~=&#039;0px&#039; then table.insert(result, &amp;quot;letter-spacing:&amp;quot;..shape.tagSpacer..&amp;quot;;&amp;quot;) end&lt;br /&gt;
    else -- or add tfx settings for left, right or center align, colors, backgrounds, border-outline&lt;br /&gt;
    	table.insert(result,&#039;style=&amp;quot;position:absolute; &#039;)&lt;br /&gt;
    	if dotItem==2 then -- dotTag is out at x,y so 85%&lt;br /&gt;
    		ty=tonumber(string.match(shape.tagSize or &#039;0&#039;,&amp;quot;%d+&amp;quot;))&lt;br /&gt;
    		table.insert(result,&#039;font-size: &#039;..shape.tagSize..&#039;; padding:0px 2px;line-height: 85%; top: &#039;..tostring(row.dy+row.gridy-ty*0.52))&lt;br /&gt;
    	else -- it is labelText, so use textLH or 120%&lt;br /&gt;
    		ty=tonumber(string.match(shape.textSZ or &#039;11&#039;,&amp;quot;%d+&amp;quot;))&lt;br /&gt;
			if row.labelPos==&#039;northwest&#039; or row.labelPos==&#039;northeast&#039; then compy=-ty&lt;br /&gt;
			elseif row.labelPos==&#039;southeast&#039; or row.labelPos==&#039;southwest&#039; then compy=ty/2 end&lt;br /&gt;
    		if row.labelPos and not (row.labelPos== &#039;auto&#039; or row.labelPos==&#039;&#039;) then&lt;br /&gt;
    			bry=(select(2, string.gsub(row.labelText,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))*lh) -- is it a multiline text? expand by line-height /120%?&lt;br /&gt;
    			if row.posType == &#039;with-line&#039; then bry=0 end&lt;br /&gt;
    			if row.labelPos==&#039;bottom&#039; or row.labelPos == &#039;south&#039; then bry = 0 -- and shift by none, all or half&lt;br /&gt;
    			elseif row.labelPos==&#039;top&#039; or row.labelPos == &#039;north&#039; then &lt;br /&gt;
    				if shape.shape==&#039;image:&#039; then bry= 1 + math.min(w/2-10,0)-bry*ty&lt;br /&gt;
    				else bry= -bry*ty+2&lt;br /&gt;
    				end&lt;br /&gt;
    			else bry=-bry*(ty/2 * lh)&lt;br /&gt;
    			end&lt;br /&gt;
    		end&lt;br /&gt;
    		if row.posType == &#039;photo-panel&#039; then bry=bry+3 end&lt;br /&gt;
    		table.insert(result,&#039;font-size: &#039;..shape.textSZ..&#039;; padding:0px 3px;line-height: &#039;..shape.textLH..&#039;; &#039;)&lt;br /&gt;
    		table.insert(result,&#039;top: &#039;..tostring(row.dy+row.gridy+compy+bry-ty*lh/2))&lt;br /&gt;
    	end&lt;br /&gt;
		table.insert(result,&amp;quot;px; left: &amp;quot;..tostring(row.dx+row.gridx)..&amp;quot;px; color: &amp;quot;..getColor(shape.textCL)..&amp;quot;; &amp;quot;)&lt;br /&gt;
		table.insert(result,&amp;quot;width: max-content; &amp;quot;)&lt;br /&gt;
    	local trf=&amp;quot;&amp;quot;&lt;br /&gt;
		if shape.textNG ~=&amp;quot;0deg&amp;quot; then trf=&amp;quot;rotate(&amp;quot;..shape.textNG..&amp;quot;)&amp;quot; end&lt;br /&gt;
        if shape.textOL~=&amp;quot;0px&amp;quot; then&lt;br /&gt;
        	table.insert(result,&amp;quot;background-color: &amp;quot;..getColor(shape.textBG)..&amp;quot;; &amp;quot;) &lt;br /&gt;
            table.insert(result,&amp;quot;border: &amp;quot;..shape.textOL..&amp;quot; solid &amp;quot;..getColor(shape.textCL)..&amp;quot;; border-radius:6px;&amp;quot;)&lt;br /&gt;
        else table.insert(result,&amp;quot;background-color: transparent;&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
        if row.labelPos==&amp;quot;right&amp;quot; or string.find(row.labelPos,&#039;east&#039;) then&lt;br /&gt;
          table.insert(result,&amp;quot;text-align: left; &amp;quot;)&lt;br /&gt;
          linkoffset=w&lt;br /&gt;
          if shape.textNG ~=&amp;quot;0px&amp;quot; then table.insert(result,&amp;quot;transform-origin: left; transform: rotate(&amp;quot;..shape.textNG..&amp;quot;); &amp;quot;) end&lt;br /&gt;
        elseif row.labelPos==&amp;quot;left&amp;quot; or string.find(row.labelPos,&#039;west&#039;) then&lt;br /&gt;
          if shape.textNG ~=&amp;quot;0px&amp;quot; then table.insert(result,&amp;quot;transform-origin: right;&amp;quot;) end&lt;br /&gt;
          linkoffset=-w&lt;br /&gt;
          table.insert(result,&amp;quot;text-align: right; transform: translateX(-100%) &amp;quot;..trf..&amp;quot;; &amp;quot;)&lt;br /&gt;
        else&lt;br /&gt;
          table.insert(result,&amp;quot;text-align: center; transform: translateX(-50%) &amp;quot;..trf..&amp;quot;; &amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
		table.insert(result,&#039;font-weight: normal; line-height: &#039;..shape.textLH..&#039;; letter-spacing:&#039;..shape.textSP..&#039;; vertical-align: bottom;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if string.find(shape.textAT or &#039;&#039;,&#039;bold&#039;) then textItem=&#039;&amp;lt;b&amp;gt;&#039;..textItem..&#039;&amp;lt;/b&amp;gt;&#039; end&lt;br /&gt;
	if string.find(shape.textAT or &#039;&#039;,&#039;italic&#039;) then textItem=&#039;&amp;lt;i&amp;gt;&#039;..textItem..&#039;&amp;lt;/i&amp;gt;&#039; end&lt;br /&gt;
	if shape.textOL==&#039;0px&#039; and shape.textBG~=&#039;transparent&#039; and dotItem==0 then&lt;br /&gt;
		table.insert(result,&#039;\&amp;quot;&amp;gt;&amp;lt;span style=\&amp;quot;background-color: &#039;..getColor(shape.textBG)..&#039;; color:inherit;\&amp;quot;&amp;gt;&#039;..textItem..&#039;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(result,&amp;quot;\&amp;quot;&amp;gt;&amp;quot;..textItem..&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if tlink~=&#039;&#039; and not string.match(row.param1 or &amp;quot;&amp;quot;,&amp;quot;nolink&amp;quot;) then &lt;br /&gt;
	  table.insert(result,makeLinkBox(row.gridx+row.dx+linkoffset, row.gridy+row.dy+bry, 16, row.dotTag..&#039; &#039;..row.title,tlink))&lt;br /&gt;
	end&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function getshapetable(row,shape) -- Construct CSS divs for a dot from shape and map data&lt;br /&gt;
    local result={}&lt;br /&gt;
    local w,h,rndg=getsize(shape.shapeSize)&lt;br /&gt;
    local tshape,tlink=checkfortooltip(row.title,row.dx,row.dy,row.dotTag,row.dlink,string.match(row.param1 or &amp;quot;&amp;quot;,&amp;quot;nolink&amp;quot;) )&lt;br /&gt;
    local align=row.labelPos or &#039;&#039;&lt;br /&gt;
    local offsetx,offsety=0,0&lt;br /&gt;
    local ty=tonumber(string.match((shape.tagSize or 9),&amp;quot;%d+&amp;quot; ))&lt;br /&gt;
    if row.labelText and row.labelText~=&#039;&#039; then ty=tonumber(string.match((shape.textSZ or 11),&amp;quot;%d+&amp;quot; )) &lt;br /&gt;
    else align=&#039;center&#039; end -- it is just for dotTag, so justify center&lt;br /&gt;
-- identify align value and extend offsets&lt;br /&gt;
	local widthzone,heightzone = (w/2)+1,(h/2)+1&lt;br /&gt;
	local theta,r = math.deg( math.atan2(row.dy, row.dx)) , math.sqrt(row.dx^2 + row.dy^2)&lt;br /&gt;
	if align==&#039;auto&#039; or align==&#039;&#039; then &lt;br /&gt;
		if (theta &amp;lt; -112 or theta &amp;gt; 112) and math.abs(row.dx)&amp;gt;=w/2 and math.abs(row.dy)&amp;lt;w/1.4 then align = &amp;quot;left&amp;quot; offsetx=1&lt;br /&gt;
		elseif (theta &amp;gt; -68 and theta &amp;lt; 68) and math.abs(row.dx)&amp;gt;=w/2 and math.abs(row.dy)&amp;lt;w/1.4 then align = &amp;quot;right&amp;quot; offsetx=-1&lt;br /&gt;
		elseif theta &amp;lt;0 then offsety=ty/2-1 -- bottom&lt;br /&gt;
		else offsety=0-ty/2+1 -- top&lt;br /&gt;
		end&lt;br /&gt;
	elseif align==&#039;left&#039; or string.find(align,&#039;west&#039;) then &lt;br /&gt;
	  row.dx=row.dx - w/2 widthzone=4  offsetx=-1&lt;br /&gt;
	elseif align==&#039;right&#039; or string.find(align,&#039;east&#039;) then &lt;br /&gt;
	  row.dx=row.dx + w/2 widthzone=4  offsetx=1&lt;br /&gt;
	elseif align==&#039;top&#039; or align==&#039;north&#039; then&lt;br /&gt;
		if string.find(shape.shape,&#039;curve&#039;) then&lt;br /&gt;
			row.dy=row.dy-(h/2)-12 heightzone=4 offsety=ty/2-1&lt;br /&gt;
		else&lt;br /&gt;
			row.dy=row.dy - h-2 heightzone=4 offsety=ty/2-1&lt;br /&gt;
		end&lt;br /&gt;
	elseif align==&#039;bottom&#039; or align==&#039;south&#039; then &lt;br /&gt;
		if string.find(shape.shape,&#039;curve&#039;) then&lt;br /&gt;
			row.dy=row.dy+(h/2) heightzone=4 offsety=ty/2-1&lt;br /&gt;
		else&lt;br /&gt;
			row.dy=row.dy + h+2 heightzone=4 offsety=0-ty/2-1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if shape.textEW ~= &amp;quot;0px&amp;quot; and not string.match(row.param1 or &amp;quot;&amp;quot;,&amp;quot;noline&amp;quot;) then &lt;br /&gt;
		-- debugmsg(&#039;r-(w/2) &amp;gt; widthzone   r-w/2=&#039;..tostring(r-(w/2))..&#039;, widthzone=&#039;..widthzone..&#039;, label=&#039;..(row.labelText or &#039;&#039;)..&#039;, postype=&#039;..(row.posType or &#039;&#039;))&lt;br /&gt;
		makeLineTo(result, row.gridx+1, row.gridy-1, row.gridx+row.dx+offsetx, row.gridy+row.dy+offsety, shape.textEW, shape.textES,shape.textEC,1)&lt;br /&gt;
	    -- debugmsg(&#039;n-line for &#039;..row.code..&#039;:&#039;..tostring(row.gridx+1)..&#039;, &#039;..tostring(row.gridy-1)..&#039;, &#039;..tostring(row.gridx+row.dx+offsetx)..&#039;, &#039;..tostring(row.gridy+row.dy+offsety)..&#039;, with width &#039;..tostring(shape.textEW)..&#039;px &#039;..(shape.textES or &#039;no style&#039;)..&#039; and color &#039;..shape.textEC)&lt;br /&gt;
	end&lt;br /&gt;
	if row.posType and row.posType==&#039;mark-line&#039; then&lt;br /&gt;
		if row.gridx2 and row.gridy2 then&lt;br /&gt;
			makeLineTo(result, row.gridx, row.gridy, row.gridx2, row.gridy2, tostring(row.mlWidth)..&#039;px&#039;, row.mlStyle, getColor(shape.textEC),row.mlGap,shape)&lt;br /&gt;
			-- debugmsg(&#039;mark-line line drawn from &#039;..row.code..&#039; with width &#039;..tostring(row.mlWidth)..&#039;px &#039;..(row.mlStyle or &#039;no style&#039;)..&#039; and color &#039;..getColor(shape.textEC))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
    if w ~= 0 then&lt;br /&gt;
      if shape.shape==&#039;itriangle&#039; then shape.shape=&#039;triangle&#039; shape.shapeSize=tostring(w)..&#039;px&#039;..tostring(w/2)..&#039;px&#039; end&lt;br /&gt;
      if shape.shape==&amp;quot;triangle&amp;quot; then&lt;br /&gt;
        if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
          makeTriangle(result,row,shape,true,false) -- larger triangle to give the outline, if required&lt;br /&gt;
        end&lt;br /&gt;
        makeTriangle(result,row,shape,false,tshape) -- smaller triangle to fit over the top&lt;br /&gt;
      elseif shape.shape==&amp;quot;square&amp;quot; or shape.shape==&amp;quot;box&amp;quot; or shape.shape==&#039;panel&#039; then&lt;br /&gt;
        makeSquare(result,row,shape,tshape)&lt;br /&gt;
      elseif shape.shape==&amp;quot;circle&amp;quot; or shape.shape==&amp;quot;ellipse&amp;quot; then&lt;br /&gt;
        makeCircle(result,row,shape,tshape)&lt;br /&gt;
      elseif string.find(shape.shape,&#039;image:&#039;)==1 then&lt;br /&gt;
   		makeImage(result,row,shape)&lt;br /&gt;
      elseif shape.shape==&amp;quot;rulea&amp;quot; or shape.shape==&#039;rule&#039; then&lt;br /&gt;
        makeRuleA(result,row,shape)&lt;br /&gt;
      elseif shape.shape==&amp;quot;curvea&amp;quot; or shape.shape==&amp;quot;curvec&amp;quot; then&lt;br /&gt;
        makeCurveA(result,row,shape)&lt;br /&gt;
      else -- use a pathshape clipPath&lt;br /&gt;
        if shape.outlineWidth ~= &amp;quot;0px&amp;quot; then&lt;br /&gt;
          makeClipPath(result,row,shape,true,false) -- larger path-shape to give the outline, if required&lt;br /&gt;
        end&lt;br /&gt;
        makeClipPath(result,row,shape,false,tshape)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
	if row.ppwidth and row.ppwidth&amp;gt;0 then makePhotoPanel(result,row,shape) end&lt;br /&gt;
    if shape.shape==&#039;panel&#039; and row.labelText then makePanelText(result, row, shape)&lt;br /&gt;
    else&lt;br /&gt;
	    if row.dotTag and row.dotTag ~= &amp;quot;&amp;quot; then -- there is a dotTag&lt;br /&gt;
	    	if (row.dx==0 and row.dy==0) and w&amp;gt;0 then  -- it is on the dot so if dotsize is not 0 any label is ignored&lt;br /&gt;
	    		makeTextItem(result, row, shape, align, tlink, &#039;&amp;lt;b&amp;gt;&#039;..row.dotTag..&#039;&amp;lt;/b&amp;gt;&#039;, 1)&lt;br /&gt;
	    	else &lt;br /&gt;
	    		if row.labelText and row.labelText~=&#039;&#039; then -- tag and label both used&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, &#039;&#039;, &#039;&amp;lt;b&amp;gt;&#039;..row.dotTag..&#039;&amp;lt;/b&amp;gt;&#039;, 1)&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, tlink, row.labelText, 0)&lt;br /&gt;
	    		else&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, &#039;&#039;, &#039;&amp;lt;b&amp;gt;&#039;..row.dotTag..&#039;&amp;lt;/b&amp;gt;&#039;, 1)&lt;br /&gt;
	    			makeTextItem(result, row, shape, align, tlink, row.dotTag, 2) -- tag is ouside the dot&lt;br /&gt;
	    		end&lt;br /&gt;
	    	end&lt;br /&gt;
	    else&lt;br /&gt;
	    	if (row.labelText and row.labelText~=&#039;&#039;) then -- just the label. No tag&lt;br /&gt;
	    		makeTextItem(result, row, shape, align, tlink, row.labelText, 0)&lt;br /&gt;
	    	end&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
    if tlink and tlink~=&#039;&#039; then&lt;br /&gt;
		table.insert(result,makeLinkBox(row.gridx, row.gridy,w+3,row.dotTag..&#039; &#039;..row.title,tlink))&lt;br /&gt;
	end&lt;br /&gt;
    return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getmapframecontent(args,use)&lt;br /&gt;
	local result, comma= {}, &#039;&#039;&lt;br /&gt;
	local propertyTable= {}&lt;br /&gt;
	local color=splitItem(string.lower( args[&#039;map-data-color&#039;] or &#039;dark orange&#039;), 2)&lt;br /&gt;
	if use == &#039;basemap&#039; then &lt;br /&gt;
		table.insert(result, &#039;[&#039;) &lt;br /&gt;
		propertyTable.stroke = &amp;quot;#000000&amp;quot;&lt;br /&gt;
		propertyTable[&#039;stroke-width&#039;] = tonumber(args[&#039;map-data-width&#039;] or &#039;6&#039;)&lt;br /&gt;
		if color[2] then&lt;br /&gt;
			propertyTable[&#039;stroke-opacity&#039;] = tonumber(color[2] or &#039;20&#039;)/100&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		propertyTable.title = args[&#039;map-data-text&#039;] or args[&#039;map-data&#039;] or &#039;&#039;&lt;br /&gt;
		propertyTable.stroke = getColor(color[1])&lt;br /&gt;
		propertyTable[&#039;stroke-width&#039;] = tonumber(args[&#039;map-data-width&#039;] or &#039;6&#039;)&lt;br /&gt;
		propertyTable[&#039;stroke-opacity&#039;] = tonumber(color[2] or &#039;100&#039;)/100 &lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;map-data-inverse&#039;] then &lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geomask&#039;,&lt;br /&gt;
			ids = args[&#039;map-data-inverse&#039;],&lt;br /&gt;
			properties =  {title = (args[&#039;map-data-text&#039;] or &#039;&#039;), &lt;br /&gt;
				stroke = &#039;#555555&#039;,&lt;br /&gt;
				fill = &#039;#555555&#039;, &lt;br /&gt;
				[&#039;fill-opacity&#039;] = 0.1,&lt;br /&gt;
				[&#039;stroke-width&#039;] = 1,&lt;br /&gt;
				[&#039;stroke-opacity&#039;] = 0.5 }&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-data-heavy&#039;] then&lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geoline&#039;,&lt;br /&gt;
			ids = args[&#039;map-data-heavy&#039;],&lt;br /&gt;
			properties =  { title = args[&#039;map-data-heavy&#039;],&lt;br /&gt;
				stroke = propertyTable.stroke,&lt;br /&gt;
				[&#039;stroke-width&#039;] = 9,&lt;br /&gt;
				[&#039;stroke-opacity&#039;] = propertyTable[&#039;stroke-opacity&#039;] or 0.2 }&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, comma .. mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-data-light&#039;] and args[&#039;map-data-light&#039;] ~= &#039;&#039; then&lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geoline&#039;,&lt;br /&gt;
			ids = args[&#039;map-data-light&#039;],&lt;br /&gt;
			properties =  { title = args[&#039;map-data-light&#039;],&lt;br /&gt;
				stroke = propertyTable.stroke,&lt;br /&gt;
				[&#039;stroke-width&#039;] = 3,&lt;br /&gt;
				[&#039;stroke-opacity&#039;] = propertyTable[&#039;stroke-opacity&#039;] or 0.4 }&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, comma .. mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-data&#039;] then&lt;br /&gt;
    	propertyTable[&#039;stroke-opacity&#039;] = propertyTable[&#039;stroke-opacity&#039;] or 0.2 &lt;br /&gt;
		local mapJson = mw.text.jsonEncode{&lt;br /&gt;
			type = &#039;ExternalData&#039;,&lt;br /&gt;
			service = &#039;geoline&#039;,&lt;br /&gt;
			ids = args[&#039;map-data&#039;],&lt;br /&gt;
			properties = propertyTable&lt;br /&gt;
		}&lt;br /&gt;
		table.insert(result, comma .. mapJson)&lt;br /&gt;
		comma=&#039;, &#039;&lt;br /&gt;
   	end&lt;br /&gt;
    if args[&#039;map-wdqs&#039;] then -- inserts a SPARQL wdqs query to find geopoints, geoshapes etc from wikidata&lt;br /&gt;
        local mapSparql = mw.text.jsonEncode{&lt;br /&gt;
            type = &#039;ExternalData&#039;,&lt;br /&gt;
            service = args[&#039;map-wdqs-type&#039;] or &#039;geopoint&#039;,&lt;br /&gt;
            query = args[&#039;map-wdqs&#039;],&lt;br /&gt;
        }&lt;br /&gt;
        table.insert(result, comma .. mapSparql)&lt;br /&gt;
        -- debugmsg(&#039;mapSparql = &#039; .. mapSparql)&lt;br /&gt;
        comma=&#039;, &#039;&lt;br /&gt;
    end&lt;br /&gt;
    if args[&#039;map-raw&#039;] then&lt;br /&gt;
    	table.insert(result, comma .. args[&#039;map-raw&#039;])&lt;br /&gt;
    end&lt;br /&gt;
	if use==&#039;basemap&#039; then table.insert(result,&#039;]&#039;) end	&lt;br /&gt;
    return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--eg | minilocator=filename,bottom right,132px153px, 38%,60%, 22px&lt;br /&gt;
local function makeLocatorMap (args, result)&lt;br /&gt;
	local miniFile,pos,itemlist,miniW,miniH, miniX,miniY,miniBox, miniBH&lt;br /&gt;
	if args[&#039;mini-locator&#039;] then&lt;br /&gt;
		pos,miniFile=extractItem(args[&#039;mini-locator&#039;]) -- first item is filename, in quotes if it includes commas&lt;br /&gt;
		itemlist=splitItem(pos,5) -- put items in a table filename removed, position,WpxHpx, x%y%,box&lt;br /&gt;
		pos=itemlist[2] or &#039;right&#039;&lt;br /&gt;
		miniW,miniH=getsize(itemlist[3])&lt;br /&gt;
		miniX=tonumber(string.match(itemlist[4] or &#039;0&#039;,&#039;[%d]+&#039;))*miniW/100&lt;br /&gt;
		miniY=tonumber(string.match(itemlist[5] or &#039;0&#039;,&#039;[%d]+&#039;))*miniH/100&lt;br /&gt;
		miniBox=tonumber(string.match(itemlist[6] or &#039;0&#039;,&#039;[%d]+&#039;))&lt;br /&gt;
		miniBox=miniBox*miniW/100&lt;br /&gt;
		miniBH=miniBox * maplist.height/maplist.width &lt;br /&gt;
	elseif args[&#039;mini-file&#039;] then &lt;br /&gt;
		miniFile = args[&#039;mini-file&#039;]&lt;br /&gt;
		pos=string.lower(args.minimap or &#039;right&#039;)&lt;br /&gt;
		if pos==&#039;file&#039; then pos=&#039;right&#039; end&lt;br /&gt;
		miniW,miniH = tonumber(args[&#039;mini-width&#039;] or 60), tonumber(args[&#039;mini-height&#039;] or 60) -- find top left corner of locator&lt;br /&gt;
		miniBox,miniBH=tonumber(args[&#039;minimap-boxwidth&#039;] or &#039;0&#039;),0 -- firm up pos offsets for dot (with % or not) and boxsize if any, &lt;br /&gt;
		miniX, miniY=args[&#039;minipog-gx&#039;],args[&#039;minipog-gy&#039;]&lt;br /&gt;
		if not miniX then miniX=tonumber(args[&#039;minipog-x&#039;] or &#039;0&#039;) else miniX=tonumber(miniX)*tonumber(miniW)/100 end&lt;br /&gt;
		if not miniY then miniY=tonumber(args[&#039;minipog-y&#039;] or &#039;0&#039;) else miniY=tonumber(miniY)*tonumber(miniH)/100 end&lt;br /&gt;
		if args[&#039;minipog-gx&#039;] then miniBox=miniBox*miniW/100 end&lt;br /&gt;
		miniBH=miniBox * maplist.height/maplist.width &lt;br /&gt;
	else return end&lt;br /&gt;
	local miniTop,miniLeft=0,1&lt;br /&gt;
	if not string.find(pos,&#039;top&#039;) then --only use top left, as link box is in top right or put bottom left or right&lt;br /&gt;
		miniTop=maplist.height+2-miniH  &lt;br /&gt;
		if string.find(pos,&#039;right&#039;) then &lt;br /&gt;
			miniTop=miniTop-15              -- to avoid (c) line&lt;br /&gt;
			miniLeft=maplist.width-1-miniW&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; outline-width: 1px; outline-style: solid; outline-color: white;&#039;)&lt;br /&gt;
	table.insert(result,&#039;top: &#039;..tostring(miniTop)..&#039;px; left:&#039;..tostring(miniLeft)..&#039;px; width:&#039;..tostring(miniW)..&#039;px;&#039; )&lt;br /&gt;
	table.insert(result,&#039;background-color:transparent; color:inherit;&amp;quot;&amp;gt;[[File:&#039;..miniFile..&#039;|&#039;..tostring(miniW)..&#039;px|File:&#039;..miniFile..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	if miniX and miniX&amp;gt;0 then&lt;br /&gt;
		if args[&#039;minipog-y&#039;] then miniY=miniY/1.04 end&lt;br /&gt;
		if args[&#039;minipog-x&#039;] then miniX=miniX/1.04 end&lt;br /&gt;
		if miniBox&amp;lt;1 then&lt;br /&gt;
			table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(miniY+miniTop-3-6)..&#039;px; left:&#039;..tostring(miniX+miniLeft-3)..&#039;px;&#039;)&lt;br /&gt;
			table.insert(result, &#039;width: 6px; background-color:transparent; color:inherit;&amp;quot;&amp;gt;[[File:Red pog.svg|6px|link=]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(miniY+miniTop-miniBH/2)..&#039;px; left:&#039;..tostring(miniX+miniLeft-miniBox/2)..&#039;px;&#039;)&lt;br /&gt;
			table.insert(result, &#039;width: &#039;..tostring(miniBox)..&#039;px; height:&#039;..tostring(miniBH)..&#039;px; outline:1px solid #AA1205; background-color:#AA120522; color:inherit;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeArcText(args,result,nval)&lt;br /&gt;
	local items, itemlist=&#039;&#039;,{}&lt;br /&gt;
	local arcText=&#039;&#039;&lt;br /&gt;
	if args[&#039;arc&#039;..nval] then &lt;br /&gt;
		items=convertCoords (args[&#039;arc&#039;..nval])&lt;br /&gt;
		items,arcText=extractItem(items) -- first item is text, in quotes if it includes commas&lt;br /&gt;
		itemlist=splitItem(items,9) -- put items in a table: text, lat,lon,size,color,angle,gap,radius,ellipse&lt;br /&gt;
		if itemlist[4]==&#039;&#039; then itemlist[4]=&#039;12&#039; end&lt;br /&gt;
		itemlist[4]=string.match((itemlist[4] or &#039;12&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
		if itemlist[5]==&#039;&#039; then itemlist[5]=&#039;grey&#039; end&lt;br /&gt;
		itemlist[6]=string.match((itemlist[6] or &#039;0&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
		itemlist[7]=string.match((itemlist[7] or &#039;0&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
		itemlist[8]=string.match((itemlist[8] or &#039;0&#039;),&amp;quot;[%.%-?%d]+&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if args[&#039;arc-coord&#039;..nval] then &lt;br /&gt;
		local itemTab=splitItem(convertCoordsTrad (args[&#039;arc-coord&#039;..nval]),2)&lt;br /&gt;
		maplist.lat=tonumber(string.match(itemTab[1],&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
		maplist.lon=tonumber(string.match(itemTab[2],&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
	else&lt;br /&gt;
		maplist.lat=tonumber(string.match(args[&#039;arc-lat&#039;..nval] or itemlist[2] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;))&lt;br /&gt;
		maplist.lon=tonumber(string.match(args[&#039;arc-lon&#039;..nval] or itemlist[3] or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;))	&lt;br /&gt;
	end&lt;br /&gt;
	local arcX,arcY=maptogrid(maplist,6)&lt;br /&gt;
	arcText = args[&#039;arc-text&#039;..nval] or arcText&lt;br /&gt;
	local fontSize =tonumber(args[&#039;arc-text-size&#039;..nval] or itemlist[4] or &#039;12&#039;)&lt;br /&gt;
	local textColor=getColor(string.gsub(args[&#039;arc-text-color&#039;..nval] or itemlist[5] or &#039;grey&#039;,&#039;[%s]+&#039;,&#039;&#039;) )&lt;br /&gt;
	local arcAngle= tonumber((args[&#039;arc-angle&#039;..nval]) or (itemlist[6]) or &#039;45&#039;)-90&lt;br /&gt;
	local arcRadius =tonumber(args[&#039;arc-radius&#039;..nval] or itemlist[8] or &#039;0.05&#039;)&lt;br /&gt;
	local arcGap = tonumber(args[&#039;arc-gap&#039;..nval] or itemlist[7] or &#039;1&#039;)* ( ( math.sin(8-math.rad(arcRadius))^8 )+0.4 )*( ( fontSize+6 )/15 )&lt;br /&gt;
	arcRadius=450*arcRadius*0.75&lt;br /&gt;
	local ellipseFactor=tonumber(args[&#039;ellipse-factor&#039;..nval] or itemlist[9] or &#039;1&#039;) &lt;br /&gt;
	local arcRotate =arcAngle+90&lt;br /&gt;
	if arcGap&amp;lt;0 then arcRotate=arcAngle-90 end&lt;br /&gt;
	local latF=arcY - fontSize + (0-(math.sin(math.rad(arcAngle))) * arcRadius)&lt;br /&gt;
	local lonF=arcX - fontSize +(0-(math.cos(math.rad(arcAngle))) * arcRadius)&lt;br /&gt;
&lt;br /&gt;
	local step=1&lt;br /&gt;
	for codepoint in mw.ustring.gcodepoint( arcText ) do   -- block  step=1,#arcText do&lt;br /&gt;
	  table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;&#039;)&lt;br /&gt;
	    local posY=tostring(round( (latF + (math.sin(math.rad(arcAngle+((step-1)*arcGap))) * arcRadius)) *ellipseFactor,2))..&#039;px;&#039;&lt;br /&gt;
	    local posX=tostring(round( (lonF + (math.cos(math.rad(arcAngle+((step-1)*arcGap))) * arcRadius))/ellipseFactor,2))..&#039;px;&#039;&lt;br /&gt;
	  table.insert(result,&#039; top: &#039;..posY..&#039; left: &#039;..posX..&#039; transform: rotate( &#039;..tostring(round(arcRotate +((step-1)*arcGap)),2)..&#039;deg);&#039;)&lt;br /&gt;
	  table.insert(result,&#039;width:&#039;..tostring(fontSize*2)..&#039;px; text-align: center; background-color:transparent; color: &#039;..textColor..&#039;;&#039;)&lt;br /&gt;
	  table.insert(result,&#039;vertical-align: baseline; font-size: &#039;..tostring(fontSize)..&#039;px;&amp;quot;&amp;gt;&#039;..mw.ustring.char(codepoint)..&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	  step=step+1&lt;br /&gt;
	end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
local function makeFullscreenItem (itemtitle,itemdescription,lat,lon,group,itemcolor)&lt;br /&gt;
	local item={}&lt;br /&gt;
    itemdescription=stripdivs(itemdescription or &#039;&#039;)&lt;br /&gt;
    local templon=lon&lt;br /&gt;
    if lon &amp;gt; 180 then templon=lon-360 end --for hemisphere+ or -1 dots&lt;br /&gt;
    if lon &amp;lt; -180 then templon=lon+360 end -- use &#039;real&#039; coordinates for geohack label, while retaining shifted coords for plot&lt;br /&gt;
    if itemcolor==&#039;transparent&#039; then itemcolor=&#039;white&#039; end&lt;br /&gt;
    itemcolor=getColor(itemcolor) -- ensure no opacity, which breaks maplink&lt;br /&gt;
    if string.find(itemcolor,&#039;#&#039;)==1 and #itemcolor&amp;gt;7 then itemcolor=string.sub(itemcolor,1,7) end&lt;br /&gt;
    table.insert(item, &#039;{ &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,  &amp;quot;properties&amp;quot;: {&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;title&amp;quot;: &amp;quot;&#039;..itemtitle..&#039;&amp;quot;,&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;description&amp;quot;: &amp;quot;&#039;..itemdescription)&lt;br /&gt;
    table.insert(item, &#039; ([https://geohack.toolforge.org/geohack.php?params=&#039;..tostring(lat)..&#039;;&#039;..tostring(templon))&lt;br /&gt;
    table.insert(item, &#039;_dim:2000 &#039;..tostring(lat)..&#039;,&#039;..tostring(templon)..&#039;])&amp;quot;,&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;marker-symbol&amp;quot;: &amp;quot;-number-&#039;..string.gsub(group,&#039;%W&#039;,&#039;&#039;)..&#039;&amp;quot;, &amp;quot;marker-size&amp;quot;: &amp;quot;medium&amp;quot;, &amp;quot;marker-color&amp;quot;: &amp;quot;&#039;..itemcolor..&#039;&amp;quot; },&#039;)&lt;br /&gt;
    table.insert(item, &#039; &amp;quot;geometry&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;, &amp;quot;coordinates&amp;quot;: [&#039;..tostring(lon)..&#039;,&#039;..tostring(lat)..&#039;] } }&#039;)&lt;br /&gt;
    return table.concat(item)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLegendBox(result,args)&lt;br /&gt;
	local legend ={}&lt;br /&gt;
	local line,count, maxWidth=&#039;&#039;,1,8&lt;br /&gt;
	local item&lt;br /&gt;
	line,item=extractItem(args.legendBox or &#039;&#039;)&lt;br /&gt;
	local a=&#039;&#039; for c in item:gmatch(&#039;.&#039;) do a=a..(c:gsub(&#039;%^&#039;,&#039;&amp;lt;br&amp;gt;&#039;) or c) end&lt;br /&gt;
	legend.Text = a -- convert hats to line breaks&lt;br /&gt;
    line=splitItem(line,6) -- (text, size, poition,background color, text/outline color, param options)&lt;br /&gt;
    legend.Size=line[2] or &#039;150px80px1px&#039;&lt;br /&gt;
    legend.Pos=line[3] or &#039;10px10px&#039;&lt;br /&gt;
    legend.Background=line[4] or &#039;beigeground&#039;&lt;br /&gt;
    legend.Color=line[5] or &#039;darkbrown&#039;&lt;br /&gt;
    legend.Param= line[6] or &#039;&#039;&lt;br /&gt;
    local argnum,legendCount,titleHeight=&#039;1&#039;,1,0&lt;br /&gt;
    if (legend.Text and legend.Text~=&#039;&#039;) then &lt;br /&gt;
	    titleHeight=15+(13.4*(select(2, string.gsub(legend.Text,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;, &amp;quot;&amp;quot;))))&lt;br /&gt;
	end&lt;br /&gt;
    local legendLine,legendGroup,legendY={},{},{}&lt;br /&gt;
    while args[&#039;legendItem&#039;..argnum] do -- assign legendLine, legendGroup, legendY for each dot&lt;br /&gt;
    	line,legendLine[legendCount] = extractItem(args[&#039;legendItem&#039;..argnum] or &#039;&#039;)&lt;br /&gt;
    	line=splitItem(line,3)&lt;br /&gt;
    	legendGroup[legendCount]=line[2] or argnum &lt;br /&gt;
    	if shapeList[legendGroup[legendCount]] then&lt;br /&gt;
    		maxWidth=math.max(tonumber(string.match(shapeList[legendGroup[legendCount]].shapeSize or &#039;10&#039;,&#039;[%d]+&#039;)),maxWidth)&lt;br /&gt;
    	else maxWidth=math.max(tonumber(string.match(shapeList[&#039;1&#039;].shapeSize or &#039;10&#039;,&#039;[%d]+&#039;)),maxWidth)&lt;br /&gt;
    	end&lt;br /&gt;
    	maxWidth=maxWidth+1&lt;br /&gt;
    	if line[3] then	&lt;br /&gt;
    		legendY[legendCount]=tonumber(string.match(line[3],&#039;[%d]+&#039;))&lt;br /&gt;
    	else legendY[legendCount] = 3+maxWidth*(legendCount-1)+titleHeight&lt;br /&gt;
		--	if (legend.Text and legend.Text~=&#039;&#039;) then legendY[legendCount]=legendY[legendCount]+15 end&lt;br /&gt;
    	end&lt;br /&gt;
		legendCount=legendCount+1&lt;br /&gt;
		argnum=tostring(legendCount)&lt;br /&gt;
    end&lt;br /&gt;
	local w,h,r=getsize(legend.Size or &#039;&#039;)&lt;br /&gt;
	local x,y=getsize(legend.Pos or &#039;&#039;)&lt;br /&gt;
    local div=mw.html.create (&#039;div&#039;)&lt;br /&gt;
	div:css(&#039;position&#039;, &#039;absolute&#039;)&lt;br /&gt;
    div:css(&#039;outline&#039;, &#039;1px solid&#039;..getColor(legend.Color))&lt;br /&gt;
	if r~=0 then div:css(&#039;border-radius&#039;,tostring(r)..&amp;quot;px&amp;quot;)	end&lt;br /&gt;
	div&lt;br /&gt;
	:css(&#039;top&#039;, y..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;left&#039;, x..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;width&#039;, w..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;height&#039;, h..&amp;quot;px&amp;quot;)&lt;br /&gt;
	:css(&#039;line-height&#039;,&#039;105%&#039;)&lt;br /&gt;
	:css(&#039;background-color&#039;, getColor(legend.Background) )&lt;br /&gt;
	:css(&#039;color&#039;,&#039;inherit&#039;)&lt;br /&gt;
	if not string.find(legend.Param,&#039;noshadow&#039;) then div:css(&#039;box-shadow&#039;, &#039;2px 2px 4px #33203335&#039;) end&lt;br /&gt;
	div:tag( &#039;div&#039; )&lt;br /&gt;
		:css(&#039;position&#039;, &#039;absolute&#039;)&lt;br /&gt;
		:css(&#039;top&#039;,&#039;1px&#039;)&lt;br /&gt;
		:css(&#039;left&#039;, (w/2)..&amp;quot;px&amp;quot;)&lt;br /&gt;
		:css(&#039;width&#039;,(w-8)..&#039;px&#039;)&lt;br /&gt;
		:css(&#039;text-align&#039;, &#039;center&#039;)&lt;br /&gt;
		:css(&#039;color&#039;, getColor(legend.Color))&lt;br /&gt;
        :css(&#039;transform&#039;, &#039;translateX(-50%)&#039;)&lt;br /&gt;
        :css(&#039;font-size&#039;,&#039;11px&#039;)&lt;br /&gt;
		:wikitext(legend.Text)&lt;br /&gt;
	:done()&lt;br /&gt;
	for lct=1,legendCount-1 do&lt;br /&gt;
		--local t=legendGroup[lct]&lt;br /&gt;
		local shape=shapeList[legendGroup[lct]] or shapeList[&#039;1&#039;]&lt;br /&gt;
		local row={}&lt;br /&gt;
		row.gridx=3+maxWidth/2&lt;br /&gt;
		row.gridy=(legendY[lct] or 0) + 5&lt;br /&gt;
		if shape.shape==&#039;image:&#039; then row.gridy=row.gridy+6 end&lt;br /&gt;
		row.dx=0 row.dy=0&lt;br /&gt;
		local legendShape= getshapetable(row,shape)&lt;br /&gt;
		div:wikitext(legendShape)&lt;br /&gt;
		:tag( &#039;div&#039; )&lt;br /&gt;
			:css(&#039;position&#039;, &#039;absolute&#039;)&lt;br /&gt;
			:css(&#039;top&#039;,(legendY[lct] or 0)..&#039;px&#039;)&lt;br /&gt;
			:css(&#039;left&#039;, (maxWidth+6)..&#039;px&#039;)&lt;br /&gt;
			:css(&#039;width&#039;, (w-maxWidth-6)..&#039;px&#039;)&lt;br /&gt;
			:css(&#039;text-align&#039;, &#039;left&#039;)&lt;br /&gt;
			:css(&#039;line-height&#039;,&#039;103%&#039;)&lt;br /&gt;
			:css(&#039;color&#039;, getColor(legend.Color))&lt;br /&gt;
	        :css(&#039;font-size&#039;,&#039;10px&#039;)&lt;br /&gt;
			:wikitext(legendLine[lct])&lt;br /&gt;
		:done()&lt;br /&gt;
	end&lt;br /&gt;
	div:allDone()&lt;br /&gt;
	table.insert(result,tostring(div))&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
local function getQset (qValue,pValue,argNumber,args)&lt;br /&gt;
	local result={}&lt;br /&gt;
	local sortType=string.lower(args[&#039;geo-list-sort&#039;] or &#039;a&#039;)&lt;br /&gt;
	local testValue=&#039;0&#039;&lt;br /&gt;
	if sortType == &#039;alpha&#039; or sortType == &#039;a&#039; or sortType == &#039;ah&#039; or sortType == &#039;al&#039; then&lt;br /&gt;
		testValue = mw.wikibase.getLabel(qValue)&lt;br /&gt;
	elseif sortType == &#039;value&#039; or sortType == &#039;v&#039; or sortType == &#039;vh&#039; or sortType == &#039;vl&#039;then&lt;br /&gt;
		if qValue==nil or pValue == nil then debugmsg(mw.addWarning((qValue or &#039;nil&#039;)..&#039; Qnumber for &#039;..(pValue or &#039;nil&#039;)))&lt;br /&gt;
		else&lt;br /&gt;
		if mw.wikibase.getBestStatements(qValue,pValue)[1] then&lt;br /&gt;
			testValue = mw.wikibase.getBestStatements(qValue,pValue)[1].mainsnak.datavalue.value.amount or &#039;0&#039;&lt;br /&gt;
			if pValue == &#039;P2046&#039; then&lt;br /&gt;
				testValue = convertToSqKm(testValue, mw.wikibase.getBestStatements(qValue,pValue)[1].mainsnak.datavalue.value.unit)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		end&lt;br /&gt;
	elseif sortType == &#039;north&#039; or sortType == &#039;n&#039; or sortType == &#039;nh&#039; or sortType == &#039;nl&#039; then&lt;br /&gt;
		if mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1] then&lt;br /&gt;
			testValue = mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1].mainsnak.datavalue.value.latitude or 0&lt;br /&gt;
		end&lt;br /&gt;
	elseif sortType == &#039;west&#039; or sortType == &#039;w&#039; or sortType == &#039;wh&#039; or sortType == &#039;wl&#039; then&lt;br /&gt;
		if mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1] then&lt;br /&gt;
			testValue =  mw.wikibase.getBestStatements(qValue,&#039;P625&#039;)[1].mainsnak.datavalue.value.longitude or 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	result[1]=testValue&lt;br /&gt;
	result[2]=argNumber&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main ( args )&lt;br /&gt;
	local result={}&lt;br /&gt;
	local frame=mw.getCurrentFrame()&lt;br /&gt;
	local dotTable={}&lt;br /&gt;
	local magVal,scaleVal = args.magnify,&#039;&#039;&lt;br /&gt;
	local origH,origW=maplist.height,maplist.width&lt;br /&gt;
	&lt;br /&gt;
	if magVal then --set up the values needed to magnify the top-right portion of the map&lt;br /&gt;
		magVal=tonumber(string.match(magVal or &#039;0&#039;,&amp;quot;[%.%-?%d]+&amp;quot;)) or 1&lt;br /&gt;
		if magVal&amp;gt;1 and magVal &amp;lt;=2 then&lt;br /&gt;
			maplist.height= round(maplist.height/magVal,0)&lt;br /&gt;
			maplist.width=round(maplist.width/magVal,0)&lt;br /&gt;
			scaleVal=&#039;transform: scale(&#039;..magVal..&#039;) translateY(&#039;..tostring((origH-maplist.height)/2)..&#039;px);&#039;&lt;br /&gt;
		else magVal=1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- set up the three nested div boxes (plus an extra if centered) to put the map plus title/caption area, in an appropriate frame on the page&lt;br /&gt;
    if args.float==&#039;center&#039; or args.float==&#039;centre&#039; then table.insert(result,&#039;&amp;lt;div class=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;thumb tnone&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
    elseif args.float==&#039;left&#039; then table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumb tleft&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
    else table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&#039;) &lt;br /&gt;
    end	&lt;br /&gt;
    table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbinner&amp;quot; style=&amp;quot;position: relative; top: 0px; right: 0px; width: &#039;..(args.width or &amp;quot;400&amp;quot;)..&#039;px;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
    if args.title then table.insert(result,&#039;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;&#039;..args.title..&#039;&amp;lt;/div&amp;gt;&#039;) end&lt;br /&gt;
    if magVal and magVal &amp;gt;1 and magVal&amp;lt;=2 then	&lt;br /&gt;
    	table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbinner noresize&amp;quot; style=&amp;quot;display:block; position: relative; outline:0px; border:0px; padding:0px; background-color:transparent; color:inherit;&#039;)&lt;br /&gt;
		table.insert(result,&#039;top: 50%; right: &#039;..tostring(0-((origW-maplist.width))/2)..&#039;px; &#039;)&lt;br /&gt;
		table.insert(result,&#039;height: &#039;..origH..&#039;px; width: &#039;..maplist.width..&#039;px; &#039;..scaleVal..&#039;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		magVal=1&lt;br /&gt;
	    table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbinner noresize&amp;quot; style=&amp;quot;position: relative; outline:0px; border:0px; padding:0px;&#039;)&lt;br /&gt;
	    table.insert(result,&#039;top: 0px; right: 0px; &#039;)&lt;br /&gt;
		table.insert(result,&#039;height: &#039;..maplist.height..&#039;px; width: &#039;..maplist.width..&#039;px &amp;quot;&amp;gt;&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    --add any boundary Qvalues to map-data-light if requested&lt;br /&gt;
    if args[&#039;geo-region&#039;] and (args[&#039;geo-boundaries&#039;] == &#039;1&#039;) then&lt;br /&gt;
    	local qmaps=args[&#039;map-data-light&#039;] or &#039;&#039;&lt;br /&gt;
		if qmaps ~=&#039;&#039; and string.sub(qmaps,#qmaps) ~= &#039;,&#039; then qmaps=qmaps..&#039;,&#039; end&lt;br /&gt;
		local geoRegion = args[&#039;geo-region&#039;] -- or add base-page here&lt;br /&gt;
		local geoSubRegion = args[&#039;geo-sub-region&#039;] or &#039;P150&#039;&lt;br /&gt;
		if not mw.wikibase.isValidEntityId(geoSubRegion) then geoSubRegion = &#039;P150&#039; end&lt;br /&gt;
		if mw.wikibase.isValidEntityId(geoRegion) then&lt;br /&gt;
			local ct=1&lt;br /&gt;
			local qtemp&lt;br /&gt;
			while (mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct]) do&lt;br /&gt;
				 -- debugmsg(&#039;table &#039;..ct..&#039; - &#039;..mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct].mainsnak.datavalue.value.id)&lt;br /&gt;
				qtemp = mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct].mainsnak.datavalue.value.id or nil&lt;br /&gt;
				if qtemp then&lt;br /&gt;
					if mw.wikibase.entityExists(qtemp) then &lt;br /&gt;
						qmaps=qmaps..qtemp..&#039;,&#039;   -- see if there is a geocode boundary Qvalue to add&lt;br /&gt;
					else debugmsg(mw.addWarning(&#039;unable to add geocode value for &#039;..mw.wikibase.getLabel..&#039;,&#039;..qtemp))&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
				end&lt;br /&gt;
				ct=ct+1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if qmaps and qmaps ~= &#039;&#039; then -- add back the created/expanded list of boundary Qvalues, and remove trailing comma&lt;br /&gt;
			args[&#039;map-data-light&#039;] = string.sub(qmaps,1,#qmaps-1) &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
-- Create the basemap using mapframe&lt;br /&gt;
	local mapframecontent=getmapframecontent(args,&#039;basemap&#039;)&lt;br /&gt;
	table.insert(result, frame:extensionTag{ name =&#039;mapframe&#039;, content=mapframecontent, args={width=tostring(maplist.width), height=tostring(maplist.height), &lt;br /&gt;
		zoom=tostring(maplist.zoom), longitude=tostring(maplist.lonbase), latitude=tostring(maplist.latbase), mapstyle=maplist.mapstyle, frameless=true } } )&lt;br /&gt;
&lt;br /&gt;
--Add coverall box to block the unhelpful links from mapframe - which wouldn&#039;t include all the dots. Reinstate some links to osm and wikimedia&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute;width:&#039;..tostring(maplist.width)..&#039;px; height:&#039;..tostring(maplist.height)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;top:0px;left:0px;background-color:#FFFFFF00; color:inherit;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;)	&lt;br /&gt;
--Add replacent hover-links for OpenStreetMap and maps terms and conditions&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(maplist.height-18)..&#039;px; left: &#039;..tostring(maplist.width-13)..&#039;px; width: 12px; height: 12px&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result,&#039;[[file:Transparent.svg|12px|link=https://www.openstreetmap.org/copyright|&#039;..aboutOSM..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(maplist.height-18)..&#039;px; left: &#039;..tostring(maplist.width-110)..&#039;px;&#039;)&lt;br /&gt;
	table.insert(result,&#039;width: 12px; height: 12px background-color: transparent; color:inherit;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result,&#039;[[file:Transparent.svg|12px| link=https://foundation.wikimedia.org/wiki/Policy:Maps_Terms_of_Use|&#039;..termsOfUse..&#039;]]&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Add scale-line&lt;br /&gt;
	if not args.scalemark or args.scalemark~=&#039;0&#039; then&lt;br /&gt;
		local top=maplist.height-42&lt;br /&gt;
		local left=maplist.width-61-(tonumber(args.scalemark or &#039;1&#039;))&lt;br /&gt;
		local minipos=string.lower(args.minimap or &#039;&#039;) -- scalemark gets pushed left if it would be behind the minimap&lt;br /&gt;
		if minipos~=&#039;&#039; and not(string.find(minipos,&#039;left&#039;) or string.find(minipos,&#039;top&#039;) ) then &lt;br /&gt;
			local offset=tonumber(args.scalemark or &#039;1&#039;)-tonumber(args[&#039;mini-width&#039;] or &#039;60&#039;)&lt;br /&gt;
			if offset&amp;lt;1 then left=maplist.width-61-tonumber(args[&#039;mini-width&#039;] or &#039;60&#039;) end&lt;br /&gt;
		end&lt;br /&gt;
		if maplist.width-left &amp;gt;216 then top=top+14 end -- shunt scaleline down if it is beyond the copyright stuff&lt;br /&gt;
		local scalek,scalem=getScale(maplist.zoom, maplist.latbase, magVal)&lt;br /&gt;
		local magReduce=&#039;&#039;&lt;br /&gt;
		  table.insert(result,&amp;quot;&amp;lt;div style=\&amp;quot;display:inline-block; position: absolute; background-color: #111111&amp;quot;)&lt;br /&gt;
		  table.insert(result,&amp;quot;; color:inherit; clip-path:path(nonzero, &amp;amp;#39;M0,8 l0,4 l20,0 l0,-4 l-0.3,0 l0,3.7 l-19.4,0 l0,-3.7 z&amp;amp;#39;) &amp;quot;)&lt;br /&gt;
		  table.insert(result,&amp;quot;; width:20px&amp;quot;) -- path is a 20px20px box, and then rescales &lt;br /&gt;
		  if magVal==1 then&lt;br /&gt;
  		    table.insert(result,&amp;quot;; top:&amp;quot;..tostring(top-1)..&amp;quot;px&amp;quot;) &lt;br /&gt;
  		    table.insert(result,&amp;quot;; left:&amp;quot;..tostring(left+16)..&amp;quot;px&amp;quot;)&lt;br /&gt;
			table.insert(result,&amp;quot;; height:20px; transform:scale(&amp;quot;..tostring(2.5)..&amp;quot;, &amp;quot;..tostring(1.5)..&amp;quot;)&amp;quot;)&lt;br /&gt;
		  else -- shrink the scalemark to compensate for magnification&lt;br /&gt;
  			table.insert(result,&amp;quot;; top:&amp;quot;..tostring(top-(magVal*0.28))..&amp;quot;px&amp;quot;) &lt;br /&gt;
  			table.insert(result,&amp;quot;; left:&amp;quot;..tostring(left+(16*(magVal*1.15)))..&amp;quot;px&amp;quot;)&lt;br /&gt;
		  	table.insert(result,&amp;quot;; height:20px; transform:scale(&amp;quot;..tostring(2.5*(1/magVal))..&amp;quot;, &amp;quot;..tostring(1.5*(1/magVal))..&amp;quot;)&amp;quot;)&lt;br /&gt;
		  	magReduce= &#039;scale(&#039;..tostring(1/magVal)..&#039;)&#039;&lt;br /&gt;
		  end&lt;br /&gt;
		  table.insert(result,&amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
			&lt;br /&gt;
		table.insert(result,&#039;&amp;lt;div style=&amp;quot;position: absolute; top: &#039;..tostring(top)..&#039;px; left: &#039;..tostring(left+47)..&#039;px; font-size: 9.5px; line-height: 126%; width: fit-content;&#039;)&lt;br /&gt;
		table.insert(result,&#039;color: #444433; background-color: transparent; text-align: right; transform: &#039;..magReduce..&#039; translateX(-100%);&amp;quot;&amp;gt;&#039;..scalek..&#039;&amp;lt;br&amp;gt;&#039;..scalem..&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
--Set up the shapeList and dotList tables, to provide data to go on the map&lt;br /&gt;
	local sgNumbers,sgSortable={},{} --s1,s2&lt;br /&gt;
	sgNumbers[&amp;quot;1&amp;quot;]=&amp;quot;1&amp;quot;&lt;br /&gt;
	if args.useFormatStyle and args.useFormatStyle==&#039;shortstyle&#039; then&lt;br /&gt;
		shapeList=ParseShapeTypes (shapeList,args,&amp;quot;1&amp;quot;)&lt;br /&gt;
		for argindex,argv in pairs(args) do -- build a list of all the numbered sg&#039;s that have been used&lt;br /&gt;
			if string.find(argindex,&amp;quot;sg[a-f,n%d]+&amp;quot;) == 1 then -- only look through the sga,sgb, sgc,sgd,sge,sgf and sgn args&lt;br /&gt;
	    		local x=string.match(argindex,&amp;quot;[%d]+&amp;quot;) -- find its number&lt;br /&gt;
	    		if x and not sgNumbers[x] then sgNumbers[x]=x end -- only add if not already found&lt;br /&gt;
			end&lt;br /&gt;
			if string.find(argindex,&amp;quot;sg[a-f]H&amp;quot;) == 1 and highlightNum then highlightOption=true end&lt;br /&gt;
		end&lt;br /&gt;
		for indx,sgnum in pairs(sgNumbers) do table.insert(sgSortable,sgnum) end&lt;br /&gt;
		table.sort(sgSortable,lessthan) -- put the list in a sortable form&lt;br /&gt;
		for k,v in pairs(sgSortable) do -- work through the sorted list, parsing each set of sg&#039;s in turn, from 1 upwards&lt;br /&gt;
			shapeList=ParseShapeTypes (shapeList,args,v)&lt;br /&gt;
		end&lt;br /&gt;
		if highlightOption==true then shapeList=ParseShapeTypes (shapeList,args,&#039;H&#039;) end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local dotList,dotresult,dotItemTable,dotGroupList={},{},{},{}&lt;br /&gt;
	&lt;br /&gt;
	if (not args.useFormatStyle) or args.useFormatStyle==&#039;standardstyle&#039; then&lt;br /&gt;
		local dotmax=0&lt;br /&gt;
		local qset={}&lt;br /&gt;
		for indx,val in pairs(args) do&lt;br /&gt;
			if string.match(indx,&#039;mark%-coord[%d]+&#039;) or string.match(indx,&#039;lat[%d]+&#039;) or string.match(indx,&#039;geo%-data[%d]+&#039;) then&lt;br /&gt;
				dotmax=math.max(dotmax, tonumber(string.match(indx,&amp;quot;[%d]+&amp;quot;)))&lt;br /&gt;
				if string.match(indx,&#039;geo%-data[%d]+&#039;) then&lt;br /&gt;
					local argnum=string.sub(indx,9,#indx) or &#039;&#039;&lt;br /&gt;
					if args[&#039;mark-title&#039;..argnum] == &#039;none&#039; or (string.find(args[&#039;mark-title&#039;..argnum] or &#039;x&#039;,&#039;nolist&#039;)== 1) then&lt;br /&gt;
						-- debugmsg(&#039;sort values ignored &#039;..argnum..&#039;, &#039;..args[&#039;mark-title&#039;..argnum])&lt;br /&gt;
					 else&lt;br /&gt;
						qset[val]=getQset (val, (args[&#039;geo-data-type&#039;] or &#039;P1082&#039;), argnum, args)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if (indx==&#039;shapeH&#039;) or (indx==&#039;shape-colorH&#039;) or (indx==&#039;shape-outlineH&#039;) or (indx==&#039;label-colorH&#039;) then highlightOption=true end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local qlist=args[&#039;geo-data-list&#039;]&lt;br /&gt;
		if qlist then&lt;br /&gt;
			if string.sub(qlist,#qlist) ~= &#039;,&#039; then qlist=qlist..&#039;,&#039; end&lt;br /&gt;
		else&lt;br /&gt;
			qlist=&#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		local geoRegion = args[&#039;geo-region&#039;] -- or add base-page here&lt;br /&gt;
		local geoSubRegion = args[&#039;geo-sub-region&#039;] or &#039;P150&#039;&lt;br /&gt;
		if not mw.wikibase.isValidEntityId(geoSubRegion) then geoSubRegion = &#039;P150&#039; end&lt;br /&gt;
		if (args[&#039;find-geo-dots&#039;] or &#039;1&#039;) ~= &#039;0&#039; and geoRegion and mw.wikibase.isValidEntityId(geoRegion) then&lt;br /&gt;
			local ct=1&lt;br /&gt;
			local qtemp&lt;br /&gt;
			while (mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct]) do&lt;br /&gt;
				-- debugmsg(&#039;table &#039;..ct..&#039; - &#039;..mw.wikibase.getBestStatements(adminRegion,adminSubRegion)[ct].mainsnak.datavalue.value.id)&lt;br /&gt;
				qtemp = mw.wikibase.getBestStatements(geoRegion,geoSubRegion)[ct].mainsnak.datavalue.value.id or nil&lt;br /&gt;
				if qtemp then&lt;br /&gt;
					qlist=qlist..qtemp..&#039;,&#039; -- add subregion Qvalue to the list&lt;br /&gt;
				end&lt;br /&gt;
				ct=ct+1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if qlist and #qlist&amp;gt;1 then -- create a table from the csv list&lt;br /&gt;
			local _, c = qlist:gsub(&amp;quot;,&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
			local qtab=splitItem(qlist,c)&lt;br /&gt;
			for xd,yd in pairs(qtab) do&lt;br /&gt;
				yd=string.upper(yd)&lt;br /&gt;
				if qset[yd] == nil and mw.wikibase.isValidEntityId(yd) then &lt;br /&gt;
					dotmax=dotmax+1&lt;br /&gt;
					qset[yd]=getQset (yd, (args[&#039;geo-data-type&#039;] or &#039;P1082&#039;), tostring(dotmax), args)&lt;br /&gt;
					args[&#039;geo-data&#039;..tostring(dotmax)] = yd&lt;br /&gt;
					-- debugmsg(dotmax..&#039; = &#039;..(string.upper(yd) or &#039;Q Not found&#039;)..&#039;: &#039;..(mw.wikibase.getLabel(yd) or &#039;label Not found&#039;)..&#039;: &#039;..(mw.wikibase.getSitelink(yd) or &#039;link Not found&#039;))&lt;br /&gt;
				elseif not mw.wikibase.isValidEntityId(yd) then&lt;br /&gt;
					debugmsg(mw.addWarning(yd..&#039; is not a [[wikidata]] page. geo-data-list needs comma-separated Qvalues&#039; ))&lt;br /&gt;
				else  debugmsg(mw.addWarning(yd..&#039; is duplicate&#039;))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
-- qset contains set of Qvalues and can be from wikidata geo-region, list of geo-data-list Q values or individual geo-data1= etc&lt;br /&gt;
		local ts = {} -- table to hold the keys&lt;br /&gt;
		local useQset=false&lt;br /&gt;
		for ky, val in pairs(qset) do&lt;br /&gt;
			table.insert(ts, {key = ky, value = val[1], num=val[2]})&lt;br /&gt;
			useQset=true&lt;br /&gt;
		end&lt;br /&gt;
		if useQset then&lt;br /&gt;
			local order = string.lower(args[&#039;geo-list-sort&#039;] or &#039;a&#039;) -- sort the list from previously stored sortkey, either Lowest or Highest first&lt;br /&gt;
			if string.find(&#039;,al,vl,nl,wl,west,w,alpha,a,&#039; , &#039;,&#039;..order..&#039;,&#039;) then&lt;br /&gt;
				table.sort(ts, function (a,b) return lessthan(a.value, b.value) end)&lt;br /&gt;
			else&lt;br /&gt;
				table.sort(ts, function (a,b) return morethan(a.value, b.value) end)&lt;br /&gt;
			end				&lt;br /&gt;
			for ky,val in ipairs(ts) do -- assign values from sorted list to numbered parameter&lt;br /&gt;
				&lt;br /&gt;
				args[&#039;numbered&#039;..val.num] = ky -- The numbered parameter becomes the value for each dot that has a geo Qvalue, from manual, list or wiki sources.&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		dotItemTable=tradstyleParseShapes(args,dotItemTable,dotmax)&lt;br /&gt;
		for argindex=1,dotmax do -- build a list of all the numbered coords or lat,lons that have been used&lt;br /&gt;
			local x=tostring(argindex)&lt;br /&gt;
			if args[&#039;mark-coord&#039;..x] or (args[&#039;mark-lat&#039;..x] and args[&#039;mark-lon&#039;..x]) or args[&#039;geo-data&#039;..x] then &lt;br /&gt;
    			sgNumbers[x]=x  -- add it to the list&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for indx in pairs(args) do &lt;br /&gt;
			if string.match(indx,&#039;dot[%d]+&#039;) then table.insert(dotList,indx) end --add the index name for dot1, dot2 etc to dotList&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(dotList,morethan)	&lt;br /&gt;
		for indx,dotName in pairs(dotList) do&lt;br /&gt;
			dotresult=ParseData(args,string.match(dotName,&#039;[%d]+&#039;) ) -- using each dot number, assign the settings for each dot to a dotresult item line&lt;br /&gt;
			table.insert(dotItemTable,dotresult) -- and store that item line within the dotItemTable&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for arcVal = 65,91 do -- check through args looking for any arcs&lt;br /&gt;
		local arcLetter=string.char(arcVal) &lt;br /&gt;
		if args[&#039;arc-text&#039;..arcLetter] or args[&#039;arc&#039;..arcLetter] then&lt;br /&gt;
			makeArcText(args,result,arcLetter)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local dotdivs=&#039;&#039;&lt;br /&gt;
	local ddots=0&lt;br /&gt;
	if dotItemTable[1] then&lt;br /&gt;
		local ddots=(dotItemTable[1].lat or 0)+(dotItemTable[1].lon or 0)&lt;br /&gt;
	end&lt;br /&gt;
	local fgroup=&#039;F&#039;..tostring(maplist.latbase+maplist.lonbase+ddots )&lt;br /&gt;
	local FullscreenList={}&lt;br /&gt;
	local addcomma=&#039;&#039;&lt;br /&gt;
	for i,dotitem in pairs(dotItemTable) do -- working throug each dot item, merge the dot and shape values into a full set of css text&lt;br /&gt;
		local dotgroup= dotitem.group or &amp;quot;0&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		if dotitem.posType==&#039;mark-line&#039; and dotitem.markDest then --find destination xy values for any mark-lines&lt;br /&gt;
			for n,v in pairs(dotItemTable) do&lt;br /&gt;
				if v.code == dotitem.markDest then	dotitem.gridx2=v.gridx	dotitem.gridy2=v.gridy	break end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
    	local qtype=dotitem.group -- find which shape group each dot has been assigned&lt;br /&gt;
    	--debugmsg(&#039;dotgroup=&#039;..qtype..&#039;, sg=&#039;..(sgNumbers[qtype] or &#039;nil&#039;)..&#039; , shapeList=&#039;..shapeList[qtype].shape)&lt;br /&gt;
    	if not sgNumbers[qtype] then qtype=&amp;quot;0&amp;quot; end  --shapeList[dotitem.group] will give access to the shape values for that dot&lt;br /&gt;
    	if highlightNum==dotitem.code and highlightOption==true and shapeList[&#039;H&#039;] then&lt;br /&gt;
    		table.insert(result, getshapetable(dotitem,shapeList[&#039;H&#039;]))&lt;br /&gt;
    	else&lt;br /&gt;
    		table.insert(result, getshapetable(dotitem,shapeList[qtype])) -- Add the actual css instructions for each dot&lt;br /&gt;
    	end&lt;br /&gt;
    	if shapeList[dotgroup] and not string.find((dotitem.param1 or &#039;&#039;),&#039;nomap&#039;) then -- only add if not excluded with &#039;nomap&#039; labelText&lt;br /&gt;
    		local ftext=&#039;&#039;&lt;br /&gt;
    		if dotitem.dotTag~=&#039;&#039; and not string.match(dotitem.labelText or &#039;&#039;,&#039;[%d]&#039;) then ftext=stripdivs(dotitem.dotTag or &#039;&#039;)..&#039; &amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
    		if (dotitem.labelText ~= ftext) and dotitem.dotLink ==&#039;&#039; then ftext=ftext..&#039; &#039;..stripdivs(dotitem.labelText)..&#039;&amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
    		if (dotitem.dotLink) and (dotitem.dotLink ~=&#039;&#039;) then ftext=ftext..dotitem.dotLink..&#039;&amp;lt;br&amp;gt;&#039; end&lt;br /&gt;
    		if dotitem.imageName then ftext=ftext..&#039;[[File:&#039;..dotitem.imageName..&#039;|250px]]&#039; end&lt;br /&gt;
    		table.insert(FullscreenList,1, makeFullscreenItem (string.gsub(ftext,&amp;quot;[\n]+&amp;quot;,&amp;quot; &amp;quot;), dotitem.info,round(dotitem.lat,5),round(dotitem.lon,5),fgroup,shapeList[dotgroup].shapeColor)..addcomma )&lt;br /&gt;
    		addcomma=&#039;, &#039;&lt;br /&gt;
    	end&lt;br /&gt;
    	-- makeFullscreenItem (itemtitle,itemdescription,lat,lon,group,itemcolor) &lt;br /&gt;
    	-- Always add to start of list, to reverse the sequence, and separate with commas except for first item, which is now at the end&lt;br /&gt;
	end&lt;br /&gt;
	if args.legendBox then makeLegendBox(result,args) end&lt;br /&gt;
	if args.minimap or args[&#039;mini-locator&#039;] then makeLocatorMap(args,result) end&lt;br /&gt;
	&lt;br /&gt;
-- add tag link and details for fullscreen version&lt;br /&gt;
	addcomma=&#039;&#039;&lt;br /&gt;
	if (mapframecontent or &#039;[]&#039;) ~= &#039;[]&#039; then addcomma=&#039;,&#039; end &lt;br /&gt;
	mapframecontent=getmapframecontent(args,&#039;fullscreen&#039;)&lt;br /&gt;
	local contentstart=&#039;[ &#039;..mapframecontent..addcomma..&#039;{ &amp;quot;type&amp;quot;: &amp;quot;FeatureCollection&amp;quot;, &amp;quot;features&amp;quot;: [ &#039; --extra features after first square bracket&lt;br /&gt;
	local contentend=&#039; ] } ]&#039;&lt;br /&gt;
	table.insert(result, &#039;&amp;lt;div style=&amp;quot;position: absolute;top: 9px;left: &#039;..tostring(maplist.width-34)..&#039;px&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result, &#039;&amp;lt;div style=&amp;quot;color: white; opacity:100; font-size: 19px; font-weight:normal; text-align: left;&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
	table.insert(result, frame:extensionTag{ name =&#039;maplink&#039;, content=contentstart..table.concat(FullscreenList)..contentend, args={zoom=tostring(maplist.zoom+1), class=&#039;no-icon&#039;, frameless=&#039;1&#039;, &lt;br /&gt;
		latitude=tostring(maplist.latbase), longitude=tostring(maplist.lonbase),      --add invisble &#039;en-spaces&#039; for tooltip &lt;br /&gt;
		text=&#039;&amp;lt;div title=&amp;quot;&#039;..fullscreenlinktext..&#039;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&#039;} } ) &lt;br /&gt;
	table.insert(result,&#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;)    --  end of maplink -----&lt;br /&gt;
&lt;br /&gt;
-- add closing div for main map&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
&lt;br /&gt;
-- collate caption material to go in the outer div class&lt;br /&gt;
	if captionTable ~= &#039;&#039; and (not args[&#039;auto-caption&#039;]) then args[&#039;auto-caption&#039;]=&#039;on&#039; end --default to include list if using geo values&lt;br /&gt;
	local autocaption=string.lower(args[&#039;auto-caption&#039;] or &#039;no&#039;)&lt;br /&gt;
	local autoOff=autocaption:match(&amp;quot;(%w+)(.*)&amp;quot;) -- select the first word in autocaption and see if it is a negativeAnswer)&lt;br /&gt;
	if negativeAnswer[autoOff] then captionTable=&#039;&#039; end&lt;br /&gt;
	if args.caption or (not negativeAnswer[autoOff]) then &lt;br /&gt;
		table.insert(result,&#039;&amp;lt;div class=&amp;quot;thumbcaption&amp;quot; style=&amp;quot;text-align:left&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		if args.caption then &lt;br /&gt;
			table.insert(result,args.caption) &lt;br /&gt;
			if captionTable ~= &#039;&#039; then table.insert(result,&#039;&amp;lt;hr&amp;gt;&#039;) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local columns=tonumber(autoOff:match(&amp;quot;[%d]+&amp;quot;) or &#039;1&#039;)&lt;br /&gt;
	if columns&amp;gt;1 then columns=round(maplist.width/(columns*17), 0) end -- convert from em to px for historical reasons&lt;br /&gt;
	--for k in pairs(dotList) do capchk=capchk..(args[&amp;quot;dotlink&amp;quot;..k] or &#039;&#039;) end&lt;br /&gt;
	&lt;br /&gt;
	local capchk=nil	&lt;br /&gt;
	local captionList = {}&lt;br /&gt;
	for key, value in pairs(dotItemTable) do&lt;br /&gt;
	  -- only add an autocaption line if there is both a dotTag and a dotLink line available and it is not marked as nolist&lt;br /&gt;
    	if value.dotTag and value.dotTag~=&#039;&#039; and (not string.find(value.param1 or &#039;&#039;,&#039;nolist&#039;)) and string.gsub(value.dotLink or &#039;&#039;,&amp;quot;%s+&amp;quot;,&amp;quot;&amp;quot;)~=&#039;&#039; then &lt;br /&gt;
	    		table.insert(captionList, {key = key, value = value}) &lt;br /&gt;
    		if captionTable == &#039;&#039; then&lt;br /&gt;
	    		capchk=true&lt;br /&gt;
	    	else -- add the next line of content to the html table&lt;br /&gt;
				capchk=false&lt;br /&gt;
	    	end&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
	if captionTable ~= &#039;&#039; then&lt;br /&gt;
		table.sort(captionList, function (a,b) return lessthan(string.match(a.value.dotTag,&#039;[%w]+&#039;), string.match(b.value.dotTag,&#039;[%w]+&#039;)) end)&lt;br /&gt;
		for k,v in pairs(captionList) do&lt;br /&gt;
			local nval=string.match(v.value.dotTag,&#039;[%w]+&#039;) -- find the first alphanumeric item in the dotTag&lt;br /&gt;
			local ngrp=v.value.group&lt;br /&gt;
			if captionTableText[ngrp] then&lt;br /&gt;
				-- debugmsg(&#039;table text for&#039;..v.value.dotTag..&#039;, &#039;..captionTableText[v.value.group][1]..&#039;, &#039;..captionTableText[v.value.group][2]..&#039;, &#039;..captionTableText[v.value.group][3]..&#039; (&#039;..captionTableText[v.value.group][4]..&#039;)&#039;)&lt;br /&gt;
				local c1,c2&lt;br /&gt;
				c1,c2=checkColors(shapeList[ngrp].shapeColor)&lt;br /&gt;
				local cDot=&#039;&amp;lt;div style=&amp;quot;display:inline-block;line-height:110%;vertical-align:middle; padding:1px 4px;border-radius:8px;border: 0.5px solid black;&#039;&lt;br /&gt;
				cDot=cDot..&#039;background-color:&#039;..c1..&#039;;color:&#039;..c2..&#039;;font-size:88%;font-weight:bold&amp;quot;&amp;gt;&#039;..nval..&#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				captionTable = htmlTableLine(captionTable,cDot,captionTableText[ngrp][1], captionTableText[ngrp][2], captionTableText[ngrp][3], captionTableText[ngrp][4])&lt;br /&gt;
			end&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
 	if capchk and (not negativeAnswer[autoOff]) then  &lt;br /&gt;
		table.sort(captionList, function (a,b) return lessthan(string.match(a.value.dotTag,&#039;[%w]+&#039;), string.match(b.value.dotTag,&#039;[%w]+&#039;)) end)&lt;br /&gt;
		-- local myDivision = string.gsub((args.toggletext or toggletext), &amp;quot;%s+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		if string.find(autocaption,&#039;collaps&#039;) then&lt;br /&gt;
			table.insert(result,&#039;&amp;lt;div class = &amp;quot;wikitable mw-collapsible &#039;)&lt;br /&gt;
			if string.find(autocaption,&#039;collapsed&#039;) then table.insert(result,&#039;mw-collapsed&#039;) end&lt;br /&gt;
			table.insert(result,&#039;&amp;quot; style=&amp;quot;width:100%; line-height: 17px; border-style:none; text-align: center&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&#039;..(args.toggletext or toggletext)..&#039;&amp;lt;/b&amp;gt;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if string.find(autocaption, &#039;columns=&#039;) then&lt;br /&gt;
			columns=string.match(autocaption,&#039;[%d]+&#039;,string.find(autocaption, &#039;columns=&#039;) ) &lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result,&#039;&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot; style=&amp;quot;column-count:&#039;..columns..&#039;; column-rule:solid 1px;text-align:left;padding-top:5px&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		table.sort(dotList,lessthan)&lt;br /&gt;
		local nval,ngrp=&#039;&#039;,&#039;0&#039;&lt;br /&gt;
		for k,v in pairs(captionList) do&lt;br /&gt;
			nval=string.match(v.value.dotTag,&#039;[%w]+&#039;) -- find the first alphanumeric item in the dotTag&lt;br /&gt;
			ngrp=v.value.group or &#039;0&#039;&lt;br /&gt;
			if v.value.dotLink and v.value.dotLink~=&#039;&#039; and nval and nval~=&#039;&#039; then&lt;br /&gt;
				local c1,c2&lt;br /&gt;
				if nval==args.highlight then&lt;br /&gt;
					c1,c2=checkColors(shapeList[&#039;H&#039;].shapeColor)&lt;br /&gt;
				else&lt;br /&gt;
					c1,c2=checkColors(shapeList[ngrp].shapeColor)&lt;br /&gt;
				end&lt;br /&gt;
				table.insert(result,&#039;&amp;lt;div style=&amp;quot;display:inline-block;line-height:110%;vertical-align:middle; padding:1px 4px;border-radius:8px;border: 0.5px solid black;&#039;) &lt;br /&gt;
				table.insert(result,&#039;background-color:&#039;..c1..&#039;;color:&#039;..c2..&#039;;font-size:88%;font-weight:bold&amp;quot;&amp;gt;&#039;..nval..&#039;&amp;lt;/div&amp;gt; &#039;..v.value.dotLink..&#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) -- end for caption-content div&lt;br /&gt;
		if string.find(autocaption,&#039;collaps&#039;) then table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) end -- end for toggle frame&lt;br /&gt;
 	end&lt;br /&gt;
 	if captionTable ~= &#039;&#039; then table.insert(result,captionTable..&#039;&amp;lt;/table&amp;gt;&#039;) end&lt;br /&gt;
	if args.caption or (not negativeAnswer[autoOff]) then table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) end -- end for whole caption frame&lt;br /&gt;
	table.insert(result,&#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;) -- outer two frames&lt;br /&gt;
	if args.float == &#039;center&#039; or args.float==&#039;centre&#039; then table.insert(result,&#039;&amp;lt;/div&amp;gt;&#039;) end&lt;br /&gt;
&lt;br /&gt;
	if args[&#039;show-new-format&#039;] == &#039;hints&#039; then -- provide a &#039;format hint panel&#039; in the &#039;Preview Box&#039;&lt;br /&gt;
		local w=&amp;quot;&amp;lt;small&amp;gt;Below are some template hints for  the &#039;sga&#039; compressed version, &amp;quot;&lt;br /&gt;
		w=w..&#039;{{tl|OSM Location dots}}. It can use these, instead of the more verbose {{tl|OSM Location map}} parameter format. &#039;&lt;br /&gt;
	    w=w..&#039;Data is divided between a &amp;quot;ShapeGroup&amp;quot; and the &amp;quot;Dots&amp;quot;, so that a single shapeGroup can be used for multiple dots on the map. &#039;&lt;br /&gt;
	    previewMsg(w..&#039;(nb. the &amp;quot;group&amp;quot; value can be the number or an assigned name of a shapeGroup)&amp;lt;/small&amp;gt;&#039;)&lt;br /&gt;
	&lt;br /&gt;
		w=&#039;&amp;lt;small&amp;gt;{{tl|OSM Location dots}}: | dot(n)=group,lat,lon,dotTag | &#039;&lt;br /&gt;
		w=w..&#039;dotlink=link/tooltip | dotlabel=label,position,dx,dy,param1,info | dotpic=filename  &amp;lt;br&amp;gt;&#039;&lt;br /&gt;
		w=w..&amp;quot;(nb. param1 options include &#039;nolink&#039; &#039;nolist&#039; &#039;nomap&#039; &#039;hemisphere-1&#039; &#039;hemisphere+1&#039;, &#039;noline&#039; - quotes not required, separate with spaces).&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
		w=w..&#039;| sga = Shape,Sizepx,Color,Angledeg  |  sgb= OutlineWidth,Color,Style  |  sgc=TextSize,Color,Angle,bold italic &amp;lt;br&amp;gt;&#039;&lt;br /&gt;
		w=w..&#039;| sgd=TagSizepx,Color,Spacer,Angledeg | sge=LineWidth,Color,Style |  sgf=TextSpacingpx,LineHeight%,Outlinepx,backgroundColor&amp;lt;br&amp;gt;&#039;&lt;br /&gt;
		w=w..&#039;| sgn=Name (optional, to assign a meaningful name) | sgp=Parent (can be the name or number of the parent shapeGroup. &#039;&lt;br /&gt;
		previewMsg(w..&#039;Each shapegroup will inherit values from a parent, stretching back to &amp;quot;sga1&amp;quot; and its default values.)&amp;lt;/small&amp;gt;&#039;)&lt;br /&gt;
		if #pmsg then&lt;br /&gt;
			local dbg={}&lt;br /&gt;
			for i,x in pairs(pmsg) do&lt;br /&gt;
				table.insert(dbg,x..&#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
			end&lt;br /&gt;
			dbg=mw.addWarning(table.concat(dbg))&lt;br /&gt;
			table.insert(result, dbg)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.coordtest then debugmsg(mw.text.nowiki(args.coordtest)) end&lt;br /&gt;
&lt;br /&gt;
	for i,x in pairs(msg) do&lt;br /&gt;
		table.insert(result, x..&#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local itemTab={}&lt;br /&gt;
	maplist.width=tonumber(args.width) or 400&lt;br /&gt;
	maplist.height=tonumber(args.height) or 300&lt;br /&gt;
	if args.coord then &lt;br /&gt;
		itemTab=splitItem(convertCoordsTrad (args.coord),2)&lt;br /&gt;
		maplist.latbase=itemTab[1]	&lt;br /&gt;
		maplist.lonbase=itemTab[2]	&lt;br /&gt;
	else&lt;br /&gt;
		maplist.lonbase=tonumber(args.lon) or 5&lt;br /&gt;
		maplist.latbase=tonumber(args.lat) or 0&lt;br /&gt;
	end&lt;br /&gt;
	maplist.zoom=tonumber(args.zoom) or 1&lt;br /&gt;
	visibleLinks=args.showlinks&lt;br /&gt;
	highlightNum=args.highlight&lt;br /&gt;
	if args.nolabels==&#039;1&#039; then maplist.mapstyle=&#039;osm&#039; else maplist.mapstyle=&#039;osm-intl&#039; end&lt;br /&gt;
	if maplist.width &amp;gt;= 400 and not(args[&#039;show-q-values&#039;]) then args[&#039;show-q-values&#039;] = &#039;1&#039; -- default to on if wider than 400px&lt;br /&gt;
	elseif  maplist.width &amp;lt; 320 then args[&#039;show-q-values&#039;] = &#039;0&#039; end  -- turn off Qvalus if frame is too narrow, even if requested&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:Coordinates&amp;diff=2555</id>
		<title>Module:Coordinates</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Coordinates&amp;diff=2555"/>
		<updated>2026-04-05T10:00:23Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: make Module:Coordinates tolerate missing #coordinates parser function&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
This module is intended to replace the functionality of {{Coord}} and related&lt;br /&gt;
templates.  It provides several methods, including&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | coord }} : General function formatting and displaying&lt;br /&gt;
coordinate values.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal&lt;br /&gt;
degree values to DMS format.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format&lt;br /&gt;
to decimal degree format.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Coordinates | link }} : Export the link used to reach the tools&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local math_mod = require(&amp;quot;Module:Math&amp;quot;)&lt;br /&gt;
local coordinates = {};&lt;br /&gt;
local isSandbox = mw.getCurrentFrame():getTitle():find(&#039;sandbox&#039;, 1, true);&lt;br /&gt;
&lt;br /&gt;
local current_page = mw.title.getCurrentTitle()&lt;br /&gt;
local page_name = mw.uri.encode( current_page.prefixedText, &#039;WIKI&#039; );&lt;br /&gt;
local coord_link = &#039;https://geohack.toolforge.org/geohack.php?pagename=&#039; .. page_name .. &#039;&amp;amp;params=&#039;&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, replacement for {{coord/display/title}} ]]&lt;br /&gt;
local function displaytitle(coords)&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &#039;indicator&#039;,&lt;br /&gt;
		args = { name = &#039;coordinates&#039; },&lt;br /&gt;
		content = &#039;&amp;lt;span id=&amp;quot;coordinates&amp;quot;&amp;gt;[[Geographic coordinate system|Coordinates]]: &#039; .. coords .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, used in detecting DMS formatting ]]&lt;br /&gt;
local function dmsTest(first, second)&lt;br /&gt;
	if type(first) ~= &#039;string&#039; or type(second) ~= &#039;string&#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local s = (first .. second):upper()&lt;br /&gt;
	return s:find(&#039;^[NS][EW]$&#039;) or s:find(&#039;^[EW][NS]$&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[ Wrapper function to grab args, see Module:Arguments for this function&#039;s documentation. ]]&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
			wrappers = &#039;Template:Coord&#039;&lt;br /&gt;
		})&lt;br /&gt;
		return coordinates[funcName](args, frame)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, handle optional args. ]]&lt;br /&gt;
local function optionalArg(arg, supplement)&lt;br /&gt;
	return arg and arg .. supplement or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Formats any error messages generated for display&lt;br /&gt;
]]&lt;br /&gt;
local function errorPrinter(errors)&lt;br /&gt;
	local result = &amp;quot;&amp;quot;&lt;br /&gt;
	for i,v in ipairs(errors) do&lt;br /&gt;
		result = result .. &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Coordinates: &#039; .. v[2] .. &#039;&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Determine the required CSS class to display coordinates&lt;br /&gt;
&lt;br /&gt;
Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself&lt;br /&gt;
default is the mode as specificied by the user when calling the {{coord}} template&lt;br /&gt;
mode is the display mode (dec or dms) that we will need to determine the css class for&lt;br /&gt;
]]&lt;br /&gt;
local function displayDefault(default, mode)&lt;br /&gt;
	if default == &amp;quot;&amp;quot; then&lt;br /&gt;
		default = &amp;quot;dec&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if default == mode then&lt;br /&gt;
		return &amp;quot;geo-default&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;geo-nondefault&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
specPrinter&lt;br /&gt;
&lt;br /&gt;
Output formatter.  Takes the structure generated by either parseDec&lt;br /&gt;
or parseDMS and formats it for inclusion on Wikipedia.&lt;br /&gt;
]]&lt;br /&gt;
local function specPrinter(args, coordinateSpec)&lt;br /&gt;
	local uriComponents = coordinateSpec[&amp;quot;param&amp;quot;]&lt;br /&gt;
	if uriComponents == &amp;quot;&amp;quot; then&lt;br /&gt;
		-- RETURN error, should never be empty or nil&lt;br /&gt;
		return &amp;quot;ERROR param was empty&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;quot;name&amp;quot;] then&lt;br /&gt;
		uriComponents = uriComponents .. &amp;quot;&amp;amp;title=&amp;quot; .. mw.uri.encode(coordinateSpec[&amp;quot;name&amp;quot;])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local geodmshtml = &#039;&amp;lt;span class=&amp;quot;geo-dms&amp;quot; title=&amp;quot;Maps, aerial photos, and other data for this location&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			.. &#039;&amp;lt;span class=&amp;quot;latitude&amp;quot;&amp;gt;&#039; .. coordinateSpec[&amp;quot;dms-lat&amp;quot;] .. &#039;&amp;lt;/span&amp;gt; &#039;&lt;br /&gt;
			.. &#039;&amp;lt;span class=&amp;quot;longitude&amp;quot;&amp;gt;&#039; ..coordinateSpec[&amp;quot;dms-long&amp;quot;] .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
			.. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
	local lat = tonumber( coordinateSpec[&amp;quot;dec-lat&amp;quot;] ) or 0&lt;br /&gt;
	local geodeclat&lt;br /&gt;
	if lat &amp;lt; 0 then&lt;br /&gt;
		-- FIXME this breaks the pre-existing precision&lt;br /&gt;
		geodeclat = tostring(coordinateSpec[&amp;quot;dec-lat&amp;quot;]):sub(2) .. &amp;quot;°S&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		geodeclat = (coordinateSpec[&amp;quot;dec-lat&amp;quot;] or 0) .. &amp;quot;°N&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local long = tonumber( coordinateSpec[&amp;quot;dec-long&amp;quot;] ) or 0&lt;br /&gt;
	local geodeclong&lt;br /&gt;
	if long &amp;lt; 0 then&lt;br /&gt;
		-- FIXME does not handle unicode minus&lt;br /&gt;
		geodeclong = tostring(coordinateSpec[&amp;quot;dec-long&amp;quot;]):sub(2) .. &amp;quot;°W&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		geodeclong = (coordinateSpec[&amp;quot;dec-long&amp;quot;] or 0) .. &amp;quot;°E&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local geodechtml = &#039;&amp;lt;span class=&amp;quot;geo-dec&amp;quot; title=&amp;quot;Maps, aerial photos, and other data for this location&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			.. geodeclat .. &#039; &#039;&lt;br /&gt;
			.. geodeclong&lt;br /&gt;
			.. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
	local geonumhtml = &#039;&amp;lt;span class=&amp;quot;geo&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			.. coordinateSpec[&amp;quot;dec-lat&amp;quot;] .. &#039;; &#039;&lt;br /&gt;
			.. coordinateSpec[&amp;quot;dec-long&amp;quot;]&lt;br /&gt;
			.. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
	local inner = &#039;&amp;lt;span class=&amp;quot;&#039; .. displayDefault(coordinateSpec[&amp;quot;default&amp;quot;], &amp;quot;dms&amp;quot; ) .. &#039;&amp;quot;&amp;gt;&#039; .. geodmshtml .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
				.. &#039;&amp;lt;span class=&amp;quot;geo-multi-punct&amp;quot;&amp;gt;&amp;amp;#xfeff; / &amp;amp;#xfeff;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
				.. &#039;&amp;lt;span class=&amp;quot;&#039; .. displayDefault(coordinateSpec[&amp;quot;default&amp;quot;], &amp;quot;dec&amp;quot; ) .. &#039;&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	if not args[&amp;quot;name&amp;quot;] then&lt;br /&gt;
		inner = inner .. geodechtml&lt;br /&gt;
				.. &#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; / &#039; .. geonumhtml .. &#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		inner = inner .. &#039;&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&#039; .. geodechtml&lt;br /&gt;
				.. &#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; / &#039; .. geonumhtml .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
				.. &#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; (&amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;&#039;&lt;br /&gt;
				.. args[&amp;quot;name&amp;quot;] .. &#039;&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    local stylesheetLink = &#039;Module:Coordinates&#039; .. ( isSandbox and &#039;/sandbox&#039; or &#039;&#039; ) .. &#039;/styles.css&#039;&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;, args = { src = stylesheetLink }&lt;br /&gt;
	} .. &#039;&amp;lt;span class=&amp;quot;plainlinks nourlexpansion&amp;quot;&amp;gt;[&#039; .. coord_link .. uriComponents ..&lt;br /&gt;
	&#039; &#039; .. inner .. &#039;]&amp;lt;/span&amp;gt;&#039; .. &#039;[[Category:Pages using gadget WikiMiniAtlas]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, convert decimal to degrees ]]&lt;br /&gt;
local function convert_dec2dms_d(coordinate)&lt;br /&gt;
	local d = math_mod._round( coordinate, 0 ) .. &amp;quot;°&amp;quot;&lt;br /&gt;
	return d .. &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, convert decimal to degrees and minutes ]]&lt;br /&gt;
local function convert_dec2dms_dm(coordinate)&lt;br /&gt;
	coordinate = math_mod._round( coordinate * 60, 0 );&lt;br /&gt;
	local m = coordinate % 60;&lt;br /&gt;
	coordinate = math.floor( (coordinate - m) / 60 );&lt;br /&gt;
	local d = coordinate % 360 ..&amp;quot;°&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return d .. string.format( &amp;quot;%02d′&amp;quot;, m )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Helper function, convert decimal to degrees, minutes, and seconds ]]&lt;br /&gt;
local function convert_dec2dms_dms(coordinate)&lt;br /&gt;
	coordinate = math_mod._round( coordinate * 60 * 60, 0 );&lt;br /&gt;
	local s = coordinate % 60&lt;br /&gt;
	coordinate = math.floor( (coordinate - s) / 60 );&lt;br /&gt;
	local m = coordinate % 60&lt;br /&gt;
	coordinate = math.floor( (coordinate - m) / 60 );&lt;br /&gt;
	local d = coordinate % 360 ..&amp;quot;°&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return d .. string.format( &amp;quot;%02d′&amp;quot;, m ) .. string.format( &amp;quot;%02d″&amp;quot;, s )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function, convert decimal latitude or longitude to&lt;br /&gt;
degrees, minutes, and seconds format based on the specified precision.&lt;br /&gt;
]]&lt;br /&gt;
local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision)&lt;br /&gt;
	local coord = tonumber(coordinate)&lt;br /&gt;
	local postfix&lt;br /&gt;
	if coord &amp;gt;= 0 then&lt;br /&gt;
		postfix = firstPostfix&lt;br /&gt;
	else&lt;br /&gt;
		postfix = secondPostfix&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	precision = precision:lower();&lt;br /&gt;
	if precision == &amp;quot;dms&amp;quot; then&lt;br /&gt;
		return convert_dec2dms_dms( math.abs( coord ) ) .. postfix;&lt;br /&gt;
	elseif precision == &amp;quot;dm&amp;quot; then&lt;br /&gt;
		return convert_dec2dms_dm( math.abs( coord ) ) .. postfix;&lt;br /&gt;
	elseif precision == &amp;quot;d&amp;quot; then&lt;br /&gt;
		return convert_dec2dms_d( math.abs( coord ) ) .. postfix;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Convert DMS format into a N or E decimal coordinate&lt;br /&gt;
]]&lt;br /&gt;
local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str)&lt;br /&gt;
	local degrees = tonumber(degrees_str)&lt;br /&gt;
	local minutes = tonumber(minutes_str) or 0&lt;br /&gt;
	local seconds = tonumber(seconds_str) or 0&lt;br /&gt;
&lt;br /&gt;
	local factor = 1&lt;br /&gt;
	if direction == &amp;quot;S&amp;quot; or direction == &amp;quot;W&amp;quot; then&lt;br /&gt;
		factor = -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local precision = 0&lt;br /&gt;
	if seconds_str then&lt;br /&gt;
		precision = 5 + math.max( math_mod._precision(seconds_str), 0 );&lt;br /&gt;
	elseif minutes_str and minutes_str ~= &#039;&#039; then&lt;br /&gt;
		precision = 3 + math.max( math_mod._precision(minutes_str), 0 );&lt;br /&gt;
	else&lt;br /&gt;
		precision = math.max( math_mod._precision(degrees_str), 0 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local decimal = factor * (degrees+(minutes+seconds/60)/60)&lt;br /&gt;
	return string.format( &amp;quot;%.&amp;quot; .. precision .. &amp;quot;f&amp;quot;, decimal ) -- not tonumber since this whole thing is string based.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Checks input values to for out of range errors.&lt;br /&gt;
]]&lt;br /&gt;
local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong )&lt;br /&gt;
	local errors = {};&lt;br /&gt;
	lat_d = tonumber( lat_d ) or 0;&lt;br /&gt;
	lat_m = tonumber( lat_m ) or 0;&lt;br /&gt;
	lat_s = tonumber( lat_s ) or 0;&lt;br /&gt;
	long_d = tonumber( long_d ) or 0;&lt;br /&gt;
	long_m = tonumber( long_m ) or 0;&lt;br /&gt;
	long_s = tonumber( long_s ) or 0;&lt;br /&gt;
&lt;br /&gt;
	if strong then&lt;br /&gt;
		if lat_d &amp;lt; 0 then&lt;br /&gt;
			table.insert(errors, {source, &amp;quot;latitude degrees &amp;lt; 0 with hemisphere flag&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		if long_d &amp;lt; 0 then&lt;br /&gt;
			table.insert(errors, {source, &amp;quot;longitude degrees &amp;lt; 0 with hemisphere flag&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		--[[&lt;br /&gt;
		#coordinates is inconsistent about whether this is an error.  If globe: is&lt;br /&gt;
		specified, it won&#039;t error on this condition, but otherwise it will.&lt;br /&gt;
&lt;br /&gt;
		For not simply disable this check.&lt;br /&gt;
&lt;br /&gt;
		if long_d &amp;gt; 180 then&lt;br /&gt;
			table.insert(errors, {source, &amp;quot;longitude degrees &amp;gt; 180 with hemisphere flag&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		]]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if lat_d &amp;gt; 90 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude degrees &amp;gt; 90&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_d &amp;lt; -90 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude degrees &amp;lt; -90&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_m &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude minutes &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_m &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude minutes &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_s &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude seconds &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if lat_s &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;latitude seconds &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_d &amp;gt;= 360 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude degrees &amp;gt;= 360&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_d &amp;lt;= -360 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude degrees &amp;lt;= -360&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_m &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude minutes &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_m &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude minutes &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_s &amp;gt;= 60 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude seconds &amp;gt;= 60&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	if long_s &amp;lt; 0 then&lt;br /&gt;
		table.insert(errors, {source, &amp;quot;longitude seconds &amp;lt; 0&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return errors;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
parseDec&lt;br /&gt;
&lt;br /&gt;
Transforms decimal format latitude and longitude into the&lt;br /&gt;
structure to be used in displaying coordinates&lt;br /&gt;
]]&lt;br /&gt;
local function parseDec( lat, long, format )&lt;br /&gt;
	local coordinateSpec = {}&lt;br /&gt;
	local errors = {}&lt;br /&gt;
&lt;br /&gt;
	if not long then&lt;br /&gt;
		return nil, {{&amp;quot;parseDec&amp;quot;, &amp;quot;Missing longitude&amp;quot;}}&lt;br /&gt;
	elseif not tonumber(long) then&lt;br /&gt;
		return nil, {{&amp;quot;parseDec&amp;quot;, &amp;quot;Longitude could not be parsed as a number: &amp;quot; .. long}}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	errors = validate( lat, nil, nil, long, nil, nil, &#039;parseDec&#039;, false );&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-lat&amp;quot;]  = lat;&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-long&amp;quot;] = long;&lt;br /&gt;
&lt;br /&gt;
	local mode = coordinates.determineMode( lat, long );&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-lat&amp;quot;]  = convert_dec2dms( lat, &amp;quot;N&amp;quot;, &amp;quot;S&amp;quot;, mode)  -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-long&amp;quot;] = convert_dec2dms( long, &amp;quot;E&amp;quot;, &amp;quot;W&amp;quot;, mode)  -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}&lt;br /&gt;
&lt;br /&gt;
	if format then&lt;br /&gt;
		coordinateSpec.default = format&lt;br /&gt;
	else&lt;br /&gt;
		coordinateSpec.default = &amp;quot;dec&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return coordinateSpec, errors&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
parseDMS&lt;br /&gt;
&lt;br /&gt;
Transforms degrees, minutes, seconds format latitude and longitude&lt;br /&gt;
into the a structure to be used in displaying coordinates&lt;br /&gt;
]]&lt;br /&gt;
local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format )&lt;br /&gt;
	local coordinateSpec, errors, backward = {}, {}&lt;br /&gt;
&lt;br /&gt;
	lat_f = lat_f:upper();&lt;br /&gt;
	long_f = long_f:upper();&lt;br /&gt;
&lt;br /&gt;
	-- Check if specified backward&lt;br /&gt;
	if lat_f == &#039;E&#039; or lat_f == &#039;W&#039; then&lt;br /&gt;
		lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, &#039;parseDMS&#039;, true );&lt;br /&gt;
	if not long_d then&lt;br /&gt;
		return nil, {{&amp;quot;parseDMS&amp;quot;, &amp;quot;Missing longitude&amp;quot; }}&lt;br /&gt;
	elseif not tonumber(long_d) then&lt;br /&gt;
		return nil, {{&amp;quot;parseDMS&amp;quot;, &amp;quot;Longitude could not be parsed as a number:&amp;quot; .. long_d }}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then&lt;br /&gt;
		if math_mod._precision( lat_d ) &amp;gt; 0 or math_mod._precision( long_d ) &amp;gt; 0 then&lt;br /&gt;
			if lat_f:upper() == &#039;S&#039; then&lt;br /&gt;
				lat_d = &#039;-&#039; .. lat_d;&lt;br /&gt;
			end&lt;br /&gt;
			if long_f:upper() == &#039;W&#039; then&lt;br /&gt;
				long_d = &#039;-&#039; .. long_d;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			return parseDec( lat_d, long_d, format );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-lat&amp;quot;]  = lat_d..&amp;quot;°&amp;quot;..optionalArg(lat_m,&amp;quot;′&amp;quot;) .. optionalArg(lat_s,&amp;quot;″&amp;quot;) .. lat_f&lt;br /&gt;
	coordinateSpec[&amp;quot;dms-long&amp;quot;] = long_d..&amp;quot;°&amp;quot;..optionalArg(long_m,&amp;quot;′&amp;quot;) .. optionalArg(long_s,&amp;quot;″&amp;quot;) .. long_f&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-lat&amp;quot;]  = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}}&lt;br /&gt;
	coordinateSpec[&amp;quot;dec-long&amp;quot;] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}}&lt;br /&gt;
&lt;br /&gt;
	if format then&lt;br /&gt;
		coordinateSpec.default = format&lt;br /&gt;
	else&lt;br /&gt;
		coordinateSpec.default = &amp;quot;dms&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return coordinateSpec, errors, backward&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Check the input arguments for coord to determine the kind of data being provided&lt;br /&gt;
and then make the necessary processing.&lt;br /&gt;
]]&lt;br /&gt;
local function formatTest(args)&lt;br /&gt;
	local result, errors&lt;br /&gt;
	local backward, primary = false, false&lt;br /&gt;
&lt;br /&gt;
	local function getParam(args, lim)&lt;br /&gt;
		local ret = {}&lt;br /&gt;
		for i = 1, lim do&lt;br /&gt;
			ret[i] = args[i] or &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return table.concat(ret, &#039;_&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args[1] then&lt;br /&gt;
		-- no lat logic&lt;br /&gt;
		return errorPrinter( {{&amp;quot;formatTest&amp;quot;, &amp;quot;Missing latitude&amp;quot;}} )&lt;br /&gt;
	elseif not tonumber(args[1]) then&lt;br /&gt;
		-- bad lat logic&lt;br /&gt;
		return errorPrinter( {{&amp;quot;formatTest&amp;quot;, &amp;quot;Unable to parse latitude as a number:&amp;quot; .. args[1]}} )&lt;br /&gt;
	elseif not args[4] and not args[5] and not args[6] then&lt;br /&gt;
		-- dec logic&lt;br /&gt;
		result, errors = parseDec(args[1], args[2], args.format)&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors);&lt;br /&gt;
		end&lt;br /&gt;
		-- formatting for geohack: geohack expects D_N_D_E notation or D;D notation&lt;br /&gt;
		-- wikiminiatlas doesn&#039;t support D;D notation&lt;br /&gt;
		-- #coordinates parserfunction doesn&#039;t support negative decimals with NSWE&lt;br /&gt;
		result.param = table.concat({&lt;br /&gt;
			math.abs(tonumber(args[1])),&lt;br /&gt;
			((tonumber(args[1]) or 0) &amp;lt; 0) and &#039;S&#039; or &#039;N&#039;,&lt;br /&gt;
			math.abs(tonumber(args[2])),&lt;br /&gt;
			((tonumber(args[2]) or 0) &amp;lt; 0) and &#039;W&#039; or &#039;E&#039;,&lt;br /&gt;
			args[3] or &#039;&#039;}, &#039;_&#039;)&lt;br /&gt;
	elseif dmsTest(args[4], args[8]) then&lt;br /&gt;
		-- dms logic&lt;br /&gt;
		result, errors, backward = parseDMS(args[1], args[2], args[3], args[4],&lt;br /&gt;
			args[5], args[6], args[7], args[8], args.format)&lt;br /&gt;
		if args[10] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Extra unexpected parameters&#039;})&lt;br /&gt;
		end&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors)&lt;br /&gt;
		end&lt;br /&gt;
		result.param = getParam(args, 9)&lt;br /&gt;
	elseif dmsTest(args[3], args[6]) then&lt;br /&gt;
		-- dm logic&lt;br /&gt;
		result, errors, backward = parseDMS(args[1], args[2], nil, args[3],&lt;br /&gt;
			args[4], args[5], nil, args[6], args[&#039;format&#039;])&lt;br /&gt;
		if args[8] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Extra unexpected parameters&#039;})&lt;br /&gt;
		end&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors)&lt;br /&gt;
		end&lt;br /&gt;
		result.param = getParam(args, 7)&lt;br /&gt;
	elseif dmsTest(args[2], args[4]) then&lt;br /&gt;
		-- d logic&lt;br /&gt;
		result, errors, backward = parseDMS(args[1], nil, nil, args[2],&lt;br /&gt;
			args[3], nil, nil, args[4], args.format)&lt;br /&gt;
		if args[6] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Extra unexpected parameters&#039;})&lt;br /&gt;
		end&lt;br /&gt;
		if not result then&lt;br /&gt;
			return errorPrinter(errors)&lt;br /&gt;
		end&lt;br /&gt;
		result.param = getParam(args, 5)&lt;br /&gt;
	else&lt;br /&gt;
		-- Error&lt;br /&gt;
		return errorPrinter({{&amp;quot;formatTest&amp;quot;, &amp;quot;Unknown argument format&amp;quot;}}) .. &#039;[[Category:Pages with malformed coordinate tags]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
	result.name = args.name&lt;br /&gt;
&lt;br /&gt;
	local extra_param = {&#039;dim&#039;, &#039;globe&#039;, &#039;scale&#039;, &#039;region&#039;, &#039;source&#039;, &#039;type&#039;}&lt;br /&gt;
	for _, v in ipairs(extra_param) do&lt;br /&gt;
		if args[v] then&lt;br /&gt;
			table.insert(errors, {&#039;formatTest&#039;, &#039;Parameter: &amp;quot;&#039; .. v .. &#039;=&amp;quot; should be &amp;quot;&#039; .. v .. &#039;:&amp;quot;&#039; })&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ret = specPrinter(args, result)&lt;br /&gt;
	if #errors &amp;gt; 0 then&lt;br /&gt;
		ret = ret .. &#039; &#039; .. errorPrinter(errors) .. &#039;[[Category:Pages with malformed coordinate tags]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return ret, backward&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Generate Wikidata tracking categories.&lt;br /&gt;
]]&lt;br /&gt;
local function makeWikidataCategories(qid)&lt;br /&gt;
	local ret&lt;br /&gt;
	local qid = qid or mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	if mw.wikibase and current_page.namespace == 0 then&lt;br /&gt;
		if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, &amp;quot;P625&amp;quot;) and mw.wikibase.getBestStatements(qid, &amp;quot;P625&amp;quot;)[1] then&lt;br /&gt;
			local snaktype = mw.wikibase.getBestStatements(qid, &amp;quot;P625&amp;quot;)[1].mainsnak.snaktype&lt;br /&gt;
			if snaktype == &#039;value&#039; then&lt;br /&gt;
				-- coordinates exist both here and on Wikidata, and can be compared.&lt;br /&gt;
				ret = &#039;Coordinates on Wikidata&#039;&lt;br /&gt;
			elseif snaktype == &#039;somevalue&#039; then&lt;br /&gt;
				ret = &#039;Coordinates on Wikidata set to unknown value&#039;&lt;br /&gt;
			elseif snaktype == &#039;novalue&#039; then&lt;br /&gt;
				ret = &#039;Coordinates on Wikidata set to no value&#039;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- We have to either import the coordinates to Wikidata or remove them here.&lt;br /&gt;
			ret = &#039;Coordinates not on Wikidata&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if ret then&lt;br /&gt;
		return string.format(&#039;[[Category:%s]]&#039;, ret)&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
link&lt;br /&gt;
&lt;br /&gt;
Simple function to export the coordinates link for other uses.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | link }}&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function coordinates.link(frame)&lt;br /&gt;
	return coord_link;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
dec2dms&lt;br /&gt;
&lt;br /&gt;
Wrapper to allow templates to call dec2dms directly.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix |&lt;br /&gt;
		negative_suffix | precision }}&lt;br /&gt;
&lt;br /&gt;
decimal_coordinate is converted to DMS format.  If positive, the positive_suffix&lt;br /&gt;
is appended (typical N or E), if negative, the negative suffix is appended.  The&lt;br /&gt;
specified precision is one of &#039;D&#039;, &#039;DM&#039;, or &#039;DMS&#039; to specify the level of detail&lt;br /&gt;
to use.&lt;br /&gt;
]]&lt;br /&gt;
coordinates.dec2dms = makeInvokeFunc(&#039;_dec2dms&#039;)&lt;br /&gt;
function coordinates._dec2dms(args)&lt;br /&gt;
	local coordinate = args[1]&lt;br /&gt;
	local firstPostfix = args[2] or &#039;&#039;&lt;br /&gt;
	local secondPostfix = args[3] or &#039;&#039;&lt;br /&gt;
	local precision = args[4] or &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
	return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function to determine whether to use D, DM, or DMS&lt;br /&gt;
format depending on the precision of the decimal input.&lt;br /&gt;
]]&lt;br /&gt;
function coordinates.determineMode( value1, value2 )&lt;br /&gt;
	local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) );&lt;br /&gt;
	if precision &amp;lt;= 0 then&lt;br /&gt;
		return &#039;d&#039;&lt;br /&gt;
	elseif precision &amp;lt;= 2 then&lt;br /&gt;
		return &#039;dm&#039;;&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;dms&#039;;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
dms2dec&lt;br /&gt;
&lt;br /&gt;
Wrapper to allow templates to call dms2dec directly.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | dms2dec | direction_flag | degrees |&lt;br /&gt;
		minutes | seconds }}&lt;br /&gt;
&lt;br /&gt;
Converts DMS values specified as degrees, minutes, seconds too decimal format.&lt;br /&gt;
direction_flag is one of N, S, E, W, and determines whether the output is&lt;br /&gt;
positive (i.e. N and E) or negative (i.e. S and W).&lt;br /&gt;
]]&lt;br /&gt;
coordinates.dms2dec = makeInvokeFunc(&#039;_dms2dec&#039;)&lt;br /&gt;
function coordinates._dms2dec(args)&lt;br /&gt;
	local direction = args[1]&lt;br /&gt;
	local degrees = args[2]&lt;br /&gt;
	local minutes = args[3]&lt;br /&gt;
	local seconds = args[4]&lt;br /&gt;
&lt;br /&gt;
	return convert_dms2dec(direction, degrees, minutes, seconds)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
coord&lt;br /&gt;
&lt;br /&gt;
Main entry point for Lua function to replace {{coord}}&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
	{{#invoke:Coordinates | coord }}&lt;br /&gt;
	{{#invoke:Coordinates | coord | lat | long }}&lt;br /&gt;
	{{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }}&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
	Refer to {{coord}} documentation page for many additional parameters and&lt;br /&gt;
	configuration options.&lt;br /&gt;
&lt;br /&gt;
Note: This function provides the visual display elements of {{coord}}.  In&lt;br /&gt;
order to load coordinates into the database, the {{#coordinates:}} parser&lt;br /&gt;
function must also be called, this is done automatically in the Lua&lt;br /&gt;
version of {{coord}}.&lt;br /&gt;
]]&lt;br /&gt;
coordinates.coord = makeInvokeFunc(&#039;_coord&#039;)&lt;br /&gt;
function coordinates._coord(args)&lt;br /&gt;
	if not tonumber(args[1]) and not args[2] then&lt;br /&gt;
		args[3] = args[1]; args[1] = nil&lt;br /&gt;
		local entity = mw.wikibase.getEntityObject(args.qid)&lt;br /&gt;
		if entity&lt;br /&gt;
			and entity.claims&lt;br /&gt;
			and entity.claims.P625&lt;br /&gt;
			and entity.claims.P625[1].mainsnak.snaktype == &#039;value&#039;&lt;br /&gt;
		then&lt;br /&gt;
			local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision&lt;br /&gt;
			args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude&lt;br /&gt;
			args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude&lt;br /&gt;
			if precision then&lt;br /&gt;
				precision = -math_mod._round(math.log(precision)/math.log(10),0)&lt;br /&gt;
				args[1] = math_mod._round(args[1],precision)&lt;br /&gt;
				args[2] = math_mod._round(args[2],precision)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local contents, backward = formatTest(args)&lt;br /&gt;
	local Notes = args.notes or &#039;&#039;&lt;br /&gt;
	local Display = args.display and args.display:lower() or &#039;inline&#039;&lt;br /&gt;
&lt;br /&gt;
	-- it and ti are short for inline,title and title,inline&lt;br /&gt;
	local function isInline(s)&lt;br /&gt;
		-- Finds whether coordinates are displayed inline.&lt;br /&gt;
		return s:find(&#039;inline&#039;) ~= nil or s == &#039;i&#039; or s == &#039;it&#039; or s == &#039;ti&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local function isInTitle(s)&lt;br /&gt;
		-- Finds whether coordinates are displayed in the title.&lt;br /&gt;
		return s:find(&#039;title&#039;) ~= nil or s == &#039;t&#039; or s == &#039;it&#039; or s == &#039;ti&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function coord_wrapper(in_args)&lt;br /&gt;
		-- Calls the parser function {{#coordinates:}} when available.&lt;br /&gt;
		local ok, result = pcall(function()&lt;br /&gt;
			return mw.getCurrentFrame():callParserFunction(&#039;#coordinates&#039;, in_args)&lt;br /&gt;
		end)&lt;br /&gt;
		if ok then&lt;br /&gt;
			return result or &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local text = &#039;&#039;&lt;br /&gt;
	if isInline(Display) then&lt;br /&gt;
		text = text .. &#039;&amp;lt;span class=&amp;quot;geo-inline&amp;quot;&amp;gt;&#039; .. contents .. Notes .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if isInTitle(Display) then&lt;br /&gt;
		-- Add to output since indicator content is invisible to Lua later on&lt;br /&gt;
		if not isInline(Display) then&lt;br /&gt;
			text = text .. &#039;&amp;lt;span class=&amp;quot;geo-inline-hidden noexcerpt&amp;quot;&amp;gt;&#039; .. contents .. Notes .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid)&lt;br /&gt;
	end&lt;br /&gt;
	if not args.nosave then&lt;br /&gt;
		local page_title, count = mw.title.getCurrentTitle(), 1&lt;br /&gt;
		if backward then&lt;br /&gt;
			local tmp = {}&lt;br /&gt;
			while not string.find((args[count-1] or &#039;&#039;), &#039;[EW]&#039;) do tmp[count] = (args[count] or &#039;&#039;); count = count+1 end&lt;br /&gt;
			tmp.count = count; count = 2*(count-1)&lt;br /&gt;
			while count &amp;gt;= tmp.count do table.insert(tmp, 1, (args[count] or &#039;&#039;)); count = count-1 end&lt;br /&gt;
			for i, v in ipairs(tmp) do args[i] = v end&lt;br /&gt;
		else&lt;br /&gt;
			while count &amp;lt;= 9 do args[count] = (args[count] or &#039;&#039;); count = count+1 end&lt;br /&gt;
		end&lt;br /&gt;
		if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= &#039;doc&#039; and page_title.subpageText ~= &#039;testcases&#039; then args[10] = &#039;primary&#039; end&lt;br /&gt;
		args.notes, args.format, args.display = nil&lt;br /&gt;
		text = text .. coord_wrapper(args)&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
coord2text&lt;br /&gt;
&lt;br /&gt;
Extracts a single value from a transclusion of {{Coord}}.&lt;br /&gt;
IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
    {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }}&lt;br /&gt;
&lt;br /&gt;
Valid values for the second parameter are: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function coordinates._coord2text(coord,type)&lt;br /&gt;
	if coord == &#039;&#039; or type == &#039;&#039; or not type then return nil end&lt;br /&gt;
	type = mw.text.trim(type)&lt;br /&gt;
	if type == &#039;lat&#039; or type == &#039;long&#039; then&lt;br /&gt;
        local coordString = mw.ustring.match(coord,&#039;[%.%d]+°[NS] [%.%d]+°[EW]&#039;)&lt;br /&gt;
        if not coordString then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
		local result = mw.text.split(coordString, &#039; &#039;)&lt;br /&gt;
        local negative&lt;br /&gt;
		if type == &#039;lat&#039; then&lt;br /&gt;
			result, negative = result[1], &#039;S&#039;&lt;br /&gt;
		else&lt;br /&gt;
			result, negative = result[2], &#039;W&#039;&lt;br /&gt;
		end&lt;br /&gt;
        if not result then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
		result = mw.text.split(result, &#039;°&#039;)&lt;br /&gt;
        if not result[1] then&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
		if result[2] == negative then result[1] = &#039;-&#039;..result[1] end&lt;br /&gt;
		return result[1]&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.match(coord, &#039;params=.-_&#039; .. type .. &#039;:(.-)[ _]&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function coordinates.coord2text(frame)&lt;br /&gt;
	return coordinates._coord2text(frame.args[1],frame.args[2]) or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
coordinsert&lt;br /&gt;
&lt;br /&gt;
Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn&#039;t already in the transclusion). Outputs the modified transclusion of {{Coord}}.&lt;br /&gt;
IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
    {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }}&lt;br /&gt;
&lt;br /&gt;
Do not make Geohack unhappy by inserting something which isn&#039;t mentioned in the {{Coord}} documentation.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function coordinates.coordinsert(frame)&lt;br /&gt;
	-- for the 2nd or later integer parameter (the first is the coord template, as above)&lt;br /&gt;
	for i, v in ipairs(frame.args) do&lt;br /&gt;
		if i ~= 1 then&lt;br /&gt;
			-- if we cannot find in the coord_template the i_th coordinsert parameter e.g. region&lt;br /&gt;
			if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], &#039;^(.-:)&#039;) or &#039;&#039;)) then&lt;br /&gt;
				-- find from the params= up to the first possibly-present underscore&lt;br /&gt;
				-- and append the i_th coordinsert parameter and a space&lt;br /&gt;
				-- IDK why we&#039;re adding a space but it does seem somewhat convenient&lt;br /&gt;
				frame.args[1] = mw.ustring.gsub(frame.args[1], &#039;(params=.-)_? &#039;, &#039;%1_&#039;..frame.args[i]..&#039; &#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if frame.args.name then&lt;br /&gt;
		-- if we can&#039;t find the vcard class&lt;br /&gt;
		if not mw.ustring.find(frame.args[1], &#039;&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&#039;) then&lt;br /&gt;
			-- take something that looks like a coord template and add the vcard span with class and fn org class&lt;br /&gt;
			local namestr = frame.args.name&lt;br /&gt;
			frame.args[1] = mw.ustring.gsub(&lt;br /&gt;
				frame.args[1],&lt;br /&gt;
				&#039;(&amp;lt;span class=&amp;quot;geo%-default&amp;quot;&amp;gt;)(&amp;lt;span[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]*&amp;lt;/span&amp;gt;&amp;lt;span[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]*&amp;lt;span[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]*&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;)(&amp;lt;/span&amp;gt;)&#039;,&lt;br /&gt;
				&#039;%1&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;%2&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;amp;#xfeff; (&amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;&#039; .. namestr .. &#039;&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;%3&#039;&lt;br /&gt;
			)&lt;br /&gt;
			-- then find anything from coordinates parameters to the &#039;end&#039; and attach the title parameter&lt;br /&gt;
			frame.args[1] = mw.ustring.gsub(&lt;br /&gt;
				frame.args[1],&lt;br /&gt;
				&#039;(&amp;amp;params=[^&amp;amp;&amp;quot;&amp;lt;&amp;gt;%[%] ]*) &#039;,&lt;br /&gt;
				&#039;%1&amp;amp;title=&#039; .. mw.uri.encode(namestr) .. &#039; &#039;&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- replace the existing indicator with a new indicator using the modified content&lt;br /&gt;
	frame.args[1] = mw.ustring.gsub(&lt;br /&gt;
		frame.args[1],&lt;br /&gt;
		&#039;(&amp;lt;span class=&amp;quot;geo%-inline[^&amp;quot;]*&amp;quot;&amp;gt;(.+)&amp;lt;/span&amp;gt;)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127&#039;,&lt;br /&gt;
		function (inline, coord) return inline .. displaytitle(coord) end&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	return frame.args[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return coordinates&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Leaders&amp;diff=2554</id>
		<title>Leaders</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Leaders&amp;diff=2554"/>
		<updated>2026-04-05T09:58:42Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current situation&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Abdullah Hashem]]&lt;br /&gt;
| [[Ahmadi Religion of Peace and Light]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| 1995–present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Ahmed al-Hasan]]&lt;br /&gt;
| [[Soldiers of Heaven]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Alan John Miller (known as &amp;quot;AJ&amp;quot;)]]&lt;br /&gt;
| [[Divine Truth]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Alexander Everett]]&lt;br /&gt;
| [[Mind Dynamics]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Allen Noonan]]&lt;br /&gt;
| [[One World Family Commune]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ann Lee]]&lt;br /&gt;
| [[Shakers]]&lt;br /&gt;
| 1758–1784&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Anthony Levandowski]]&lt;br /&gt;
| [[Way of the Future]]&lt;br /&gt;
| since 2009&lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Arnaud Mussy]]&lt;br /&gt;
| [[Néo-Phare]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ayah Pin]]&lt;br /&gt;
| [[Sky Kingdom]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Baba Simeo Lodvikus Melkio Ondetto]]&lt;br /&gt;
| [[Legio Maria]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bavua Ntinu Decantor Andrew]]&lt;br /&gt;
| [[Puissance spirituelle du verbe]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bill Levin]]&lt;br /&gt;
| [[First Church of Cannabis]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bishop Patrick L. Frazier Jr]]&lt;br /&gt;
| [[Fire Baptized Holiness Church of God of the Americas]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bob Weiner]]&lt;br /&gt;
| [[Maranatha Campus Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Brock Blomberg]]&lt;br /&gt;
| [[California Institute of Integral Studies]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Cecilia Eggleston]]&lt;br /&gt;
| [[Metropolitan Community Church]]&lt;br /&gt;
| 1989–present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Boyd Gentzel]]&lt;br /&gt;
| [[Mark-Age]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Taze Russell]]&lt;br /&gt;
| [[Jehovah&#039;s Witnesses]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Chris Butler (aka Siddhaswarupananda Paramahamsa)]]&lt;br /&gt;
| [[Science of Identity Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Chris Korda]]&lt;br /&gt;
| [[Church of Euthanasia]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brian Stone Sr]]&lt;br /&gt;
| [[Hutaree]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[David C. Pack]]&lt;br /&gt;
| [[Restored Church of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[David Ekerbring]]&lt;br /&gt;
| [[Word of Life (Sweden)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Lane (white supremacist)]]&lt;br /&gt;
| [[Wotansvolk]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Dia Abdul Zahra Kadim]]&lt;br /&gt;
| [[Soldiers of Heaven]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Dick Price]]&lt;br /&gt;
| [[Esalen Institute]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Dorothy Bailey]]&lt;br /&gt;
| [[Amica Temple of Radiance]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Dorothy Martin]]&lt;br /&gt;
| [[The Seekers (rapturists)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Eberhard Arnold]]&lt;br /&gt;
| [[Bruderhof Communities]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Eduardo González Arenas]]&lt;br /&gt;
| [[Edelweiss (organization)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Edward Mielnik]]&lt;br /&gt;
| [[Antrovis]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elijah Hong]]&lt;br /&gt;
| [[New Testament Church (Hong Kong)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1959–2009&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Emanuel Swedenborg]]&lt;br /&gt;
| [[Swedenborgianism]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Erika Bertschinger-Eicke]]&lt;br /&gt;
| [[Fiat Lux (UFO religion)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Estevam Hernandes]]&lt;br /&gt;
| [[Reborn in Christ Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Gen-la Kelsang Dekyong]]&lt;br /&gt;
| [[New Kadampa Tradition]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[George King (religious leader)]]&lt;br /&gt;
| [[Aetherius Society]]&lt;br /&gt;
| 1954–1997&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[George Müller]]&lt;br /&gt;
| [[Open Brethren]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Gerald E. Weston]]&lt;br /&gt;
| [[Living Church of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hakeem Abdul Rasheed]]&lt;br /&gt;
| [[Church of Hakeem]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Haven Boggs]]&lt;br /&gt;
| [[Living Enrichment Center]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heide Fittkau-Garthe]]&lt;br /&gt;
| [[Atman Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Henri Hillion]]&lt;br /&gt;
| [[Monastic Order of Avallon]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Henry Prince]]&lt;br /&gt;
| [[Agapemonites]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hon-Ming Chen (陳恆明)]]&lt;br /&gt;
| [[Chen Tao (UFO religion)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Honório Pinto]]&lt;br /&gt;
| [[Assembly of God Bethlehem Ministry]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Igor Danilov]]&lt;br /&gt;
| [[AllatRa]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[J. Z. Knight]]&lt;br /&gt;
| [[Ramtha&#039;s School of Enlightenment]]&lt;br /&gt;
| 1977–present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Jaime Gomez (also known as Michel Rostan)]]&lt;br /&gt;
| [[Buddhafield (religious movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Jean Spademan]]&lt;br /&gt;
| [[Bethel Church]] / [[Mansfield Woodhouse]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jean-Paul Appel]]&lt;br /&gt;
| [[Siderella]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Jerold Gliege]]&lt;br /&gt;
| [[Evangelical Orthodox Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Jerry Williams]]&lt;br /&gt;
| [[The Brethren (Jim Roberts group)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ji Sanbao]]&lt;br /&gt;
| [[Mentuhui]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[John Hanley Sr]]&lt;br /&gt;
| [[Lifespring]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[John Hibbert]]&lt;br /&gt;
| [[Bethel Church]] / [[Mansfield Woodhouse]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[John Morton]]&lt;br /&gt;
| [[Movement of Spiritual Inner Awareness]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Jonás Ataucusi Molina]]&lt;br /&gt;
| [[Evangelical Association of the Israelite Mission of the New Universal Covenant]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Jorge Ángel Livraga Rizzi]]&lt;br /&gt;
| [[New Acropolis]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Franklin Rutherford]]&lt;br /&gt;
| [[Jehovah&#039;s Witnesses]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Odermatt]]&lt;br /&gt;
| [[Palmarian Catholic Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[João Torunsky]]&lt;br /&gt;
| [[The Christian Community]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Juliano Verbard]]&lt;br /&gt;
| [[Sorrowful and Immaculate Heart of Mary (cult)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Julien Origas]]&lt;br /&gt;
| [[Renewed Order of the Temple]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Jung Myung-seok]]&lt;br /&gt;
| [[Providence (religious movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Katsutoshi Sekiguchi]]&lt;br /&gt;
| [[World Divine Light]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kim Joo-Cheol]]&lt;br /&gt;
| [[World Mission Society Church of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Kirby J. Hensley]]&lt;br /&gt;
| [[Universal Life Church]]&lt;br /&gt;
| 1962–1999&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Konstantin Rudnev]]&lt;br /&gt;
| [[Ashram Shambala]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Kurusar Lokhon Engti Hensek]]&lt;br /&gt;
| [[Lokhimon]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Kōō Okada]]&lt;br /&gt;
| [[Sukyo Mahikari]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Lekhraj Kripalani]]&lt;br /&gt;
| [[Brahma Kumaris]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Louis Antoine]]&lt;br /&gt;
| [[Antoinism]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Louis Farrakhan]]&lt;br /&gt;
| [[Nation of Islam]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Lucien Greaves]]&lt;br /&gt;
| [[The Satanic Temple]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Maharishi Mahesh Yogi]]&lt;br /&gt;
| [[Maharishi International University]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Marie-Thérèse Castano]]&lt;br /&gt;
| [[International Center of Parapsychology and Scientific Research of the New Age]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Marion Pettie]]&lt;br /&gt;
| [[The Finders (movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Vian Summers]]&lt;br /&gt;
| [[New Message from God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Mary Baker Eddy]]&lt;br /&gt;
| [[Christian Science]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Mary Manin Morrissey]]&lt;br /&gt;
| [[Living Enrichment Center]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[María Luisa Piraquive]]&lt;br /&gt;
| [[Church of God Ministry of Jesus Christ International]]&lt;br /&gt;
| 1971–present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Michael A. Aquino]]&lt;br /&gt;
| [[Temple of Set]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Michael Leavitt]]&lt;br /&gt;
| [[Landmark Worldwide]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Michael Murphy (author)]]&lt;br /&gt;
| [[Esalen Institute]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Michel Collin]]&lt;br /&gt;
| [[Apostles of Infinite Love]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Michel Potay]]&lt;br /&gt;
| [[Pilgrims of Arès]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Neville Cooper]]&lt;br /&gt;
| [[Gloriavale Christian Community]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Noel Stanton]]&lt;br /&gt;
| [[Jesus Army]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Oba Adejuyigbe Adefunmi II]]&lt;br /&gt;
| [[African Theological Archministry]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Oberto Airaudi]]&lt;br /&gt;
| [[Federation of Damanhur]]&lt;br /&gt;
| 1975–2013&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Ock Soo Park]]&lt;br /&gt;
| [[Good News Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Olivier Fenoy]]&lt;br /&gt;
| [[Cultural Office of Cluny]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Pai Seta Branca]]&lt;br /&gt;
| [[Valley of the Dawn]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Pastor S.O Oladele]]&lt;br /&gt;
| [[Christ Apostolic Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Patricia Paulsen]]&lt;br /&gt;
| [[Sunburst (community)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Baumann]]&lt;br /&gt;
| [[Methernitha]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Erdmann aka Love Israel]]&lt;br /&gt;
| [[Love Family]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Wei]]&lt;br /&gt;
| [[True Jesus Church]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Pauline Sharpe]]&lt;br /&gt;
| [[Mark-Age]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Peter H. Gilmore]]&lt;br /&gt;
| [[Church of Satan]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Philip Berg]]&lt;br /&gt;
| [[Kabbalah Centre]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Prem Rawat]]&lt;br /&gt;
| [[Elan Vital (organization)]]&lt;br /&gt;
| 1966&amp;amp;ndash;present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Purodhā Pramukha]]&lt;br /&gt;
| [[Ananda Marga]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ra Un Nefer Amen]]&lt;br /&gt;
| [[Ausar Auset Society]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Rashad Jamal]]&lt;br /&gt;
| [[University of Cosmic Intelligence]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Riaz Ahmed Gohar Shahi]]&lt;br /&gt;
| [[Messiah Foundation International]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Roland T. Hunt]]&lt;br /&gt;
| [[Amica Temple of Radiance]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ruben Ecleo Sr.]]&lt;br /&gt;
| [[Philippine Benevolent Missionaries Association]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1996-2023; 1986-1996&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Sam J. Wibberley]]&lt;br /&gt;
| [[Bethel Church]] / [[Mansfield Woodhouse]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Samuel Chang-Woo Lee]]&lt;br /&gt;
| [[University Bible Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Samuel Oshoffa]]&lt;br /&gt;
| [[Celestial Church of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Sarah Barry]]&lt;br /&gt;
| [[University Bible Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Shin Ok-ju]]&lt;br /&gt;
| [[Grace Road Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Shukri Mustafa]]&lt;br /&gt;
| [[Takfir wal-Hijra]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Simon Kimbangu Kiangani]]&lt;br /&gt;
| [[Kimbanguism]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Simon Mokoena]]&lt;br /&gt;
| [[Tyrannus Apostolic Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Sofía Betancourt]]&lt;br /&gt;
| [[Unitarian Universalist Association]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Sri Aurobindo]]&lt;br /&gt;
| [[Sri Aurobindo Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Steve Morgan]]&lt;br /&gt;
| [[The Network (group of churches)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Thomas Schaller (Chair, Board of Elders)]]&lt;br /&gt;
| [[Greater Grace World Outreach]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Tore Tvedt]]&lt;br /&gt;
| [[Vigrid (Norway)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Victor Barnard]]&lt;br /&gt;
| [[River Road Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Wallace C. Halsey]]&lt;br /&gt;
| [[Christ Brotherhood]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive; still regarded by followers as leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Wayman O. Mitchell]]&lt;br /&gt;
| [[Potter&#039;s House Christian Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Werner Erhard]]&lt;br /&gt;
| [[Erhard Seminars Training]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[William Irvine (Scottish evangelist)]]&lt;br /&gt;
| [[Two by Twos]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[William R. Ferguson]]&lt;br /&gt;
| [[Cosmic Circle of Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[William Sowders]]&lt;br /&gt;
| [[Gospel Assembly Churches]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Yogi Bhajan]]&lt;br /&gt;
| [[3HO]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Yoo Jae-yeol]]&lt;br /&gt;
| [[Tabernacle Temple Church]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Younus AlGohar]]&lt;br /&gt;
| [[Kalki Avatar Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Yvonne Trubert]]&lt;br /&gt;
| [[Invitation to Life]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Organizations&amp;diff=2553</id>
		<title>Organizations</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Organizations&amp;diff=2553"/>
		<updated>2026-04-05T09:58:40Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Status&lt;br /&gt;
! Founder&lt;br /&gt;
! Current leader&lt;br /&gt;
! Current name&lt;br /&gt;
|-&lt;br /&gt;
| [[&amp;quot;I AM&amp;quot; Activity]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[3HO]]&lt;br /&gt;
| 1969&lt;br /&gt;
| Active&lt;br /&gt;
| [[Yogi Bhajan]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Adidam]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aetherius Society]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[African Theological Archministry]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Oba Adejuyigbe Adefunmi II]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Agapemonites]]&lt;br /&gt;
| 1846&lt;br /&gt;
| Closed 1956&lt;br /&gt;
| Henry Prince&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ahmadi Religion of Peace and Light]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Abdullah Hashem]]&lt;br /&gt;
| [[Abdullah Hashem]]&lt;br /&gt;
| The Ahmadi Religion of Peace and Light&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Tony Alamo, Susan Alamo&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[All Ranges Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[AllatRa]]&lt;br /&gt;
| 2014&lt;br /&gt;
| Active&lt;br /&gt;
| AllatRa LLC&lt;br /&gt;
| [[Igor Danilov]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amica Temple of Radiance]]&lt;br /&gt;
| 1959&lt;br /&gt;
| Unknown&lt;br /&gt;
| Roland T. Hunt, Dorothy Bailey&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Peter Benenson]], [[Eric Baker (activist)]], [[Seán MacBride]]&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ananda Marga]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Prabhat Ranjan Sarkar]]&lt;br /&gt;
| [[Purodhā Pramukha]]&lt;br /&gt;
| Ánanda Márga Pracáraka Saḿgha&lt;br /&gt;
|-&lt;br /&gt;
| [[Ancient British Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ancient Teachings of the Masters]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Antoinism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Louis Antoine]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Antrovis]]&lt;br /&gt;
| &lt;br /&gt;
| Closed 1994&lt;br /&gt;
| Edward Mielnik&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Apostles of Infinite Love]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Michel Collin&lt;br /&gt;
| [[Michel Collin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ashram Shambala]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Konstantin Rudnev&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ashtar Galactic Command]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Assembly of God Bethlehem Ministry]]&lt;br /&gt;
| 2018&lt;br /&gt;
| Active&lt;br /&gt;
| Honório Pinto&lt;br /&gt;
| [[Honório Pinto]]&lt;br /&gt;
| Assembly of God of Belém Pará, Brazil&lt;br /&gt;
|-&lt;br /&gt;
| [[Atman Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Heide Fittkau-Garthe]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| &lt;br /&gt;
| Active, split successors&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ausar Auset Society]]&lt;br /&gt;
| 1973&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Ra Un Nefer Amen]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bana&#039;im]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bethel Church, Mansfield Woodhouse]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Brahma Kumaris]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Lekhraj Kripalani]]&lt;br /&gt;
| [[Lekhraj Kripalani]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Active, fragmented&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[British New Church Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Brother Stair]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Brotherhood of the Cross and Star]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruderhof Communities]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Eberhard Arnold]]&lt;br /&gt;
| &lt;br /&gt;
| Bruderhof&lt;br /&gt;
|-&lt;br /&gt;
| [[Buddhafield (religious movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Jaime Gomez (also known as Michel Rostan)&lt;br /&gt;
| [[Jaime Gomez (also known as Michel Rostan)]]&lt;br /&gt;
| Buddhafield&lt;br /&gt;
|-&lt;br /&gt;
| [[California Institute of Integral Studies]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Brock Blomberg]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Camisards]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[CEIRUS]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Celestial Church of Christ]]&lt;br /&gt;
| 1947&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Samuel Oshoffa]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Chapel of Russia&#039;s Resurrection]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charismatic movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Chen Tao (UFO religion)]]&lt;br /&gt;
| 1996&lt;br /&gt;
| Active&lt;br /&gt;
| Hon-Ming Chen (陳恆明)&lt;br /&gt;
| [[Hon-Ming Chen (陳恆明)]]&lt;br /&gt;
| Chen Tao&lt;br /&gt;
|-&lt;br /&gt;
| [[Cherubim and Seraphim Society]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Christ Apostolic Church]]&lt;br /&gt;
| 1918&lt;br /&gt;
| Active&lt;br /&gt;
| Pastor Isaac Babalola Akinyele, Pastor David O. Odubanjo, Apostle Joseph Ayo Babalola&lt;br /&gt;
| [[Pastor S.O Oladele]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Christ Brotherhood]]&lt;br /&gt;
| 1956&lt;br /&gt;
| Active&lt;br /&gt;
| Wallace C. Halsey&lt;br /&gt;
| [[Wallace C. Halsey]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Christ Heart Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Christian fundamentalism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Christian Science]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Mary Baker Eddy]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Body of Christ – Filipinista]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Almighty God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Body Modification]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Cognizance]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Euthanasia]]&lt;br /&gt;
| 1992&lt;br /&gt;
| Active&lt;br /&gt;
| [[Chris Korda]]&lt;br /&gt;
| [[Chris Korda]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of God Ministry of Jesus Christ International]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Active&lt;br /&gt;
| [[Luis Eduardo Moreno]], [[María Luisa Piraquive]]&lt;br /&gt;
| [[María Luisa Piraquive]]&lt;br /&gt;
| Church of God, Ministry of Jesus Christ International&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of God Preparing for the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Hakeem]]&lt;br /&gt;
| 1977&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Hakeem Abdul Rasheed]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Satan]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Active&lt;br /&gt;
| [[Anton Szandor LaVey]]&lt;br /&gt;
| [[Peter H. Gilmore]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Firstborn (Morrisite)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Guanche People]]&lt;br /&gt;
| 2001&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Lord (Aladura)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Universe]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Community of the Lady of All Nations]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Concerned Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Cosmic Circle of Fellowship]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[William R. Ferguson]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Cosmon Research Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Cultural Office of Cluny]]&lt;br /&gt;
| 1963&lt;br /&gt;
| Active&lt;br /&gt;
| Olivier Fenoy&lt;br /&gt;
| [[Olivier Fenoy]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Dami Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Brian Tamaki]], [[Hannah Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| Destiny Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Immortality Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Truth]]&lt;br /&gt;
| 2007&lt;br /&gt;
| Active&lt;br /&gt;
| Alan John Miller (known as &amp;quot;AJ&amp;quot; and &amp;quot;Jesus&amp;quot;)&lt;br /&gt;
| [[Alan John Miller (known as &amp;quot;AJ&amp;quot;)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Dulcinians]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Dwell Community Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Dōkai]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Twitchell]]&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Edelweiss (organization)]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Closed 1984&lt;br /&gt;
| Eduardo González Arenas&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eden Community]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Educo]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elan Vital (organization)]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Prem Rawat]]&lt;br /&gt;
| Elan Vital&lt;br /&gt;
|-&lt;br /&gt;
| [[Emin (esoteric movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Energo-Chromo-Kinese]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eranos Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Erhard Seminars Training]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Closed 1984&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Esalen Institute]]&lt;br /&gt;
| 1962&lt;br /&gt;
| Active&lt;br /&gt;
| [[Michael Murphy (author)]], [[Dick Price]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eschatology (religious movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Evangelical Association of the Israelite Mission of the New Universal Covenant]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[Ezequiel Ataucusi Gamonal]]&lt;br /&gt;
| [[Jonás Ataucusi Molina]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Evangelical Baptist Church of Korea]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Evangelical Orthodox Church]]&lt;br /&gt;
| 1979&lt;br /&gt;
| Active&lt;br /&gt;
| [[Peter E. Gillquist]]&lt;br /&gt;
| [[Jerold Gliege]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Exegesis (group)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Buddha Society (Singapore)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Family Radio]]&lt;br /&gt;
| 1959&lt;br /&gt;
| Active&lt;br /&gt;
| [[Richard H. Palmquist]], [[Harold Camping]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Federation of Damanhur]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| Robert Earl Burton&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Isis]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fiat Lux (UFO religion)]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Active&lt;br /&gt;
| Erika Bertschinger-Eicke&lt;br /&gt;
| [[Erika Bertschinger-Eicke]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Findhorn Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Findhorn Foundation and Community&lt;br /&gt;
|-&lt;br /&gt;
| [[Fire Baptized Holiness Church of God of the Americas]]&lt;br /&gt;
| 1908&lt;br /&gt;
| Active&lt;br /&gt;
| Benjamin Hardin Irwin and Bishop William Edward Fuller Sr.&lt;br /&gt;
| [[Bishop Patrick L. Frazier Jr]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[First Cannabis Church of Logic and Reason]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[First Church of Cannabis]]&lt;br /&gt;
| 2015&lt;br /&gt;
| Active&lt;br /&gt;
| Bill &amp;quot;Grand Poobah&amp;quot; Levin&lt;br /&gt;
| [[Bill Levin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Five-Percent Nation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fort Hill Community]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fourth Great Awakening]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Freie Interessengemeinschaft für Grenz- und Geisteswissenschaften und Ufologiestudien]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Friends of Man]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| FLDS Church&lt;br /&gt;
|-&lt;br /&gt;
| [[George Adamski Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Global Harvest Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Gloriavale Christian Community]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Neville Cooper&lt;br /&gt;
| [[Neville Cooper]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[God Light Association]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Paul Nthenge Mackenzie&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Good News Mission]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Active&lt;br /&gt;
| [[Ock Soo Park]]&lt;br /&gt;
| [[Ock Soo Park]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Gospel Assembly Churches]]&lt;br /&gt;
| 1914&lt;br /&gt;
| Active&lt;br /&gt;
| William Sowders&lt;br /&gt;
| [[William Sowders]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Grace Road Church]]&lt;br /&gt;
| 2002&lt;br /&gt;
| Active&lt;br /&gt;
| Shin Ok-ju&lt;br /&gt;
| [[Shin Ok-ju]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Greater Grace World Outreach]]&lt;br /&gt;
| 1973&lt;br /&gt;
| Active&lt;br /&gt;
| [[Carl H. Stevens Jr.]]&lt;br /&gt;
| [[Thomas Schaller (Chair, Board of Elders)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Greenpeace]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ground Crew Project]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Gruppo del Rosario]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Guanyin Famen]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Haizidao]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hanau sect]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1986&lt;br /&gt;
| Active&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| &lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
|-&lt;br /&gt;
| [[Harmony Society]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Defunct&lt;br /&gt;
| [[Marshall Applewhite]], [[Bonnie Nettles]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ho No Hana]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Holy Ecclesia of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Holy Ghost Church of East Africa]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Holy Order of MANS]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Holy Spirit Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Israel (Guyana)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Prayer Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Active&lt;br /&gt;
| Yisrayl Hawkins&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hutaree]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[David Brian Stone Sr]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[IFCA International]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Iglesia Watawat ng Lahi]]&lt;br /&gt;
| 1936&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Inochentism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Insight Seminars]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Center of Parapsychology and Scientific Research of the New Age]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Marie-Thérèse Castano]]&lt;br /&gt;
| International Center of Parapsychology and the Scientific Research of the New Age&lt;br /&gt;
|-&lt;br /&gt;
| [[International Church of Cannabis]]&lt;br /&gt;
| 2017&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| 1863&lt;br /&gt;
| Active&lt;br /&gt;
| [[Henry Dunant]]&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Community of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Active&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Invitation to Life]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Yvonne Trubert]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Iriadamant]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Japan Ecclesia of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jehovah&#039;s Witnesses]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Charles Taze Russell]], [[Joseph Franklin Rutherford]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Army]]&lt;br /&gt;
| 1969&lt;br /&gt;
| Active&lt;br /&gt;
| [[Noel Stanton]]&lt;br /&gt;
| &lt;br /&gt;
| Jesus Fellowship Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Joshua Media Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jurisdavidism]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kabbalah Centre]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Philip Berg]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kalki Avatar Foundation]]&lt;br /&gt;
| 2000&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Younus AlGohar]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kartanoism]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Church Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kerista]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kimbanguism]]&lt;br /&gt;
| 1921&lt;br /&gt;
| Active&lt;br /&gt;
| [[Simon Kimbangu]]&lt;br /&gt;
| [[Simon Kimbangu Kiangani]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kingdom of Jesus Christ (church)]]&lt;br /&gt;
| 1985&lt;br /&gt;
| Active&lt;br /&gt;
| [[Apollo Quiboloy]]&lt;br /&gt;
| &lt;br /&gt;
| Kingdom of Jesus Christ,, The Name Above Every Name&lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Active&lt;br /&gt;
| Aarón Joaquín González&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
|-&lt;br /&gt;
| [[Landmark Worldwide]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Michael Leavitt]]&lt;br /&gt;
| Landmark Worldwide LLC&lt;br /&gt;
|-&lt;br /&gt;
| [[Latter Day Saint movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Laymen&#039;s Home Missionary Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Legio Maria]]&lt;br /&gt;
| 1961&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Baba Simeo Lodvikus Melkio Ondetto]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Licht-Oase]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Life Word Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Lifespring]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Closed&lt;br /&gt;
| John Hanley Sr.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Lily Dale Spiritualist Assembly]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Lindisfarne Association]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Living Church of God]]&lt;br /&gt;
| 1998&lt;br /&gt;
| Active&lt;br /&gt;
| Roderick C. Meredith&lt;br /&gt;
| [[Gerald E. Weston]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Living Enrichment Center]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Mary Manin Boggs (Morrissey), and Haven Boggs&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Living Word Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Lokhimon]]&lt;br /&gt;
| 1959&lt;br /&gt;
| Active&lt;br /&gt;
| Kurusar Lokhon Engti Hensek&lt;br /&gt;
| [[Kurusar Lokhon Engti Hensek]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Lord Our Righteousness Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Family]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Paul Erdmann aka Love Israel&lt;br /&gt;
| [[Paul Erdmann aka Love Israel]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Lumpa Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Magarites]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Maharishi International University]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Maharishi Mahesh Yogi]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Makuya]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mama Tata]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Maná Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Maranatha Campus Ministries]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Bob Weiner]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mark-Age]]&lt;br /&gt;
| 1962&lt;br /&gt;
| Unknown&lt;br /&gt;
| Pauline Sharpe and Charles Boyd Gentzel&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mentuhui]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Active&lt;br /&gt;
| Ji Sanbao&lt;br /&gt;
| [[Ji Sanbao]]&lt;br /&gt;
| Three-Redemptive Christ&lt;br /&gt;
|-&lt;br /&gt;
| [[Messiah Foundation International]]&lt;br /&gt;
| 2002&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Riaz Ahmed Gohar Shahi]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Messianic Judaism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Methernitha]]&lt;br /&gt;
| 1960&lt;br /&gt;
| Active&lt;br /&gt;
| Paul Baumann&lt;br /&gt;
| [[Paul Baumann]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Metropolitan Community Church]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[Troy Perry]]&lt;br /&gt;
| [[Cecilia Eggleston]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mind Dynamics]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Closed 1973&lt;br /&gt;
| [[Alexander Everett]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Miracle of Love]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mission of the Holy Spirit]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Missionary Church of Kopimism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Modekngei]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Monastic Order of Avallon]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| Henri Hillion&lt;br /&gt;
| [[Henri Hillion]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Moorish Orthodox Church of America]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Mormonism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| [[Credonia Mwerinde]], [[Joseph Kibweteere]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement of Spiritual Inner Awareness]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[John-Roger Hinkins]]&lt;br /&gt;
| [[John Morton]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Islam]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Active&lt;br /&gt;
| [[Wallace Fard Muhammad]]&lt;br /&gt;
| [[Louis Farrakhan]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nemenhah]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Neo-American Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Neo-Luciferian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Neu-Salems-Gesellschaft]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[New Acropolis]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Jorge Ángel Livraga Rizzi]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[New Forest Shakers]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[New Israelites]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[New Kadampa Tradition]]&lt;br /&gt;
| 1991&lt;br /&gt;
| Active&lt;br /&gt;
| [[Kelsang Gyatso]]&lt;br /&gt;
| [[Gen-la Kelsang Dekyong]]&lt;br /&gt;
| New Kadampa Tradition, International Kadampa Buddhist Union&lt;br /&gt;
|-&lt;br /&gt;
| [[New Message from God]]&lt;br /&gt;
| 1992&lt;br /&gt;
| Active&lt;br /&gt;
| [[Marshall Vian Summers]]&lt;br /&gt;
| [[Marshall Vian Summers]]&lt;br /&gt;
| The New Message from God&lt;br /&gt;
|-&lt;br /&gt;
| [[New Testament Church (Hong Kong)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Elijah Hong]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[New World Alliance]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Niscience]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nova Religio]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nuwaubian Nation]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
|-&lt;br /&gt;
| [[Néo-Phare]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Arnaud Mussy&lt;br /&gt;
| [[Arnaud Mussy]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Okinawa Christian Gospel]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Olive Tree (religious movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[One World Family Commune]]&lt;br /&gt;
| 1967&lt;br /&gt;
| Active&lt;br /&gt;
| Allen Noonan&lt;br /&gt;
| [[Allen Noonan]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Open Brethren]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Active&lt;br /&gt;
| [[George Müller]]&lt;br /&gt;
| &lt;br /&gt;
| Open Brethren, (Christian Brethren)&lt;br /&gt;
|-&lt;br /&gt;
| [[Open Source Order of the Golden Dawn]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of Nine Angles]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Defunct&lt;br /&gt;
| [[Joseph Di Mambro]], [[Luc Jouret]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Palmarian Catholic Church]]&lt;br /&gt;
| 1978&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jesus Christ]], [[Clemente Domínguez y Gómez]]&lt;br /&gt;
| [[Joseph Odermatt]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Pana Wave]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[People Unlimited]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Defunct&lt;br /&gt;
| Jim Jones&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Phare-Ouest]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Philippine Benevolent Missionaries Association]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Ruben Ecleo Sr.]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Pilgrims of Arès]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Active&lt;br /&gt;
| Michel Potay&lt;br /&gt;
| [[Michel Potay]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Active&lt;br /&gt;
| [[John Nelson Darby]]&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Potter&#039;s House Christian Fellowship]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| Wayman O. Mitchell&lt;br /&gt;
| [[Wayman O. Mitchell]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Process Church of the Final Judgement]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Providence (religious movement)]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jung Myung-seok]]&lt;br /&gt;
| [[Jung Myung-seok]]&lt;br /&gt;
| Christian Gospel Mission, , Providence&lt;br /&gt;
|-&lt;br /&gt;
| [[Pró-Vida]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Puissance spirituelle du verbe]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Bavua Ntinu Decantor Andrew&lt;br /&gt;
| [[Bavua Ntinu Decantor Andrew]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Radio Church of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| Raëlism&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
|-&lt;br /&gt;
| [[Ramtha&#039;s School of Enlightenment]]&lt;br /&gt;
| 1988&lt;br /&gt;
| Active&lt;br /&gt;
| [[J. Z. Knight]]&lt;br /&gt;
| [[J. Z. Knight]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rational Culture]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Reborn in Christ Church]]&lt;br /&gt;
| 1986&lt;br /&gt;
| Active&lt;br /&gt;
| Estevam Hernandes and Sonia Hernandes&lt;br /&gt;
| [[Estevam Hernandes]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Renewed Order of the Temple]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Raymond Bernard (esotericist)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Restored Church of God]]&lt;br /&gt;
| 1999&lt;br /&gt;
| Active&lt;br /&gt;
| David C. Pack&lt;br /&gt;
| [[David C. Pack]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[River Road Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Closed 2014&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rod of Iron Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rosicrucian Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| 1905&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sabbateans]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sacrament of Transition]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Salvation Sect]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sanban Puren Pai]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sanctuary of Thought]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| Active&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
|-&lt;br /&gt;
| [[Science of Identity Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Chris Butler (aka Siddhaswarupananda Paramahamsa)&lt;br /&gt;
| [[Chris Butler (aka Siddhaswarupananda Paramahamsa)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Sekta Niebo]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Shakers]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Ann Lee]]&lt;br /&gt;
| &lt;br /&gt;
| United Society of Believers in Christ&#039;s Second Appearing&lt;br /&gt;
|-&lt;br /&gt;
| [[Shambhala Training]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Share International]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Shiloh (Christian movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| Shincheonji&lt;br /&gt;
|-&lt;br /&gt;
| [[Siderella]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Jean-Paul Appel]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Silver Sisterhood]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sky Kingdom]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Ayah Pin]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Society of Guardians]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Active&lt;br /&gt;
| [[Tsunesaburō Makiguchi]], [[Jōsei Toda]], [[Daisaku Ikeda]]&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
|-&lt;br /&gt;
| [[Soldiers of Heaven]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sorrowful and Immaculate Heart of Mary (cult)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Juliano Verbard]]&lt;br /&gt;
| Sorrowful and Immaculate Heart of Mary&lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit Church (China)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Spirit of Jesus Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sri Aurobindo Ashram]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Sri Aurobindo]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sri Aurobindo Ashram, Rewa]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Staroizrail]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sukyo Mahikari]]&lt;br /&gt;
| 1978&lt;br /&gt;
| Active&lt;br /&gt;
| [[:ja:岡田恵珠]]&lt;br /&gt;
| [[Kōō Okada]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Summum]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sunburst (community)]]&lt;br /&gt;
| 1969&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Patricia Paulsen]]&lt;br /&gt;
| Sunburst&lt;br /&gt;
|-&lt;br /&gt;
| [[Swedenborgianism]]&lt;br /&gt;
| 1787&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Swissindo]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sword of Christ Good News Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Charles Dederich Sr.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Tabernacle Temple Church]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Closed 1980&lt;br /&gt;
| [[:ko:%EC%9C%A0%EC%9E%AC%EC%97%B4]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Tadtad]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Takfir wal-Hijra]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Shukri Mustafa]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Temple of Set]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Michael A. Aquino]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Temple of the Vampire]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Unknown&lt;br /&gt;
| Anonymous&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Temple of Zeus (organization)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Andrea Maxine Dietrich (1962-2020)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Templers (Radical Pietist sect)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[THC Ministry]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The African Church]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Brethren (Jim Roberts group)]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jimmie T. Roberts]]&lt;br /&gt;
| [[Jerry Williams]]&lt;br /&gt;
| Brethren , Body of Christ , Brothers and Sisters&lt;br /&gt;
|-&lt;br /&gt;
| [[The Bridge to Freedom]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Christian Community]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Friedrich Rittelmeyer]]&lt;br /&gt;
| [[João Torunsky]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Circle (sect)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Circle of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Fellowship (Australia)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Finders (movement)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Marion Pettie&lt;br /&gt;
| [[Marion Pettie]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Living Word Fellowship]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Network (group of churches)]]&lt;br /&gt;
| 2006&lt;br /&gt;
| Active&lt;br /&gt;
| Steve Morgan&lt;br /&gt;
| [[Steve Morgan]]&lt;br /&gt;
| The Network&lt;br /&gt;
|-&lt;br /&gt;
| [[The Order of Christ Sophia]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Satanic Temple]]&lt;br /&gt;
| 2012&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lucien Greaves]]&lt;br /&gt;
| [[Lucien Greaves]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Seekers (rapturists)]]&lt;br /&gt;
| 1953&lt;br /&gt;
| Active&lt;br /&gt;
| Charles Laughead&lt;br /&gt;
| [[Dorothy Martin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Shouters]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| The Way International Victor Paul Wierwille&lt;br /&gt;
|-&lt;br /&gt;
| [[Theta Noir]]&lt;br /&gt;
| 2020&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[True and Living Church of Jesus Christ of Saints of the Last Days]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[True Buddha School]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[True Jesus Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Paul Wei]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[True Russian Orthodox Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Active&lt;br /&gt;
| Elbert &amp;quot;Gene&amp;quot; Spriggs&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
|-&lt;br /&gt;
| [[Twin Flames Universe]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Two by Twos]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[William Irvine (Scottish evangelist)]]&lt;br /&gt;
| &lt;br /&gt;
| The Truth, Two by Twos&lt;br /&gt;
|-&lt;br /&gt;
| [[Tyrannus Apostolic Church]]&lt;br /&gt;
| 2000&lt;br /&gt;
| Active&lt;br /&gt;
| Simon Mokoena&lt;br /&gt;
| [[Simon Mokoena]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unarius Academy of Science]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Understanding, Inc.]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Active&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
|-&lt;br /&gt;
| [[Unitarian Universalist Association]]&lt;br /&gt;
| 1961&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Sofía Betancourt]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| 1977&lt;br /&gt;
| Active&lt;br /&gt;
| Edir Macedo&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Life Church]]&lt;br /&gt;
| 1962&lt;br /&gt;
| Active&lt;br /&gt;
| [[Kirby J. Hensley]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Medicine]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Universe People]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[University Bible Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Samuel Chang-Woo Lee, Sarah Barry&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[University of Cosmic Intelligence]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Rashad Jamal]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[União do Vegetal]]&lt;br /&gt;
| 1961&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unión Espiritista Cristiana de Filipinas, Inc.]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Urantia Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Valley of the Dawn]]&lt;br /&gt;
| 1969&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Pai Seta Branca]]&lt;br /&gt;
| Vale do Amanhecer&lt;br /&gt;
|-&lt;br /&gt;
| [[Victory Altar]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Vigrid (Norway)]]&lt;br /&gt;
| 1998&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Tore Tvedt]]&lt;br /&gt;
| Vigrid&lt;br /&gt;
|-&lt;br /&gt;
| [[Waking Down in Mutuality]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Way of the Future]]&lt;br /&gt;
| 2017&lt;br /&gt;
| Active&lt;br /&gt;
| [[Anthony Levandowski]]&lt;br /&gt;
| [[Anthony Levandowski]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Weixinism]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Grand Master Hun Yuan (1944–2026)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Werner Erhard and Associates]]&lt;br /&gt;
| 1981&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[White Brotherhood (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jimmy Wales]]&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| Wikimedia Foundation, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Life (Sweden)]]&lt;br /&gt;
| 1983&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[David Ekerbring]]&lt;br /&gt;
| Word of Life&lt;br /&gt;
|-&lt;br /&gt;
| [[World Divine Light]]&lt;br /&gt;
| 1963&lt;br /&gt;
| Active&lt;br /&gt;
| [[:ja:関口榮]]&lt;br /&gt;
| [[Katsutoshi Sekiguchi]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[World Elijah Evangelical Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[World Mission Society Church of God]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Ahn Sahng-hong]]&lt;br /&gt;
| [[Kim Joo-Cheol]]&lt;br /&gt;
| World Mission Society Church of God, 하나님의교회 세계복음선교협회&lt;br /&gt;
|-&lt;br /&gt;
| [[Worldwide Church of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Wotansvolk]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[David Lane (white supremacist)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Yehowists]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Zendik Farm]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Zhong Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Zion Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Zizians]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=FAQ&amp;diff=1607</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=FAQ&amp;diff=1607"/>
		<updated>2026-04-04T20:56:50Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: add About Us pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is Cultopedia? ==&lt;br /&gt;
Cultopedia is a public reference platform that organises published information about organisations and their histories.&lt;br /&gt;
&lt;br /&gt;
== Is Cultopedia only about cults? ==&lt;br /&gt;
No. Cultopedia focuses on organisations that have drawn significant public concern, scrutiny, or debate, but it is not limited to one label.&lt;br /&gt;
&lt;br /&gt;
== Does Cultopedia make accusations? ==&lt;br /&gt;
No. Cultopedia does not create original allegations. It brings together published sources so readers can examine them in context.&lt;br /&gt;
&lt;br /&gt;
== Is the content all written by Cultopedia? ==&lt;br /&gt;
No. The project starts with Wikipedia-derived material as a baseline, and then adds its own structured layer, including tables, timelines, and source collections.&lt;br /&gt;
&lt;br /&gt;
== Can I contribute? ==&lt;br /&gt;
Yes, in a limited early-stage way. The most useful contributions right now are factual corrections and suggestions of reliable published sources.&lt;br /&gt;
&lt;br /&gt;
* [[Main Page|Back to Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=I_want_to_contribute&amp;diff=1606</id>
		<title>I want to contribute</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=I_want_to_contribute&amp;diff=1606"/>
		<updated>2026-04-04T20:56:49Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: add About Us pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you would like to contribute to Cultopedia, thank you.&lt;br /&gt;
&lt;br /&gt;
Right now the project is still in its early build phase, which means the most helpful contributions are usually:&lt;br /&gt;
&lt;br /&gt;
* suggesting organisations or leaders that should be included&lt;br /&gt;
* pointing out factual errors, outdated details, or broken pages&lt;br /&gt;
* sharing reliable journalism, academic research, court material, or documentary sources&lt;br /&gt;
* helping review timelines, names, and organisational history&lt;br /&gt;
&lt;br /&gt;
In time, Cultopedia will offer a clearer public contribution workflow. For now, contributions are best understood as careful source suggestions and factual corrections rather than open editing.&lt;br /&gt;
&lt;br /&gt;
* [[Main Page|Back to Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=About_Cultopedia&amp;diff=1605</id>
		<title>About Cultopedia</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=About_Cultopedia&amp;diff=1605"/>
		<updated>2026-04-04T20:56:48Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: add About Us pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cultopedia&#039;&#039;&#039; is building a public reference platform for people who want to understand organisations over time.&lt;br /&gt;
&lt;br /&gt;
The project begins with Wikipedia-derived pages as a practical baseline, and then adds a Cultopedia layer of structured context, timelines, and source collections. The goal is not to replace careful reading, but to make it easier to find relevant material in one place.&lt;br /&gt;
&lt;br /&gt;
Cultopedia is especially interested in organisations that have attracted sustained public scrutiny, concern, or debate. Over time, the site will also bring together journalism, academic research, documentary material, and other evidence so readers can follow how organisations have been described across history.&lt;br /&gt;
&lt;br /&gt;
Cultopedia does not create original allegations and does not ask readers to accept one fixed label. It aims to organise published information clearly, responsibly, and in a way that supports informed judgment.&lt;br /&gt;
&lt;br /&gt;
* [[Main Page|Back to Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Main_Page&amp;diff=1604</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Main_Page&amp;diff=1604"/>
		<updated>2026-04-04T20:56:47Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: add About Us pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;cultopedia-home&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Cultopedia&#039;&#039;&#039; is building the world&#039;s most up-to-date and comprehensive resource on organizations.&lt;br /&gt;
&lt;br /&gt;
It is designed for people who want more than scattered articles, outdated summaries, or sensational fragments. Cultopedia brings together organizations, leaders, and the latest developments in one place, so readers can follow these systems with clarity and context.&lt;br /&gt;
&lt;br /&gt;
Cultopedia is a public reference platform that organises reliable, published information about organisations over time. It brings together encyclopedic sources, journalism, academic research, and documentary material into structured timelines so readers can explore how organisations have been described across history.&lt;br /&gt;
&lt;br /&gt;
Cultopedia does not classify organisations as cults and does not produce original allegations. It provides access to reputable sources so readers can make informed interpretations for themselves.&lt;br /&gt;
&lt;br /&gt;
== Explore ==&lt;br /&gt;
* [[Organizations|Organizations]]&lt;br /&gt;
* [[Leaders|Leaders]]&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
* [[About Cultopedia|About Cultopedia]]&lt;br /&gt;
* [[I want to contribute|I want to contribute]]&lt;br /&gt;
* [[FAQ|FAQ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Template:Clarification_needed&amp;diff=1602</id>
		<title>Template:Clarification needed</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Template:Clarification_needed&amp;diff=1602"/>
		<updated>2026-04-04T20:35:08Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: sync selected page content from English Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Clarify]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from alternative name}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Template:Nontheism_and_religion&amp;diff=1601</id>
		<title>Template:Nontheism and religion</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Template:Nontheism_and_religion&amp;diff=1601"/>
		<updated>2026-04-04T20:35:04Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: sync selected page content from English Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sidebar with collapsible lists&lt;br /&gt;
| name           = Nontheism and religion&lt;br /&gt;
| bodyclass      = plainlist&lt;br /&gt;
| pretitle       = Part of a series on&lt;br /&gt;
| titlestyle     = font-size:150%;font-weight:normal;padding-bottom:0.15em;&lt;br /&gt;
| title          = [[Nontheistic religion]]&lt;br /&gt;
| listtitlestyle = background:transparent;border-top:1px solid #aaa;text-align:center;&lt;br /&gt;
| liststyle      = padding:0.3em 0.3em 0.6em;&lt;br /&gt;
| expanded       = {{{expanded|{{{1|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| list1name = concepts&lt;br /&gt;
| list1title = Concepts&lt;br /&gt;
| list1 =&lt;br /&gt;
* [[Agnosticism]]&lt;br /&gt;
* [[Atheism and religion]]&lt;br /&gt;
* [[Ietsism]]&lt;br /&gt;
* [[Pantheism]]&lt;br /&gt;
* [[Religious humanism]]&lt;br /&gt;
* [[Secular spirituality]]&lt;br /&gt;
&lt;br /&gt;
| list2name = religious stances&lt;br /&gt;
| list2title = Religious stances&lt;br /&gt;
| list2 =&lt;br /&gt;
* [[Christian atheism]]&lt;br /&gt;
* [[Cultural Christians]]&lt;br /&gt;
* [[Cultural Muslims]]&lt;br /&gt;
* [[Hindu atheism]]&lt;br /&gt;
* [[Jewish atheism]]&lt;br /&gt;
* [[Satanism#Nontheistic_Satanism|Nontheistic Satanism]]&lt;br /&gt;
* [[Secular Buddhism]]&lt;br /&gt;
* [[Secular paganism]]&lt;br /&gt;
* [[Spiritual naturalism]]&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Religion and belief sidebar templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Template:Criticism_of_religion&amp;diff=1600</id>
		<title>Template:Criticism of religion</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Template:Criticism_of_religion&amp;diff=1600"/>
		<updated>2026-04-04T20:35:01Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: sync selected page content from English Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{navbox&lt;br /&gt;
| name = Criticism of religion&lt;br /&gt;
| title = [[Criticism of religion]]&lt;br /&gt;
| state = {{{state|autocollapse}}}&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
&lt;br /&gt;
| group1 = By religion&lt;br /&gt;
| list1 =&lt;br /&gt;
&amp;lt;section begin=By religion /&amp;gt;&lt;br /&gt;
* [[Criticism of the Bahá&#039;í Faith|Baháˈí Faith]]&lt;br /&gt;
* [[Criticism of Buddhism|Buddhism]]&lt;br /&gt;
* [[Criticism of Christianity|Christianity]]&lt;br /&gt;
** [[Criticism of the Catholic Church|Catholic]]&lt;br /&gt;
** [[Criticism of Jehovah&#039;s Witnesses|Jehovah&#039;s Witnesses]]&lt;br /&gt;
** [[Criticism of the Church of Jesus Christ of Latter-day Saints|Latter Day Saint movement]]&lt;br /&gt;
** [[Criticism of Protestantism|Protestantism]]&lt;br /&gt;
** [[Criticism of the Seventh-day Adventist Church|Seventh-day Adventist]]&lt;br /&gt;
** [[Unification movement#Controversy|Unification movement]]&lt;br /&gt;
** [[Criticism of Unification Church in Japan|Unification Church in Japan]]&lt;br /&gt;
** [[Westboro Baptist Church#Criticisms|Westboro Baptist Church]]&lt;br /&gt;
* [[Criticism of Hinduism|Hinduism]]&lt;br /&gt;
** [[Criticism of Swaminarayan sect|Swaminarayan sect]]&lt;br /&gt;
* [[Criticism of Islam|Islam]]&lt;br /&gt;
** [[Criticism of Islamism|Islamism]]&lt;br /&gt;
** [[Criticism of Twelver Shia Islam|Twelver Shia Islam]]&lt;br /&gt;
** [[Wahhabism#Criticism and controversy|Wahhabism]]&lt;br /&gt;
* [[Criticism of Jainism|Jainism]]&lt;br /&gt;
* [[Criticism of Judaism|Judaism]]&lt;br /&gt;
* [[Criticism of monotheism|Monotheism]]&lt;br /&gt;
* [[New religious movement#Opposition|New religious movement]]&lt;br /&gt;
* [[Criticism of modern paganism|Neopaganism]]&lt;br /&gt;
* [[Scientology controversies|Scientology]]&lt;br /&gt;
* [[Criticism of Sikhism|Sikhism]]&lt;br /&gt;
* [[Yazdânism#Criticism|Yazdânism]]&lt;br /&gt;
* [[Criticism of Zoroastrianism|Zoroastrianism]]&lt;br /&gt;
&amp;lt;section end=By religion /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group2 = Religious texts&lt;br /&gt;
| list2 =&lt;br /&gt;
&amp;lt;section begin=Religious texts /&amp;gt;&lt;br /&gt;
* [[Criticism of the Bible|Bible]]&lt;br /&gt;
* [[Criticism of the Quran|Quran]]&lt;br /&gt;
* [[Criticism of hadith|Hadith]]&lt;br /&gt;
* [[Criticism of Mormon sacred texts|Mormon sacred texts]]&lt;br /&gt;
** [[Criticism of the Book of Mormon|Book of Mormon]]&lt;br /&gt;
* [[Talmud#Criticism|Talmud]]&lt;br /&gt;
&amp;lt;section end=Religious texts /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group3 = Religious figures&lt;br /&gt;
| list3 =&lt;br /&gt;
&amp;lt;section begin=Religious figures /&amp;gt;&lt;br /&gt;
* [[Shia view of Aisha|Aisha]]&lt;br /&gt;
* [[Charles Taze Russell#Controversies|Charles Taze Russell]]&lt;br /&gt;
* [[Criticism of Ellen G. White|Ellen White]]&lt;br /&gt;
* [[Criticism of Jesus|Jesus]]&lt;br /&gt;
* [[Moses#Criticism of Moses|Moses]]&lt;br /&gt;
* [[Criticism of Muhammad|Muhammad]]&lt;br /&gt;
* [[Mirza Ghulam Ahmad#Legacy|Mirza Ghulam Ahmad]]&lt;br /&gt;
* [[Saul#Biblical criticism|Saul]]&lt;br /&gt;
&amp;lt;section end=Religious figures /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group4 = [[Religious discrimination]]&lt;br /&gt;
| list4 =&lt;br /&gt;
&amp;lt;section begin=Religious discrimination /&amp;gt;&lt;br /&gt;
* [[Persecution of Ahmadis|Ahmadiyya]]&lt;br /&gt;
* [[Discrimination against atheists|Atheism]]&lt;br /&gt;
* [[Persecution of Bahá&#039;ís|Bahá&#039;i Faith]]&lt;br /&gt;
* [[Persecution of Buddhists|Buddhism]]&lt;br /&gt;
* [[Anti-Catholicism|Catholicism]]&lt;br /&gt;
** [[Criticism of the Catholic Church|Catholic Church]]&lt;br /&gt;
* [[Persecution of Christians|Christianity]]&lt;br /&gt;
** [[Persecution of Christians in the post–Cold War era|post–Cold War era]]&lt;br /&gt;
* [[Persecution of Druze|Druze]]&lt;br /&gt;
* [[Persecution of Falun Gong|Falun Gong]]&lt;br /&gt;
* [[Anti-Hindu sentiment|Hinduism]]&lt;br /&gt;
** [[Persecution of Hindus|Persecution]]&lt;br /&gt;
* [[Islamophobia|Islam]]&lt;br /&gt;
** [[Persecution of Muslims|Persecution]]&lt;br /&gt;
* [[Persecution of Jehovah&#039;s Witnesses|Jehovah&#039;s Witness]]&lt;br /&gt;
* [[Religious antisemitism|Judaism]]&lt;br /&gt;
** [[Antisemitism]]&lt;br /&gt;
** [[Anti-Judaism]]&lt;br /&gt;
** [[Persecution of Jews|Persecution]]&lt;br /&gt;
* [[Anti-Mormonism|Mormonism]]&lt;br /&gt;
* [[Religious discrimination against Neopagans|Neopaganism]]&lt;br /&gt;
* [[Persecution of Eastern Orthodox Christians|Eastern Orthodoxy]]&lt;br /&gt;
* [[Persecution of Oriental Orthodoxy|Oriental Orthodoxy]]&lt;br /&gt;
** [[Persecution of Copts|Copts]]&lt;br /&gt;
* [[Anti-Protestantism|Protestantism]]&lt;br /&gt;
* [[Persecution of Rastafari|Rastafari]]&lt;br /&gt;
* [[Persecution of Sikhs|Sikhism]]&lt;br /&gt;
* [[Anti-Sunnism|Sunni Islam]]&lt;br /&gt;
* [[Anti-Shi&#039;ism|Shia Islam]]&lt;br /&gt;
* [[Persecution of Sufis|Sufism]]&lt;br /&gt;
* [[Persecution of Zoroastrians|Zorostianism]]&lt;br /&gt;
&amp;lt;section end=Religious discrimination /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group5 = [[Religious violence]]&lt;br /&gt;
| list5 =&lt;br /&gt;
&amp;lt;section begin=Religious violence /&amp;gt;&lt;br /&gt;
* [[Buddhism and violence|Buddhism]]&lt;br /&gt;
* [[Christianity and violence|Christianity]]&lt;br /&gt;
** [[Mormonism and violence|Mormonism]]&lt;br /&gt;
* [[Judaism and violence|Judaism]]&lt;br /&gt;
* [[Islam and violence|Islam]]&lt;br /&gt;
* [[Religious terrorism|Terrorism]]&lt;br /&gt;
** [[Christian terrorism|Christian]]&lt;br /&gt;
** [[Hindu terrorism|Hindu]]&lt;br /&gt;
** [[Islamic terrorism|Islamic]]&lt;br /&gt;
** [[Jewish extremist terrorism|Jewish]]&lt;br /&gt;
* [[Religious persecution|Persecution]]&lt;br /&gt;
** [[History of Christian thought on persecution and tolerance|Christian thought on persecution and tolerance]]&lt;br /&gt;
* [[Religious war|War]]&lt;br /&gt;
** [[Islam and war|In Islam]]&lt;br /&gt;
** [[Judaism and warfare|In Judaism]]&lt;br /&gt;
* [[Sectarian violence]]&lt;br /&gt;
* By country&lt;br /&gt;
** [[Religious violence in India|India]]&lt;br /&gt;
*** [[Violence against Christians in India|Anti-Christian violence]]&lt;br /&gt;
*** [[Religious violence in Odisha|In Odisha]]&lt;br /&gt;
** [[Religious violence in Nigeria|Nigeria]]&lt;br /&gt;
** [[Religious discrimination in Pakistan|Pakistan]]&lt;br /&gt;
&amp;lt;section end=Religious violence /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group6 = [[:Category:Books critical of religion|Books]]&lt;br /&gt;
| list6 =&lt;br /&gt;
&amp;lt;section begin=Books /&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Atheist Manifesto: The Case Against Christianity, Judaism, and Islam|Atheist Manifesto]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Breaking the Spell: Religion as a Natural Phenomenon|Breaking the Spell]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Christianity Unveiled]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[God in the Age of Science?]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[God Is Not Great]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[God: The Failed Hypothesis]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Letter to a Christian Nation]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The Age of Reason]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The Blind Watchmaker]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The Caged Virgin]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The End of Faith]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The God Delusion]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The Gospel of the Flying Spaghetti Monster]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Why I Am Not a Christian]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Why I Am Not a Muslim]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The Demon-Haunted World]]&#039;&#039;&lt;br /&gt;
&amp;lt;section end=Books /&amp;gt;&lt;br /&gt;
* [[Bibliography of books critical of Christianity|Books critical of Christianity]]&lt;br /&gt;
* [[Bibliography of books critical of Islam|Books critical of Islam]]&lt;br /&gt;
* [[Bibliography of books critical of Judaism|Books critical of Judaism]]&lt;br /&gt;
* [[Bibliography of books critical of Mormonism|Books critical of Mormonism]]&lt;br /&gt;
* [[Bibliography of books critical of Scientology|Books critical of Scientology]]&lt;br /&gt;
&lt;br /&gt;
| group7 = Movements&lt;br /&gt;
| list7 =&lt;br /&gt;
&amp;lt;section begin=Movements /&amp;gt;&lt;br /&gt;
* [[Agnosticism]]&lt;br /&gt;
* [[Antitheism]]&lt;br /&gt;
* [[Atheism]] ([[Criticism of atheism|Criticism]])&lt;br /&gt;
* [[Charvaka|Cārvāka]]&lt;br /&gt;
* [[New Atheism]]&lt;br /&gt;
* [[Nontheistic religion]]s&lt;br /&gt;
* [[Parody religion]]&lt;br /&gt;
&amp;lt;section end=Movements /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group8 = Related topics&lt;br /&gt;
| list8 = {{excerpt|Template:Criticism of religion sidebar|Related topics|hat=no}}&lt;br /&gt;
&lt;br /&gt;
| below = &lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Template:Theology&amp;diff=1599</id>
		<title>Template:Theology</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Template:Theology&amp;diff=1599"/>
		<updated>2026-04-04T20:34:56Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: sync selected page content from English Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox with collapsible groups&lt;br /&gt;
| name = Theology&lt;br /&gt;
| title = [[Theology]] &lt;br /&gt;
| state = {{{state|&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;collapsed&amp;lt;/includeonly&amp;gt;}}}&lt;br /&gt;
| listclass = hlist&lt;br /&gt;
| selected = {{{selected|{{{expanded|{{{1|}}}}}}}}}&lt;br /&gt;
| abovestyle = background:transparent;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| abbr1 = god&lt;br /&gt;
| sect1 = [[Conceptions of God]]&lt;br /&gt;
| state1 = &amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| list1 =&lt;br /&gt;
 {{Navbox |child&lt;br /&gt;
&lt;br /&gt;
  | group1 = [[Theism]]&lt;br /&gt;
  | list1 = {{Navbox|subgroup&lt;br /&gt;
   | group1 = Forms&lt;br /&gt;
   | list1 =&lt;br /&gt;
* &amp;lt;!--Too general?: [[List of philosophical theories]]--&amp;gt;&lt;br /&gt;
* [[Deism]]&lt;br /&gt;
* [[Dystheism]]&lt;br /&gt;
* [[Henotheism]]&lt;br /&gt;
* [[Hermeticism]]&lt;br /&gt;
* [[Kathenotheism]]&lt;br /&gt;
* [[Nontheism]]&lt;br /&gt;
* [[Monolatry]]&lt;br /&gt;
* [[Monotheism]]&lt;br /&gt;
** [[Urmonotheismus]]&lt;br /&gt;
* [[Mysticism]]&lt;br /&gt;
* [[Panentheism]]&lt;br /&gt;
* [[Pandeism]]&lt;br /&gt;
* [[Pantheism]]&lt;br /&gt;
* [[Polytheism|Polydeism]]&lt;br /&gt;
* [[Polytheism]]&lt;br /&gt;
* [[Spiritualism (movement)|Spiritualism]]&lt;br /&gt;
* [[Theistic finitism]]&lt;br /&gt;
* [[Theopanism]]&lt;br /&gt;
&lt;br /&gt;
   | group2 = Concepts&lt;br /&gt;
   | list2 =&lt;br /&gt;
* &amp;lt;!--Too general?: [[List of philosophical theories]]--&amp;gt;&lt;br /&gt;
* [[Deity]]&lt;br /&gt;
*[[Divinity]]&lt;br /&gt;
* [[Gender of God]] &#039;&#039;and gods&#039;&#039;&lt;br /&gt;
** [[Goddess]]&lt;br /&gt;
* [[Numen]]&lt;br /&gt;
}}&lt;br /&gt;
  | group2 = [[God|Singular god]]&amp;lt;br /&amp;gt;theologies&lt;br /&gt;
  | list2 = {{Navbox|subgroup&lt;br /&gt;
   | group1 = By faith&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[God in Abrahamic religions|Abrahamic religions]]&lt;br /&gt;
** [[God in the Baháʼí Faith|Baháʼí Faith]]&lt;br /&gt;
** [[God in Judaism|Judaism]]&lt;br /&gt;
** [[God in Christianity|Christianity]]&lt;br /&gt;
** [[God in Islam|Islam]]&lt;br /&gt;
** [[Rastafari#Jah and Jesus Christ|Rastafari]]&lt;br /&gt;
* [[Creator in Buddhism|Buddhism]]&lt;br /&gt;
* [[God in Hinduism|Hinduism]]&lt;br /&gt;
* [[God in Jainism|Jainism]]&lt;br /&gt;
* [[God in Sikhism|Sikhism]]&lt;br /&gt;
* [[God in Tenrikyo|Tenrikyo]]&lt;br /&gt;
* [[Ahura Mazda|Zoroastrianism]]&lt;br /&gt;
&lt;br /&gt;
  | group2 = Concepts&lt;br /&gt;
  | list2  =&lt;br /&gt;
* [[Absolute (philosophy)|Absolute]]&lt;br /&gt;
* [[Brahman]]&lt;br /&gt;
* [[Emanationism]]&lt;br /&gt;
* [[Logos]]&lt;br /&gt;
* [[God|Supreme Being]]&lt;br /&gt;
&lt;br /&gt;
   | group3 = God as&lt;br /&gt;
   | list3  = &lt;br /&gt;
* [[Zurvanism|Time]]&lt;br /&gt;
* [[Good]] ([[Ahura Mazda]], [[Father of Greatness]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
  | group3 = [[Trinity|Trinitarianism]]&lt;br /&gt;
  | list3  =&lt;br /&gt;
* [[Athanasian Creed]]&lt;br /&gt;
* [[Johannine Comma|Comma Johanneum]]&lt;br /&gt;
* [[Consubstantiality]]&lt;br /&gt;
* [[Homoousion|Homoousian]]&lt;br /&gt;
* [[Homoiousian]]&lt;br /&gt;
* [[Hypostasis (philosophy and religion)|Hypostasis]]&lt;br /&gt;
* [[Perichoresis]]&lt;br /&gt;
* [[Shield of the Trinity]]&lt;br /&gt;
* [[Trinitarian formula]]&lt;br /&gt;
* [[Trinity]]&lt;br /&gt;
* [[Trinitarianism in the Church Fathers|Trinity of the Church Fathers]]&lt;br /&gt;
* [[Trinitarian universalism]]&lt;br /&gt;
&lt;br /&gt;
  | group4 = [[Eschatology]]&lt;br /&gt;
  | list4 =&lt;br /&gt;
* [[Afterlife]]&lt;br /&gt;
* [[Apocalypticism]]&lt;br /&gt;
* [[Fate of the unlearned]]&lt;br /&gt;
** [[Fitra]]&lt;br /&gt;
* [[Heaven]] / [[Hell]]&lt;br /&gt;
&lt;br /&gt;
{{navbox|subgroup|groupstyl&lt;br /&gt;
 |group1 = By religion&lt;br /&gt;
 |list1 = &lt;br /&gt;
* [[Buddhist eschatology|Buddhist]]&lt;br /&gt;
* [[Christian eschatology|Christian]]&lt;br /&gt;
* [[Hindu eschatology|Hindu]]&lt;br /&gt;
* [[Islamic eschatology|Islamic]]&lt;br /&gt;
* [[Jewish eschatology|Jewish]]&lt;br /&gt;
* [[Divine Incantations Scripture|Taoist]]&lt;br /&gt;
* [[Frashokereti|Zoroastrian]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
  | group5 = [[Feminist theology|Feminist]]&lt;br /&gt;
  | list5 =&lt;br /&gt;
* [[Women in Buddhism|Buddhism]]&lt;br /&gt;
* [[Christian feminism|Christianity]]&lt;br /&gt;
* [[Women in Hinduism|Hinduism]]&lt;br /&gt;
* [[Islamic feminism|Islam]]&lt;br /&gt;
* [[Jewish feminism|Judaism]]&lt;br /&gt;
* [[Mormonism and women|Mormonism]]&lt;br /&gt;
* [[Goddess]]es&lt;br /&gt;
&lt;br /&gt;
  | group6 = Other concepts&lt;br /&gt;
  | list6  =&lt;br /&gt;
* [[Attributes of God in Christianity]]{{\}}[[God in Islam|in Islam]]&lt;br /&gt;
* [[Binitarianism]]&lt;br /&gt;
* [[Demiurge]]&lt;br /&gt;
* [[Divine simplicity]]&lt;br /&gt;
* [[Divine presence]]&lt;br /&gt;
* [[Egotheism]]&lt;br /&gt;
* [[Exotheology]]&lt;br /&gt;
* [[Theological hermeneutics|Hermeneutics]]&lt;br /&gt;
* [[Holocaust theology|Holocaust]]&lt;br /&gt;
* [[Godhead in Christianity]]&lt;br /&gt;
** {{smaller|[[God in Mormonism|Latter Day Saints]]}}&lt;br /&gt;
* [[Great Architect of the Universe]]&lt;br /&gt;
* [[Great Spirit]]&lt;br /&gt;
* [[Apophatic theology]]&lt;br /&gt;
* [[Olelbis]]&lt;br /&gt;
* [[Open theism]]&lt;br /&gt;
* [[Personal god]]&lt;br /&gt;
* [[Phenomenological definition of God|Phenomenological definition]]&lt;br /&gt;
* [[Philo&#039;s view of God|Philo&#039;s view]]&lt;br /&gt;
* [[Process theology|Process]]&lt;br /&gt;
* [[Tian]]&lt;br /&gt;
* [[Unmoved mover]]&lt;br /&gt;
&lt;br /&gt;
   | group7 = [[Names of God]] in&lt;br /&gt;
   | list7 =&lt;br /&gt;
* [[Names of God in Christianity|Christianity]]&lt;br /&gt;
* [[List of titles and names of Krishna|Hinduism]]&lt;br /&gt;
* [[Names of God in Islam|Islam]]&lt;br /&gt;
* [[Tirthankara|Jainism]]&lt;br /&gt;
* [[Names of God in Judaism|Judaism]]&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| abbr5 = faith&lt;br /&gt;
| sect5 = By faith&lt;br /&gt;
| state5 = &amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| list5 =&lt;br /&gt;
 {{Navbox |child&lt;br /&gt;
&lt;br /&gt;
  | group1 = [[Christian theology|Christian]]&lt;br /&gt;
  | list1 =&lt;br /&gt;
* [[History of Christian theology|History]]&lt;br /&gt;
* [[Outline of Christian theology|Outline]]&lt;br /&gt;
* [[Biblical canon]]&lt;br /&gt;
* [[Glossary of Christianity|Glossary]]&lt;br /&gt;
* [[Paterology]]&lt;br /&gt;
* [[Christology]]&lt;br /&gt;
* [[Pneumatology]]&lt;br /&gt;
* [[Biblical cosmology|Cosmology]]&lt;br /&gt;
* [[Ecclesiology]]&lt;br /&gt;
* [[Christian_eschatology|Eschatology]]&lt;br /&gt;
* [[Christian ethics|Ethics]]&lt;br /&gt;
* [[Sin|Hamartiology]]&lt;br /&gt;
* [[Messianism]]&lt;br /&gt;
* [[Christian philosophy|Philosophy]]&lt;br /&gt;
* [[Political theology|Political]]&lt;br /&gt;
* [[Practical theology|Practical]]&lt;br /&gt;
* [[Public theology|Public]]&lt;br /&gt;
* [[Sophiology]]&lt;br /&gt;
* [[Salvation in Christianity|Soteriology]]&lt;br /&gt;
&lt;br /&gt;
  | group3 = [[Āstika and nāstika|Hindu]]&lt;br /&gt;
  | list3 =&lt;br /&gt;
* [[Ayyavazhi theology]]&lt;br /&gt;
* [[Vaishnavism|Krishnology]]&lt;br /&gt;
&lt;br /&gt;
  | group4 = [[Schools of Islamic theology|Islamic]]&lt;br /&gt;
  | list4 =&lt;br /&gt;
* [[Tawhid|Oneness]] of [[God in Islam|God]]&lt;br /&gt;
* [[Prophets and messengers in Islam|Prophets]]&lt;br /&gt;
* [[Islamic holy books|Holy Scriptures]]&lt;br /&gt;
* [[Angels in Islam|Angels]]&lt;br /&gt;
* [[Predestination in Islam|Predestination]]&lt;br /&gt;
* [[Islamic eschatology|Last Judgment]]&lt;br /&gt;
&lt;br /&gt;
  | group5 = [[:Category:Jewish theology|Jewish]]&lt;br /&gt;
  | list5 =&lt;br /&gt;
* [[Nevi&#039;im|Abrahamic prophecy]]&lt;br /&gt;
* [[Aggadah]]&lt;br /&gt;
* [[Jewish religious movements|Denominations]]&lt;br /&gt;
* [[Kabbalah]]&lt;br /&gt;
* [[Jewish philosophy|Philosophy]]&lt;br /&gt;
&lt;br /&gt;
  | group6 = [[:Category:Modern pagan theology|Pagan]]&lt;br /&gt;
  | list6 =&lt;br /&gt;
* [[Slavic Native Faith&#039;s theology and cosmology|Slavic Native Faith]]&lt;br /&gt;
* [[Wiccan views of divinity|Wiccan]]&lt;br /&gt;
&lt;br /&gt;
  | group7 = East Asian&lt;br /&gt;
  | list7 =&lt;br /&gt;
* [[Tenrikyo theology|Tenrikyo]]&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
|below = {{icon|portal}} [[Portal:Religion|Religion portal]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Template:Irreligion&amp;diff=1598</id>
		<title>Template:Irreligion</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Template:Irreligion&amp;diff=1598"/>
		<updated>2026-04-04T20:34:53Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: sync selected page content from English Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|name = Irreligion&lt;br /&gt;
|title = [[Irreligion]]&lt;br /&gt;
|listclass = hlist&lt;br /&gt;
|state = {{{state|autocollapse}}}&lt;br /&gt;
| expanded = {{{expanded|{{{selected|{{{1|}}}}}}}}}&lt;br /&gt;
&lt;br /&gt;
|basestyle = background: #BFEAF9;&lt;br /&gt;
|group1 = [[Irreligion]]&lt;br /&gt;
|list1 = &lt;br /&gt;
&amp;lt;section begin=Irreligion /&amp;gt;&lt;br /&gt;
* [[Antireligion]]&lt;br /&gt;
* [[Anti-clericalism]]&lt;br /&gt;
* [[Criticism of religion]]&lt;br /&gt;
* [[Freethought]]&lt;br /&gt;
* [[Organized secularism]]&lt;br /&gt;
* [[Secular humanism]]&lt;br /&gt;
* [[Secular liberalism]]&lt;br /&gt;
* [[Secular state]]&lt;br /&gt;
* [[Secularism]]&lt;br /&gt;
* [[Secularity]]&lt;br /&gt;
* [[Secularization]]&lt;br /&gt;
* [[Separation of church and state]]&amp;lt;section end=Irreligion /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|group2 = [[Atheism]]&lt;br /&gt;
|list2 =&lt;br /&gt;
&amp;lt;section begin=Atheism /&amp;gt;&lt;br /&gt;
* [[Demographics of atheism|Demographics]]&lt;br /&gt;
* [[Atheism and religion|Religion]]&lt;br /&gt;
* [[History of atheism|History]]&lt;br /&gt;
* [[State atheism|State]]&lt;br /&gt;
* [[New Atheism|New]]&lt;br /&gt;
* [[Criticism of atheism|Criticism]]&lt;br /&gt;
* [[Discrimination against atheists|Discrimination/Persecution]]&lt;br /&gt;
* [[Implicit and explicit atheism|Implicit and explicit]]&lt;br /&gt;
* [[Negative and positive atheism|Negative and positive]]&lt;br /&gt;
* [[Existence of God]]&lt;br /&gt;
* [[Antitheism]]&lt;br /&gt;
&amp;lt;section end=Atheism /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|group3 = [[Agnosticism]]&lt;br /&gt;
|list3 =&lt;br /&gt;
&amp;lt;section begin=Agnosticism /&amp;gt;&lt;br /&gt;
* [[Strong agnosticism|Strong]]&lt;br /&gt;
* [[Weak agnosticism|Weak]]&lt;br /&gt;
* [[Agnostic atheism]]&lt;br /&gt;
* [[Apatheism]]&lt;br /&gt;
&amp;lt;section end=Agnosticism /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|group4 = People&lt;br /&gt;
|list4 =&lt;br /&gt;
&amp;lt;section begin=People /&amp;gt;&lt;br /&gt;
* [[Lists of atheists|Atheists]]&lt;br /&gt;
* [[List of agnostics|Agnostics]]&lt;br /&gt;
* [[List of secular humanists|Humanists]]&lt;br /&gt;
&amp;lt;section end=People /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|group5 = [[:Category:Books about atheism|Books]]&lt;br /&gt;
|list5 =&lt;br /&gt;
&amp;lt;section begin=Books /&amp;gt;&lt;br /&gt;
* &#039;&#039;[[The Age of Reason]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Breaking the Spell: Religion as a Natural Phenomenon|Breaking the Spell]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The Demon-Haunted World]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The End of Faith]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The God Delusion]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[God Is Not Great]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Letter to a Christian Nation]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[The System of Nature]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Why I Am Not a Christian]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Why I Am Not a Muslim]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Why I Am an Atheist]]&#039;&#039;&amp;lt;section end=Books /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|group6= [[List of secularist organizations|Organizations]]&lt;br /&gt;
|list6 =&lt;br /&gt;
&amp;lt;section begin=Organizations /&amp;gt;&lt;br /&gt;
* [[American Atheists]]&lt;br /&gt;
* [[American Humanist Association]]&lt;br /&gt;
* [[Atheist Alliance International]]&lt;br /&gt;
* [[Center for Inquiry]]&lt;br /&gt;
* [[Freedom from Religion Foundation]]&lt;br /&gt;
* [[Humanists International]]&lt;br /&gt;
* [[Humanists UK]]&lt;br /&gt;
* [[Internet Infidels]]&lt;br /&gt;
* [[Rational Response Squad]]&lt;br /&gt;
* [[Recovering from Religion]]&lt;br /&gt;
* [[Brazilian Association of Atheists and Agnostics]]&amp;lt;section end=Organizations /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|group7 = Related topics&lt;br /&gt;
|list7=&lt;br /&gt;
&amp;lt;section begin=Related topics /&amp;gt;&lt;br /&gt;
* [[List of countries by irreligion|Countries by irreligion]]&lt;br /&gt;
* [[Disestablishmentarianism]]&lt;br /&gt;
* [[Secular ethics]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Template:Religion_topics&amp;diff=1597</id>
		<title>Template:Religion topics</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Template:Religion_topics&amp;diff=1597"/>
		<updated>2026-04-04T20:34:46Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: sync selected page content from English Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox with collapsible groups&lt;br /&gt;
| name = Religion topics&lt;br /&gt;
| state = {{{state|&amp;lt;includeonly&amp;gt;autocollapse&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| bodyclass = hlist&lt;br /&gt;
| title = [[Religion]]&lt;br /&gt;
| selected = {{{1|}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| sect1 = [[List of religions and spiritual traditions|Religious groups and denominations]]&lt;br /&gt;
| abbr1 = major&lt;br /&gt;
| state1 = &amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| list1 =&lt;br /&gt;
&amp;lt;!-- level 1 --&amp;gt;{{#invoke:navbox|navbox |child |groupstyle=font-weight:normal;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- WESTERN RELIGIONS --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group1 = [[Western religions|Western]]&amp;lt;/br&amp;gt; and&amp;lt;/br&amp;gt; [[Middle Eastern religions|Middle&amp;lt;/br&amp;gt; Eastern]]&lt;br /&gt;
| list1 =&lt;br /&gt;
&amp;lt;!-- level 2 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
&lt;br /&gt;
| group1 = [[Abrahamic religions|Abrahamic]]&lt;br /&gt;
| list1  =&lt;br /&gt;
&amp;lt;!-- level 3 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
&lt;br /&gt;
| group1 = [[Judaism]]&lt;br /&gt;
| list1 =&lt;br /&gt;
* [[Orthodox Judaism|Orthodox]]&lt;br /&gt;
** [[Haredi Judaism|Haredi]]&lt;br /&gt;
*** [[Hasidic Judaism|Hasidic]]&lt;br /&gt;
** [[Modern Orthodox Judaism|Modern]]&lt;br /&gt;
*** [[Religious Zionism|Zionist]]&lt;br /&gt;
* [[Conservative Judaism|Conservative]]&lt;br /&gt;
* [[Reform Judaism|Reform]]&lt;br /&gt;
* [[Karaite Judaism|Karaite]]&lt;br /&gt;
* [[Haymanot]]&lt;br /&gt;
* [[Reconstructionist Judaism|Reconstructionist]]&lt;br /&gt;
* [[Jewish Renewal|Renewal]]&lt;br /&gt;
* [[Humanistic Judaism|Humanistic]]&lt;br /&gt;
* &#039;&#039;[[Jewish religious movements|list]]&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
| group2 = [[Christianity]]&lt;br /&gt;
| list2 =&lt;br /&gt;
* [[Catholic Church|Catholicism]]&lt;br /&gt;
** [[Latin Church|Latin]]&lt;br /&gt;
** [[Eastern Catholic Churches|Eastern]]&lt;br /&gt;
* [[Eastern Orthodoxy]]&lt;br /&gt;
* [[Oriental Orthodox Churches|Oriental Orthodoxy]]&lt;br /&gt;
* [[Nestorianism]]&lt;br /&gt;
** [[Ancient Church of the East|Ancient]]&lt;br /&gt;
** [[Assyrian Church of the East|Assyrian]]&lt;br /&gt;
* [[Proto-Protestantism]]&lt;br /&gt;
** [[Hussites]]/[[Moravian Church|Moravians]]&lt;br /&gt;
** [[Waldensians]]&lt;br /&gt;
* [[Protestantism]]&lt;br /&gt;
** [[Adventism]]&lt;br /&gt;
** [[Anabaptism]]&lt;br /&gt;
*** [[Amish]]&lt;br /&gt;
*** [[Schwarzenau Brethren|Brethren]]&lt;br /&gt;
*** [[Hutterites]]&lt;br /&gt;
*** [[Mennonites]]&lt;br /&gt;
*** [[Schwenkfelder Church]]&lt;br /&gt;
** [[Anglicanism]]&lt;br /&gt;
** [[Baptists]]&lt;br /&gt;
** [[Reformed Christianity|Calvinism]]&lt;br /&gt;
*** [[Congregationalism]]&lt;br /&gt;
*** [[Presbyterianism]]&lt;br /&gt;
*** [[Continental Reformed Protestantism|Reformed]]&lt;br /&gt;
** [[Charismatic Christianity]]&lt;br /&gt;
*** [[Pentecostalism|Pentecostal]]&lt;br /&gt;
*** [[Charismatic movement|Charismatic]]&lt;br /&gt;
*** [[Neo-charismatic movement|Neo-charismatic]]&lt;br /&gt;
** [[Evangelicalism]]&lt;br /&gt;
** [[Catholic Apostolic Church|Irvingism]]&lt;br /&gt;
** [[Lutheranism|Lutheran]]&lt;br /&gt;
** [[Methodism|Methodist]]&lt;br /&gt;
*** [[Holiness movement|Holiness]]&lt;br /&gt;
** [[Non-denominational Christianity|Non-denominational]]&lt;br /&gt;
** [[Plymouth Brethren]]&lt;br /&gt;
** [[Quakers|Quakerism]]&lt;br /&gt;
* [[Restoration Movement|Restorationism]]&lt;br /&gt;
* [[Esoteric Christianity|Esoteric]]&lt;br /&gt;
** [[The Christian Community]]&lt;br /&gt;
* [[Independent Catholicism]]&lt;br /&gt;
* [[Old Catholic Church|Old Catholic]]&lt;br /&gt;
* [[Judaizers]]&lt;br /&gt;
* [[Nontrinitarianism]]&lt;br /&gt;
** [[Bible Student movement|Bible Students]]&lt;br /&gt;
*** [[Bible Student movement#Associated Bible Students|Associated Bible Students]]&lt;br /&gt;
*** [[Free Bible Students]]&lt;br /&gt;
*** [[Friends of Man]]&lt;br /&gt;
*** [[Jehovah&#039;s Witnesses]]&lt;br /&gt;
*** [[Religion in the Democratic Republic of the Congo#Kitawala|Kitawala]]&lt;br /&gt;
*** [[Laymen&#039;s Home Missionary Movement]]&lt;br /&gt;
** [[Christadelphians]]&lt;br /&gt;
** [[Mormonism]]&lt;br /&gt;
** [[Oneness Pentecostalism]]&lt;br /&gt;
** [[Spiritual Christianity|Spiritual]]&lt;br /&gt;
** [[The New Church (Swedenborgian)|Swedenborgianism]]&lt;br /&gt;
** [[Tolstoyan movement|Tolstoyan]]&lt;br /&gt;
** [[Unitarianism]]&lt;br /&gt;
* &#039;&#039;[[List of Christian denominations|list]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| group3 = [[Islam]]&lt;br /&gt;
| list3 =&lt;br /&gt;
* [[Sunni Islam|Sunnism]]&lt;br /&gt;
** [[Ash&#039;arism]]&lt;br /&gt;
** [[Maturidism]]&lt;br /&gt;
** [[Atharism]]&lt;br /&gt;
** [[Salafi movement|Salafism]]&lt;br /&gt;
*** [[Wahhabism]]&lt;br /&gt;
*** [[Islamic modernism|Modernist Salafism]]&lt;br /&gt;
* [[Shia Islam|Shi&#039;ism]]&lt;br /&gt;
** [[Alawites|Alawism]]&lt;br /&gt;
** [[Ali-Illahism]]&lt;br /&gt;
** [[Ismailism]]&lt;br /&gt;
** [[Twelver Shi&#039;ism]]&lt;br /&gt;
** [[Zaydism]]&lt;br /&gt;
* [[Sufism]]&lt;br /&gt;
* [[Kharijites|Khawarij]]&lt;br /&gt;
** [[Ibadism]]&lt;br /&gt;
* [[Alevism]]&lt;br /&gt;
** [[Ishikism]]&lt;br /&gt;
** [[Kurdish Alevism]]&lt;br /&gt;
* [[Ahmadiyya|Ahmadi]]&lt;br /&gt;
* [[Mahdavi movement|Mahdavism]]&lt;br /&gt;
* [[Quranism]]&lt;br /&gt;
* [[Milah Abraham]]&lt;br /&gt;
* [[Non-denominational Muslim|Non-denominational]]&lt;br /&gt;
* &#039;&#039;[[Islamic schools and branches|list]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| group4 = Other&lt;br /&gt;
| list4  =&lt;br /&gt;
* [[Bábism]]&lt;br /&gt;
** [[Subh-i-Azal|Azalism]]&lt;br /&gt;
** [[Baháʼí Faith]]&lt;br /&gt;
* [[Druze]]&lt;br /&gt;
* [[Mandaeism]]&lt;br /&gt;
* [[Rastafari]]&lt;br /&gt;
* [[Samaritanism]]&lt;br /&gt;
}}&amp;lt;!-- End level 3 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group2 = [[Iranian religions|Iranian]]&lt;br /&gt;
| list2 = &lt;br /&gt;
&amp;lt;!-- level 3 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
&lt;br /&gt;
| group1 = [[Zoroastrianism|Zoroastrian]]&lt;br /&gt;
|list1 =&lt;br /&gt;
* [[Zoroastrianism in Russia|Blagovery]]&lt;br /&gt;
* [[Ilm-e-Khshnoom]]&lt;br /&gt;
* [[Mazdaznan]]&lt;br /&gt;
* [[Zurvanism]]&lt;br /&gt;
&lt;br /&gt;
| group2 = Kurdish&lt;br /&gt;
|list2 =&lt;br /&gt;
* [[Shabakism]]&lt;br /&gt;
* [[Yarsanism]]&lt;br /&gt;
&lt;br /&gt;
| group3 = Other&lt;br /&gt;
|list3 =&lt;br /&gt;
* [[Assianism|Assianism/Uatsdin]]&lt;br /&gt;
* [[Roshani movement|Roshani]]&lt;br /&gt;
* [[Manichaeism]]&lt;br /&gt;
** [[Chinese Manichaeism]]&lt;br /&gt;
* [[Yazdânism]]&lt;br /&gt;
* [[Yazidism]]&lt;br /&gt;
}}&amp;lt;!-- End level 3 --&amp;gt;&lt;br /&gt;
}}&amp;lt;!-- End level 2 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- EASTERN RELIGIONS --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group2 = [[Eastern religions|Eastern]]&lt;br /&gt;
| list2 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- level 2 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
| group1 = [[East Asian religions|East Asian]]&lt;br /&gt;
| list1 =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- level 3 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
  | group1 = [[Religion in China|Chinese]]&lt;br /&gt;
  | list1 =&lt;br /&gt;
* [[Chinese folk religion]]&lt;br /&gt;
* [[Confucianism]]&lt;br /&gt;
* [[Luo teaching|Luoism]]&lt;br /&gt;
* [[Nuo folk religion|Nuo]]&lt;br /&gt;
* [[Chinese salvationist religions|Salvationist]]&lt;br /&gt;
** [[Xiantiandao]]&lt;br /&gt;
** [[Yiguandao]]&lt;br /&gt;
** [[Falun Gong]]&lt;br /&gt;
* [[Taoism]]&lt;br /&gt;
** [[Chinese ritual mastery traditions|Folk Taoism]]&lt;br /&gt;
** [[Yao folk religion|Yao Taoism]]&lt;br /&gt;
&lt;br /&gt;
| group2 = [[Religion in Japan|Japonic]]&lt;br /&gt;
| list2  =&lt;br /&gt;
* [[Shinto]]&lt;br /&gt;
** &#039;&#039;[[Shinto sects and schools|list]]&#039;&#039;&lt;br /&gt;
* [[Shugendō]]&lt;br /&gt;
* [[Japanese new religions|New religions]]&lt;br /&gt;
** [[Tenrikyo]]&lt;br /&gt;
* [[Ryukyuan religion|Ryukyuan]]&lt;br /&gt;
&lt;br /&gt;
| group3 = [[Religion in Korea|Korean]]&lt;br /&gt;
| list3  =&lt;br /&gt;
* [[Korean shamanism]]&lt;br /&gt;
* [[Cheondoism]]&lt;br /&gt;
* [[Jeung San Do|Jeungsanism]]&lt;br /&gt;
&lt;br /&gt;
| group4 = [[Religion in Vietnam|Vietnamese]]&lt;br /&gt;
| list4  =&lt;br /&gt;
* [[Vietnamese folk religion]]&lt;br /&gt;
** [[Đạo Mẫu]]&lt;br /&gt;
* [[Caodaism]]&lt;br /&gt;
* [[Hòa Hảo|Hoahaoism]]&lt;br /&gt;
* [[Đạo Bửu Sơn Kỳ Hương]]&lt;br /&gt;
}}&amp;lt;!-- End of level 3 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group2 = [[Indian religions|Indian]]&lt;br /&gt;
| list2  =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- level 3 --&amp;gt;{{#invoke:navbox|navbox |child |groupstyle=font-weight:normal;&lt;br /&gt;
    &lt;br /&gt;
| group1 = [[Hinduism]]&lt;br /&gt;
| list1 =&lt;br /&gt;
* [[Vaishnavism]]&lt;br /&gt;
** [[Krishnaism]]&lt;br /&gt;
** [[Sri Vaishnavism]]&lt;br /&gt;
** [[Brahma Sampradaya]]&lt;br /&gt;
** [[Nimbarka Sampradaya]]&lt;br /&gt;
** [[Pushtimarga Sampradaya|Pushtimarg]]&lt;br /&gt;
** [[Mahanubhava]]&lt;br /&gt;
** [[Ramanandi Sampradaya|Ramanandi]]&lt;br /&gt;
** [[Warkari]]&lt;br /&gt;
** [[Swaminarayan Sampradaya|Swaminarayan]]&lt;br /&gt;
* [[Shaivism]]&lt;br /&gt;
** [[Shaiva Siddhanta]]&lt;br /&gt;
** [[Ganapatya]]&lt;br /&gt;
** [[Kashmir Shaivism|Kashmiri]]&lt;br /&gt;
** [[Kapalika]]&lt;br /&gt;
** [[Kaumaram]]&lt;br /&gt;
** [[Lingayats|Lingayatism]]&lt;br /&gt;
** [[Natha Sampradaya|Nath]]&lt;br /&gt;
** [[Balinese Hinduism|Balinese]]&lt;br /&gt;
* [[Shaktism]]&lt;br /&gt;
* [[Smarta tradition|Smartism]]&lt;br /&gt;
* [[Śrauta]]&lt;br /&gt;
* [[Sant Mat]]&lt;br /&gt;
* [[Hindu reform movements|Neo-Hinduism]]&lt;br /&gt;
* &#039;&#039;[[Hindu denominations|list]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
| group2 = [[Buddhism]]&lt;br /&gt;
| list2  =&lt;br /&gt;
* [[Theravada]]&lt;br /&gt;
* [[Mahayana]]&lt;br /&gt;
** [[Chan Buddhism|Chan]]/[[Zen]]/[[Thiền]]&lt;br /&gt;
** [[Pure Land Buddhism|Amidism]]&lt;br /&gt;
** [[Nichiren Buddhism|Nichiren]]&lt;br /&gt;
* [[Vajrayana]]&lt;br /&gt;
** [[Tibetan Buddhism|Tibetan]]&lt;br /&gt;
* [[Buddhist modernism|Neo-Buddhism]]&lt;br /&gt;
* &#039;&#039;[[Schools of Buddhism|list]]&#039;&#039;&lt;br /&gt;
    &lt;br /&gt;
| group3 = Other&lt;br /&gt;
| list3  =&lt;br /&gt;
* [[Ayyavazhi]]&lt;br /&gt;
* [[Kalash people#Religion|Kalash]]&lt;br /&gt;
* [[Jainism]]&lt;br /&gt;
** [[Digambara]]&lt;br /&gt;
** [[Śvetāmbara]]&lt;br /&gt;
* [[Sarnaism]]&lt;br /&gt;
* [[Kirat Mundhum]]&lt;br /&gt;
* [[Vedda#Religion|Vedda religions]]&lt;br /&gt;
* [[Ravidassia]]&lt;br /&gt;
* [[Sikhism]]&lt;br /&gt;
** [[Khalsa]]&lt;br /&gt;
** [[Sects of Sikhism|Sects]]&lt;br /&gt;
}}&amp;lt;!-- end of level 3 --&amp;gt;&lt;br /&gt;
}}&amp;lt;!-- end of level 2 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group3 = [[Ethnic religion|Ethnic]]&lt;br /&gt;
| list3  =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- level 2 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
  | group6 = [[Altaic languages|Altaic]]&lt;br /&gt;
  | list6 =&lt;br /&gt;
* [[Turkic mythology|Turko]]-[[Mongolian shamanism|Mongolic]]&lt;br /&gt;
** [[Burkhanism]]&lt;br /&gt;
** [[Tengrism]]&lt;br /&gt;
** [[Vattisen Yaly]]&lt;br /&gt;
* [[Tungusic creation myth|Tungusic]]&lt;br /&gt;
** [[Evenks#Religion|Evenki]]&lt;br /&gt;
** [[Manchu shamanism|Manchu]]&lt;br /&gt;
&lt;br /&gt;
  | group7 = [[Austroasiatic languages|Austroasiatic]]&lt;br /&gt;
  | list7 =&lt;br /&gt;
* [[Sarna (place)|Sarnaism]]&lt;br /&gt;
&lt;br /&gt;
  | group8 = [[Austronesian languages|Austronesian]]&lt;br /&gt;
  | list8 =&lt;br /&gt;
* [[Parmalim|Batak Parmalim]]&lt;br /&gt;
* [[Dayak people#Religion and festivals|Dayak]]&lt;br /&gt;
** [[Kaharingan]]&lt;br /&gt;
* Indonesian&lt;br /&gt;
** [[Aliran Kepercayaan]] &lt;br /&gt;
** [[Kejawèn]] &lt;br /&gt;
* [[Kapitayan]]&lt;br /&gt;
* [[Pemena|Karo Pemena]]&lt;br /&gt;
* [[Malaysian folk religion|Malaysian]]&lt;br /&gt;
** [[Traditional Sabahan religions]]&lt;br /&gt;
* [[Indigenous Philippine folk religions|Philippine Dayawism]]&lt;br /&gt;
** [[Tagalog religion|Tagalog]]&lt;br /&gt;
* [[Polynesian mythology|Polynesian]]&lt;br /&gt;
** [[Hawaiian religion|Hawaiian]]&lt;br /&gt;
** [[Religion of Māori people|Māori]]&lt;br /&gt;
* [[Marapu|Sumbese Marapu]]&lt;br /&gt;
* [[Sunda Wiwitan|Sundanese Wiwitan]]&lt;br /&gt;
&lt;br /&gt;
  | group10 = [[Native American religions|Native&amp;lt;br /&amp;gt;American]]&lt;br /&gt;
  | list10 =&lt;br /&gt;
* [[Abenaki mythology|Abenaki]]&lt;br /&gt;
* [[Alaska Native religion|Alaskan]]&lt;br /&gt;
* [[Anishinaabe traditional beliefs|Anishinaabe]]&lt;br /&gt;
** [[Ojibwe#Spiritual beliefs|Ojibwe]]&lt;br /&gt;
** [[Midewiwin]]&lt;br /&gt;
** [[Wabunowin]]&lt;br /&gt;
* [[Apache#Religion|Apache]]&lt;br /&gt;
* [[Blackfoot mythology|Blackfoot]]&lt;br /&gt;
* [[Traditional narratives of Indigenous Californians|Californian]]&lt;br /&gt;
** [[Kuksu (religion)|Kuksu]]&lt;br /&gt;
** [[Miwok mythology|Miwok]]&lt;br /&gt;
** [[Ohlone mythology|Ohlone]]&lt;br /&gt;
** [[Pomo religion|Pomo]]&lt;br /&gt;
* [[Chilote mythology|Chilote]]&lt;br /&gt;
* [[Choctaw mythology|Choctaw]]&lt;br /&gt;
* [[Crow religion|Crow]]&lt;br /&gt;
* [[Ghost Dance]]/[[Sun Dance]]&lt;br /&gt;
* [[Guarani mythology|Guarani]]&lt;br /&gt;
* [[Haida mythology|Haida]]&lt;br /&gt;
* [[Ho-Chunk mythology|Ho-Chunk]]&lt;br /&gt;
* [[Iroquois mythology|Iroquois]]&lt;br /&gt;
** [[Cherokee spiritual beliefs|Cherokee]]&lt;br /&gt;
*** [[Four Mothers Society]]&lt;br /&gt;
*** [[Keetoowah Nighthawk Society|Keetoowah Society]]&lt;br /&gt;
** [[Longhouse Religion|Longhouse]]&lt;br /&gt;
** [[Mohawk people#Religion|Mohawk]]&lt;br /&gt;
** [[Creek mythology|Muscogee Creek]]&lt;br /&gt;
** [[Seneca mythology|Seneca]]&lt;br /&gt;
** [[Wyandot religion|Wyandot]]&lt;br /&gt;
* [[Jivaroan peoples#Religion|Jivaroan]]&lt;br /&gt;
* [[Kwakwakaʼwakw mythology|Kwakwakaʼwakw]]&lt;br /&gt;
* [[Lenape mythology|Lenape]]&lt;br /&gt;
* [[Mapuche religion|Mapuche]]&lt;br /&gt;
* [[Mesoamerican religion|Mesoamerican]] &lt;br /&gt;
** [[Aztec religion|Aztec]]&lt;br /&gt;
** [[Maya religion|Maya]]&lt;br /&gt;
** [[Purépecha religion|Purépecha]]&lt;br /&gt;
* [[Muisca mythology|Muisca]]&lt;br /&gt;
* [[Native American Church]]&lt;br /&gt;
* [[Navajo#Spiritual and religious beliefs|Navajo]]&lt;br /&gt;
* [[Nuu-chah-nulth mythology|Nuu-chah-nulth]]&lt;br /&gt;
* [[Pawnee mythology|Pawnee]]&lt;br /&gt;
* [[Pueblo religion|Pueblo]]&lt;br /&gt;
** [[Acoma Pueblo#Religion|Acoma Pueblo]]&lt;br /&gt;
** [[Hopi mythology|Hopi]]&lt;br /&gt;
** [[Zuni mythology|Zuni]]&lt;br /&gt;
* [[Sioux#Religion|Sioux]]&lt;br /&gt;
** [[Lakota religion|Lakota]]&lt;br /&gt;
*** [[Wocekiye]]&lt;br /&gt;
* [[Tsimshian mythology|Tsimshian]]&lt;br /&gt;
* [[Ute mythology|Ute]]&lt;br /&gt;
* [[Native American religions#Washat Dreamers Religion|Washat Dreamers]]&lt;br /&gt;
* [[Yaqui#Yaqui cosmology and religion|Yaqui]]&lt;br /&gt;
&lt;br /&gt;
  | group11 = [[Tai peoples|Tai]] and [[Miao people|Miao]]&lt;br /&gt;
  | list11 =&lt;br /&gt;
* [[Ahom religion|Ahom]]&lt;br /&gt;
* [[Miao folk religion|Hmongism]]&lt;br /&gt;
* [[Mo (religion)|Mo]]&lt;br /&gt;
* [[Tai folk religion|Satsana Phi]]&lt;br /&gt;
&lt;br /&gt;
  | group12 = [[Tibeto-Burman languages|Tibeto-Burmese]]&lt;br /&gt;
  | list12 =&lt;br /&gt;
* [[Bon]]&lt;br /&gt;
* [[Burmese folk religion|Burmese]]&lt;br /&gt;
* [[Benzhuism]]&lt;br /&gt;
* [[Bimoism]]&lt;br /&gt;
* [[Bathouism]]&lt;br /&gt;
* [[Mun (religion)|Bongthingism]]&lt;br /&gt;
* [[Dongba]]&lt;br /&gt;
* [[Donyi-Polo]]&lt;br /&gt;
* [[Gurung shamanism|Gurung]]&lt;br /&gt;
* [[Heraka]]&lt;br /&gt;
* [[Kirat Mundhum|Kiratism]]&lt;br /&gt;
* [[Qiang folk religion|Qiang]]&lt;br /&gt;
* [[Sanamahism]]&lt;br /&gt;
&lt;br /&gt;
  | group13 = [[African traditional religions|Traditional &amp;lt;br&amp;gt; African]]&lt;br /&gt;
  | list13 =&lt;br /&gt;
&amp;lt;!-- level 2 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
| group1 = North African&lt;br /&gt;
| list1 = &lt;br /&gt;
* [[Traditional Berber religion|Berber]]&lt;br /&gt;
** [[Church of the Guanche People|Guanche church]]&lt;br /&gt;
&lt;br /&gt;
| group2 = [[Religion in Africa|Sub-Saharan&amp;lt;/br&amp;gt;African]]&lt;br /&gt;
| list2 =&lt;br /&gt;
* [[Kamba people|Akamba]]&lt;br /&gt;
* [[Akan religion|Akan]]&lt;br /&gt;
* [[Baluba religion|Baluba]]&lt;br /&gt;
* [[Bantu religion|Bantu]]&lt;br /&gt;
** [[Kongo religion|Kongo]]&lt;br /&gt;
** [[Zulu traditional religion|Zulu]]&lt;br /&gt;
* [[Bushongo religion|Bushongo]]&lt;br /&gt;
* [[Dinka religion|Dinka]]&lt;br /&gt;
* [[Dogon religion|Dogon]]&lt;br /&gt;
* [[Efik mythology|Efik]]&lt;br /&gt;
* [[Dahomean religion|Fon and Ewe]]&lt;br /&gt;
* [[Ik people|Ik]]&lt;br /&gt;
* [[Lotuko mythology|Lotuko]]&lt;br /&gt;
* [[Lozi mythology|Lozi]]&lt;br /&gt;
* [[Lugbara mythology|Lugbara]]&lt;br /&gt;
* [[Maasai religion|Maasai]]&lt;br /&gt;
* [[Mbuti mythology|Mbuti]]&lt;br /&gt;
* [[Odinala]]&lt;br /&gt;
* [[San religion|San]]&lt;br /&gt;
* [[Serer religion|Serer]]&lt;br /&gt;
* [[Tumbuka mythology|Tumbuka]]&lt;br /&gt;
* [[Urhobo people|Urhobo]]&lt;br /&gt;
* [[Waaqeffanna]]&lt;br /&gt;
* [[Yoruba religion|Yoruba]]&lt;br /&gt;
** [[Ifá]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[African diaspora religions|Diasporic]]:&#039;&#039;&#039;&lt;br /&gt;
** [[Candomblé]]&lt;br /&gt;
*** [[Candomblé Bantu|Bantu]]&lt;br /&gt;
*** [[Candomblé Jejé|Jejé]]&lt;br /&gt;
*** [[Candomblé Ketu|Ketu]]&lt;br /&gt;
** [[Comfa]]&lt;br /&gt;
** [[Convince]]&lt;br /&gt;
** [[Espiritismo]]&lt;br /&gt;
** [[Kumina]]&lt;br /&gt;
** [[Obeah]]&lt;br /&gt;
** [[Palo (religion)|Palo]]&lt;br /&gt;
** [[Quimbanda]]&lt;br /&gt;
** [[Santería]]&lt;br /&gt;
** [[Tambor de Mina]]&lt;br /&gt;
** [[Trinidad Orisha]]&lt;br /&gt;
** [[Umbanda]]&lt;br /&gt;
** [[Haitian Vodou|Vodou]]&lt;br /&gt;
** [[Louisiana Voodoo|Voodoo]]&lt;br /&gt;
** [[Winti]]&lt;br /&gt;
}}&amp;lt;!-- end of level 2 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group15 = Other ethnic&lt;br /&gt;
  | list15 =&lt;br /&gt;
* [[Australian Aboriginal religion and mythology|Aboriginal Australian]]&lt;br /&gt;
* [[Inuit religion|Inuit]]&lt;br /&gt;
* [[Papuan mythology|Papuan]]&lt;br /&gt;
* [[Shamanism in Siberia|Siberian]]&lt;br /&gt;
}}&amp;lt;!-- End of level 2 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| group4 = [[New religious movement|New&amp;lt;/br&amp;gt; religious&amp;lt;/br&amp;gt; movements]]&lt;br /&gt;
| list4  =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- level 2 --&amp;gt;{{#invoke:navbox|navbox |child|groupstyle=font-weight:normal;&lt;br /&gt;
&lt;br /&gt;
  | group16 = Syncretic&lt;br /&gt;
  | list16 =&lt;br /&gt;
&lt;br /&gt;
* [[Zoroastrianism in Russia|Blagovery]]&lt;br /&gt;
* [[Brahmoism]] &amp;lt;!-- idk enough about this group, might not be syncretic and just be indian --&amp;gt;&lt;br /&gt;
* [[Chinese salvationist religions|Chinese]]&lt;br /&gt;
** [[Falun Gong]]&lt;br /&gt;
* [[Coconut Religion]]&lt;br /&gt;
* [[Japanese new religions|Japanese]]&lt;br /&gt;
* [[Meivazhi]]&lt;br /&gt;
* [[Modekngei]]&lt;br /&gt;
* [[New Age]]&lt;br /&gt;
* [[New Thought]]&lt;br /&gt;
* [[Rajneesh movement|Rajneesh]]&lt;br /&gt;
* [[Rastafari]]&lt;br /&gt;
* [[Contemporary Sant Mat movements|Sant Mat]]&lt;br /&gt;
** [[Radha Soami]]&lt;br /&gt;
* [[Spiritualism (movement)|Spiritualism]]&lt;br /&gt;
* [[Subud]]&lt;br /&gt;
* [[Tensegrity (Castaneda)|Tensegrity]]&lt;br /&gt;
* [[Thelema]]&lt;br /&gt;
* [[Theosophy]]&lt;br /&gt;
** [[Neo-Theosophy]]&lt;br /&gt;
** [[Agni Yoga]] and [[Roerichism]]&lt;br /&gt;
** [[New Acropolis]]&lt;br /&gt;
* [[Transcendental Meditation]]&lt;br /&gt;
* [[Unitarian Universalism]]&lt;br /&gt;
* [[Universal White Brotherhood|White Brotherhood]]&lt;br /&gt;
&lt;br /&gt;
  | group17 = [[Modern paganism|Modern&amp;lt;/br&amp;gt;paganism]]&lt;br /&gt;
  | list17 =&lt;br /&gt;
* African&lt;br /&gt;
** [[Godianism]]&lt;br /&gt;
* [[Hetanism|Armenian]]&lt;br /&gt;
* [[Baltic neopaganism|Baltic]]&lt;br /&gt;
** [[Dievturība]]&lt;br /&gt;
** [[Romuva (religion)|Romuva]]&lt;br /&gt;
* [[Caucasian neopaganism|Caucasian]]&lt;br /&gt;
** [[Abkhaz traditional religion|Abkhaz]]&lt;br /&gt;
** [[Circassian paganism|Circassian]]&lt;br /&gt;
* [[Celtic neopaganism|Celtic]]&lt;br /&gt;
** [[Druidry (modern)|Druidry]]&lt;br /&gt;
* [[Heathenry (new religious movement)|Germanic]]&lt;br /&gt;
* [[Hellenism (modern religion)]]&lt;br /&gt;
* [[Neoshamanism]]&lt;br /&gt;
* [[Assianism|Ossetian]]&lt;br /&gt;
* [[Polytheistic reconstructionism]]&lt;br /&gt;
** [[Reconstructionist Roman religion|Italo-Roman]]&lt;br /&gt;
** [[Kemetism]]&lt;br /&gt;
* [[Zalmoxianism|Romanian]]&lt;br /&gt;
* [[Slavic Native Faith|Slavic]]&lt;br /&gt;
** [[Russian Authentism|Authentism]]&lt;br /&gt;
* [[Uralic neopaganism|Uralic]]&lt;br /&gt;
** [[Estonian neopaganism|Estonian]]&lt;br /&gt;
** [[Modern Finnish paganism|Finnish]]&lt;br /&gt;
** [[Hungarian Neopaganism (movement)|Hungarian]]&lt;br /&gt;
** [[Mari religion|Mari]]&lt;br /&gt;
** [[Erzyan native religion|Erzya]]&lt;br /&gt;
** [[Sámi shamanism|Sámi]]&lt;br /&gt;
** [[Udmurt Vos|Udmurt]]&lt;br /&gt;
* [[Wicca]]&lt;br /&gt;
* [[Zalmoxianism]]&lt;br /&gt;
* &#039;&#039;[[List of modern pagan movements|list]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  | group18 = De novo&lt;br /&gt;
  | list18 =&lt;br /&gt;
* [[Anthroposophy]]&lt;br /&gt;
** [[The Christian Community]]&lt;br /&gt;
* [[Discordianism]]&lt;br /&gt;
* [[Eckankar]]&lt;br /&gt;
* [[Fourth Way]]&lt;br /&gt;
* [[Goddess movement|Goddess]]&lt;br /&gt;
* [[Jediism]]&lt;br /&gt;
* [[Satanism]]&lt;br /&gt;
* [[Scientology]]&lt;br /&gt;
* [[UFO religion]]&lt;br /&gt;
** [[Raëlism]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|below =&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| sect2 = [[History of religion|Historical religions]]&lt;br /&gt;
| abbr2 = ancient&lt;br /&gt;
| state2 = &amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| list2 =&lt;br /&gt;
&lt;br /&gt;
* [[Prehistoric religion|Prehistoric]]&lt;br /&gt;
** [[Paleolithic religion|Paleolithic]]&lt;br /&gt;
* [[Ainu people#Religion|Ainu]]&lt;br /&gt;
* [[Armenian mythology|Armenian]]&lt;br /&gt;
* [[Baltic mythology|Baltic]]&lt;br /&gt;
** [[Latvian mythology|Latvian]]&lt;br /&gt;
** [[Lithuanian mythology|Lithuanian]]&lt;br /&gt;
** [[Prussian mythology|Old Prussian]]&lt;br /&gt;
* [[Basque mythology|Basque]]&lt;br /&gt;
* [[Ancient Celtic religion|Celtic]]&lt;br /&gt;
** [[Druid|Druidism]]&lt;br /&gt;
** [[Irish mythology|Irish]]&lt;br /&gt;
* [[Dravidian folk religion|Dravidian]]&lt;br /&gt;
* [[Ancient Egyptian religion|Egyptian]]&lt;br /&gt;
** [[Atenism]]&lt;br /&gt;
* [[Etruscan religion|Etruscan]]&lt;br /&gt;
* [[Finnish mythology|Finnish]]&lt;br /&gt;
* [[Fuegians#Spiritual culture|Fuegian]]&lt;br /&gt;
** [[Selkʼnam mythology|Selkʼnam]]&lt;br /&gt;
* [[Georgian mythology|Georgian]]&lt;br /&gt;
* [[Germanic paganism|Germanic]]&lt;br /&gt;
** [[Anglo-Saxon paganism|Anglo-Saxon]]&lt;br /&gt;
** [[Continental Germanic mythology|Continental]]&lt;br /&gt;
** [[Frankish paganism|Frankish]]&lt;br /&gt;
** [[Old Norse religion|Norse]]&lt;br /&gt;
* [[Ancient Greek religion|Greek]]&lt;br /&gt;
** [[Gnosticism]]&lt;br /&gt;
** [[Greco-Buddhism]]&lt;br /&gt;
** [[Hellenistic philosophy|Hellenistic philosophical religions]]&lt;br /&gt;
** [[Hermeticism]]&lt;br /&gt;
** [[Greco-Roman mysteries|Mysteries]]&lt;br /&gt;
** [[Orphism]]&lt;br /&gt;
* [[Guanches#System of beliefs|Guanche]]&lt;br /&gt;
* [[Indus Valley Civilisation#Religion|Harappan]]&lt;br /&gt;
* [[Hittite mythology and religion|Hittite]]&lt;br /&gt;
* [[Hungarian mythology|Hungarian]]&lt;br /&gt;
* [[Hurrian religion|Hurrian]]&lt;br /&gt;
* [[Illinois Confederacy#Religion|Illinois]]&lt;br /&gt;
* [[Inca mythology|Inca]]&lt;br /&gt;
* [[Jamaican Maroon religion|Jamaican Maroon]]&lt;br /&gt;
* [[Manichaeism]]&lt;br /&gt;
** [[Mazdak|Mazdakism]]&lt;br /&gt;
* [[Melanesian mythology|Melanesian]]&lt;br /&gt;
* [[Ancient Mesopotamian religion|Mesopotamian]]&lt;br /&gt;
** [[Babylonian religion|Babylonian]]&lt;br /&gt;
** [[Sumerian religion|Sumerian]]&lt;br /&gt;
* [[Micronesian mythology|Micronesian]]&lt;br /&gt;
** [[Nauruan indigenous religion|Nauruan]]&lt;br /&gt;
* [[Olmec religion|Olmec]]&lt;br /&gt;
* [[Paleo-Balkan mythology|Paleo-Balkan]]&lt;br /&gt;
** [[Albanian paganism|Albanian]]&lt;br /&gt;
** [[Dacian mythology|Dacian]]&lt;br /&gt;
** [[Illyrian religion|Illyrian]]&lt;br /&gt;
** [[Thracian religion|Thracian]]&lt;br /&gt;
* [[Polynesian mythology|Polynesian]]&lt;br /&gt;
** [[Cook Islands mythology|Cook Islands]]&lt;br /&gt;
** [[Rapa Nui mythology|Rapa Nui]]&lt;br /&gt;
** [[Tongan religion|Tongan]]&lt;br /&gt;
* [[Proto-Indo-Iranian religion|Proto-Indo-Iranian]]&lt;br /&gt;
** [[Ancient Iranian religion|Iranian]]&lt;br /&gt;
** [[Historical Vedic religion|Vedic]]&lt;br /&gt;
* [[Basketmaker III era#Culture and religion|Ancestral Pueblo]]&lt;br /&gt;
** [[Pueblo II period#Culture and religion|Pueblo II]]&lt;br /&gt;
** [[Pueblo III period#Culture and religion|Pueblo III]]&lt;br /&gt;
** [[Pueblo IV period#Culture and religion|Pueblo IV]]&lt;br /&gt;
* [[Religion in ancient Rome|Roman]]&lt;br /&gt;
** [[Cybele|Cult of Magna Mater]]&lt;br /&gt;
** [[Gallo-Roman religion|Gallo-Roman]]&lt;br /&gt;
** [[Roman imperial cult|Imperial cult]]&lt;br /&gt;
** [[Mithraism]]&lt;br /&gt;
** [[Mysteries of Isis]]&lt;br /&gt;
** [[Natale di Roma]]&lt;br /&gt;
* [[Ancient Semitic religion|Semitic]]&lt;br /&gt;
** [[Religion in pre-Islamic Arabia|Arabian]]&lt;br /&gt;
*** [[Nabataean religion|Nabataean]]&lt;br /&gt;
** [[Babylonian religion|Babylonian]]&lt;br /&gt;
** [[Canaanite religion|Canaanite]]&lt;br /&gt;
*** [[Punic religion|Punic]]&lt;br /&gt;
*** [[Yahwism]]&lt;br /&gt;
* [[Scythian religion|Scythian]]&lt;br /&gt;
* [[Slavic paganism|Slavic]]&lt;br /&gt;
* [[Somali mythology|Somali]]&lt;br /&gt;
* [[Turkic mythology|Turkic]]&lt;br /&gt;
** [[Tengrism|Tengrism]]&lt;br /&gt;
* [[Urartu#Religion|Urartu]]&lt;br /&gt;
* [[Vainakh religion|Vainakh]]&lt;br /&gt;
* [[Zapotec civilization#Religion and Myth|Zapotec]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| sect3 = Topics&lt;br /&gt;
| abbr3 = topics&lt;br /&gt;
| state3 = &amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| list3 =&lt;br /&gt;
 {{#invoke:navbox|navbox |child&lt;br /&gt;
&lt;br /&gt;
  | group1 = Aspects&lt;br /&gt;
  | list1 =&lt;br /&gt;
* [[Apostasy]]{{\}}[[Religious disaffiliation|Disaffiliation]]&lt;br /&gt;
* [[Religious behaviour|Behaviour]]&lt;br /&gt;
* [[Belief#Religion|Beliefs]]&lt;br /&gt;
* [[Call to prayer]]&lt;br /&gt;
* [[Laicism]] / [[Laity]]&lt;br /&gt;
* [[Covenant (religion)|Covenant]]&lt;br /&gt;
* [[Religious conversion|Conversion]]&lt;br /&gt;
* [[Deity|Deities]]&lt;br /&gt;
* [[Religious denomination|Denomination]]&lt;br /&gt;
* [[Entheogen]]s&lt;br /&gt;
* [[Faith]]&lt;br /&gt;
* [[God]]&lt;br /&gt;
* [[Goddess]]&lt;br /&gt;
* [[Meditation]]&lt;br /&gt;
* [[Monasticism]]&lt;br /&gt;
** [[Monk]]&lt;br /&gt;
** [[Novice]]&lt;br /&gt;
** [[Nun]]&lt;br /&gt;
* [[Mysticism]]&lt;br /&gt;
* [[Religion and mythology|Mythology]]&lt;br /&gt;
* [[Ordination]]&lt;br /&gt;
* [[Orthodoxy]]&lt;br /&gt;
* [[Orthopraxy]]&lt;br /&gt;
* [[Paganism]]&lt;br /&gt;
* [[Prayer]]&lt;br /&gt;
* [[Prophecy]]&lt;br /&gt;
* [[Religious experience]]&lt;br /&gt;
* [[Ritual]]&lt;br /&gt;
** [[Liturgy]]&lt;br /&gt;
** [[Ritual purification|Purification]]&lt;br /&gt;
** [[Sacrifice]]&lt;br /&gt;
* [[Sacred space]]&lt;br /&gt;
** [[Sacred waters|Bodies of water]]&lt;br /&gt;
** [[Sacred grove|Groves]]&lt;br /&gt;
** [[Sacred mountains|Mountains]]&lt;br /&gt;
** [[Sacred tree|Trees]]&lt;br /&gt;
* [[Soul]]&lt;br /&gt;
* [[Spirituality]]&lt;br /&gt;
* [[Supernatural]]&lt;br /&gt;
* [[Religious symbol|Symbols]]&lt;br /&gt;
* [[Religious text|Text]]&lt;br /&gt;
* [[Religious views on truth|Truth]]&lt;br /&gt;
* [[Water and religion|Water]]&lt;br /&gt;
* [[Worship]]&lt;br /&gt;
** [[Worship of heavenly bodies|Astral]]&lt;br /&gt;
** [[Fire worship|Fire]]&lt;br /&gt;
** [[Nature worship|Nature]]&lt;br /&gt;
** [[Place of worship|Place]]&lt;br /&gt;
&lt;br /&gt;
  | group2 = [[Theism]]&lt;br /&gt;
  | list2 =&lt;br /&gt;
* [[Animism]]&lt;br /&gt;
* [[Deism]]&lt;br /&gt;
* [[Dualism in cosmology|Dualism]]&lt;br /&gt;
* [[Henotheism]]&lt;br /&gt;
* [[Monotheism]]&lt;br /&gt;
* [[Nontheism]]&lt;br /&gt;
* [[Pandeism]]&lt;br /&gt;
* [[Panentheism]]&lt;br /&gt;
* [[Pantheism]]&lt;br /&gt;
* [[Polytheism]]&lt;br /&gt;
* [[Transtheism]]&lt;br /&gt;
&lt;br /&gt;
  | group3 = [[Religious studies|Religious&amp;lt;br /&amp;gt;studies]]&lt;br /&gt;
  | list3 =&lt;br /&gt;
* [[Anthropology of religion|Anthropology]]&lt;br /&gt;
* [[Cognitive science of religion|Cognitive science]]&lt;br /&gt;
* [[Comparative religion|Comparative]]&lt;br /&gt;
* Demographics&lt;br /&gt;
** [[Ethnic religion|Ethnic]]&lt;br /&gt;
** [[Folk religion|Folk]]&lt;br /&gt;
** [[Indigenous religion|Indigenous]]&lt;br /&gt;
** [[Major religious groups|Major]]&lt;br /&gt;
** [[World religions|World]]&lt;br /&gt;
* [[Evolutionary origin of religion]]&lt;br /&gt;
* [[Evolutionary psychology of religion|Evolutionary psychology]]&lt;br /&gt;
* [[History of religion|History]]&lt;br /&gt;
* [[Neuroscience of religion|Neurotheology]]&lt;br /&gt;
* [[Philosophy of religion|Philosophy]]&lt;br /&gt;
* [[Psychology of religion|Psychology]]&lt;br /&gt;
* [[Sociology of religion|Sociology]]&lt;br /&gt;
* [[Soteriology]]&lt;br /&gt;
** [[Salvation]]&lt;br /&gt;
* [[Theology]]&lt;br /&gt;
* [[Theories about religion]]&lt;br /&gt;
* [[Women and religion|Women]]&lt;br /&gt;
&lt;br /&gt;
  | group4 = {{longitem|[[:Category:Religion and society|Religion &amp;lt;br /&amp;gt;and society]]}}&lt;br /&gt;
  | list4 =&lt;br /&gt;
* [[Religion and agriculture|Agriculture]]&lt;br /&gt;
* [[Religion and business|Business]]&lt;br /&gt;
* [[Clericalism]] / [[Clergy]]&lt;br /&gt;
** [[Monasticism]]&lt;br /&gt;
** [[Ordination]]&lt;br /&gt;
** [[Priest]]&lt;br /&gt;
* [[Religious conversion|Conversion]]&lt;br /&gt;
** [[religious assimilation|Assimilation]]&lt;br /&gt;
** [[Missionary]]&lt;br /&gt;
** [[Proselytism]]&lt;br /&gt;
* [[Disability and religion|Disability]]&lt;br /&gt;
* [[Religious education|Education]]&lt;br /&gt;
* [[Religious fanaticism|Fanaticism]]&lt;br /&gt;
* [[Freedom of religion|Freedom]]&lt;br /&gt;
** [[Religious pluralism|Pluralism]]&lt;br /&gt;
** [[Syncretism]]&lt;br /&gt;
** [[Toleration]]&lt;br /&gt;
** [[Universalism]]&lt;br /&gt;
* [[Fundamentalism]]&lt;br /&gt;
* [[Growth of religion|Growth]]&lt;br /&gt;
* [[Gender and religion|Gender]]&lt;br /&gt;
* [[Religion and happiness|Happiness]]&lt;br /&gt;
* [[Religion and LGBTQ people|LGBTQ people]]&lt;br /&gt;
** [[Homosexuality and religion|Homosexuality]]&lt;br /&gt;
** [[Intersex people and religion|Intersex people]]&lt;br /&gt;
** [[Transgender people and religion|Transgender people]]&lt;br /&gt;
* [[Minority religion|Minorities]]&lt;br /&gt;
* [[National church]]&lt;br /&gt;
* [[Importance of religion by country|National religiosity levels]]&lt;br /&gt;
* [[Religion in politics|Politics]]&lt;br /&gt;
* [[List of religious populations|Populations]]&lt;br /&gt;
* [[Religiocentrism]]&lt;br /&gt;
* [[Schism]]&lt;br /&gt;
* [[Religious school|School]]&lt;br /&gt;
* [[Relationship between religion and science|Science]]&lt;br /&gt;
* [[Religion and sexuality|Sexuality]]&lt;br /&gt;
* [[State religion|State]]&lt;br /&gt;
* [[Religious views on suicide|Suicide]]&lt;br /&gt;
* [[Theocracy]]&lt;br /&gt;
* [[Vegetarianism and religion|Vegetarianism]]&lt;br /&gt;
* [[Religion and video games|Video games]]&lt;br /&gt;
* [[Religious violence|Violence]]&lt;br /&gt;
** [[Religious persecution|Persecution]]&lt;br /&gt;
** [[Religious terrorism|Terrorism]]&lt;br /&gt;
** [[Religious war|War]]&lt;br /&gt;
** [[Sectarian violence|Sectarian]]&lt;br /&gt;
* [[Wealth and religion|Wealth]]&lt;br /&gt;
&lt;br /&gt;
  | group5 = {{longitem|[[Secularism]] &amp;lt;br /&amp;gt;and [[irreligion]]}}&lt;br /&gt;
  | list5 =&lt;br /&gt;
* [[Agnosticism]]&lt;br /&gt;
* [[Antireligion]]&lt;br /&gt;
* [[Atheism]]&lt;br /&gt;
* [[Criticism of religion|Criticism]]&lt;br /&gt;
* [[Positive deconstruction|Deconstruction]]&lt;br /&gt;
* [[Objectivism]]&lt;br /&gt;
* [[Secular humanism]]&lt;br /&gt;
* [[Secular religion]]&lt;br /&gt;
* [[Secular theology]]&lt;br /&gt;
* [[Secularization]]&lt;br /&gt;
* [[Separation of church and state]]&lt;br /&gt;
* [[List of religions and spiritual traditions|Unaffiliated]]&lt;br /&gt;
&lt;br /&gt;
  | group6 = {{longitem|Overviews&amp;lt;br /&amp;gt;and [[:Category:Religion-related lists|lists]]}}&lt;br /&gt;
  | list6 =&lt;br /&gt;
* [[Table of prophets of Abrahamic religions|Abrahamic prophets]]&lt;br /&gt;
* [[List of people who have been considered deities|Deification]]&lt;br /&gt;
* [[Lists of deities|Deities]]&lt;br /&gt;
* [[List of founders of religious traditions|Founders]]&lt;br /&gt;
* [[Index of religion-related articles|Index]]&lt;br /&gt;
* [[List of largest peaceful gatherings|Mass gatherings]]&lt;br /&gt;
* [[Names of God]]&lt;br /&gt;
* [[List of new religious movements|New religious movements]]&lt;br /&gt;
* [[List of religious organizations|Organizations]]&lt;br /&gt;
* [[Outline of religion|Outline]]&lt;br /&gt;
* [[List of religions and spiritual traditions|Religions and spiritual traditions]]&lt;br /&gt;
* [[List of religious sites|Religious sites]]&lt;br /&gt;
* [[Religious studies|Scholars]]&lt;br /&gt;
* [[Timeline of religion|Timeline]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| sect4 = Religion by country&lt;br /&gt;
| abbr4 = religion by country&lt;br /&gt;
| state4 = &amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| list4 =&lt;br /&gt;
 {{#invoke:navbox|navbox |child&lt;br /&gt;
&lt;br /&gt;
  | group1 = [[Religion in Africa|Africa]]&lt;br /&gt;
  | list1 =&lt;br /&gt;
* [[Religion in Algeria|Algeria]]&lt;br /&gt;
* [[Religion in Angola|Angola]]&lt;br /&gt;
* [[Religion in Benin|Benin]]&lt;br /&gt;
* [[Religion in Botswana|Botswana]]&lt;br /&gt;
* [[Religion in Burkina Faso|Burkina Faso]]&lt;br /&gt;
* [[Religion in Burundi|Burundi]]&lt;br /&gt;
* [[Religion in Cameroon|Cameroon]]&lt;br /&gt;
* [[Religion in Cape Verde|Cape Verde]]&lt;br /&gt;
* [[Religion in the Central African Republic|Central African Republic]]&lt;br /&gt;
* [[Religion in Chad|Chad]]&lt;br /&gt;
* [[Religion in the Comoros|Comoros]]&lt;br /&gt;
* [[Religion in the Democratic Republic of the Congo|Democratic Republic of the Congo]]&lt;br /&gt;
* [[Religion in the Republic of the Congo|Republic of the Congo]]&lt;br /&gt;
* [[Religion in Djibouti|Djibouti]]&lt;br /&gt;
* [[Religion in Egypt|Egypt]]&lt;br /&gt;
* [[Religion in Equatorial Guinea|Equatorial Guinea]]&lt;br /&gt;
* [[Religion in Eritrea|Eritrea]]&lt;br /&gt;
* [[Religion in Eswatini|Eswatini]]&lt;br /&gt;
* [[Religion in Ethiopia|Ethiopia]]&lt;br /&gt;
* [[Religion in Gabon|Gabon]]&lt;br /&gt;
* [[Religion in the Gambia|Gambia]]&lt;br /&gt;
* [[Religion in Ghana|Ghana]]&lt;br /&gt;
* [[Religion in Guinea|Guinea]]&lt;br /&gt;
* [[Religion in Guinea-Bissau|Guinea-Bissau]]&lt;br /&gt;
* [[Religion in Ivory Coast|Ivory Coast]]&lt;br /&gt;
* [[Religion in Kenya|Kenya]]&lt;br /&gt;
* [[Religion in Lesotho|Lesotho]]&lt;br /&gt;
* [[Religion in Liberia|Liberia]]&lt;br /&gt;
* [[Religion in Libya|Libya]]&lt;br /&gt;
* [[Religion in Madagascar|Madagascar]]&lt;br /&gt;
* [[Religion in Malawi|Malawi]]&lt;br /&gt;
* [[Religion in Mali|Mali]]&lt;br /&gt;
* [[Religion in Mauritania|Mauritania]]&lt;br /&gt;
* [[Religion in Mauritius|Mauritius]]&lt;br /&gt;
* [[Religion in Morocco|Morocco]]&lt;br /&gt;
* [[Religion in Mozambique|Mozambique]]&lt;br /&gt;
* [[Religion in Namibia|Namibia]]&lt;br /&gt;
* [[Religion in Niger|Niger]]&lt;br /&gt;
* [[Religion in Nigeria|Nigeria]]&lt;br /&gt;
* [[Religion in Rwanda|Rwanda]]&lt;br /&gt;
* [[Religion in São Tomé and Príncipe|São Tomé and Príncipe]]&lt;br /&gt;
* [[Religion in Senegal|Senegal]]&lt;br /&gt;
* [[Religion in Seychelles|Seychelles]]&lt;br /&gt;
* [[Religion in Sierra Leone|Sierra Leone]]&lt;br /&gt;
* [[Religion in Somalia|Somalia]]&lt;br /&gt;
* [[Religion in South Africa|South Africa]]&lt;br /&gt;
* [[Religion in South Sudan|South Sudan]]&lt;br /&gt;
* [[Religion in Sudan|Sudan]]&lt;br /&gt;
* [[Religion in Tanzania|Tanzania]]&lt;br /&gt;
* [[Religion in Togo|Togo]]&lt;br /&gt;
* [[Religion in Tunisia|Tunisia]]&lt;br /&gt;
* [[Religion in Uganda|Uganda]]&lt;br /&gt;
* [[Religion in Zambia|Zambia]]&lt;br /&gt;
* [[Religion in Zimbabwe|Zimbabwe]]&lt;br /&gt;
&lt;br /&gt;
  | group2 = [[Religion in Asia|Asia]]&lt;br /&gt;
  | list2 =&lt;br /&gt;
* [[Religion in Afghanistan|Afghanistan]]&lt;br /&gt;
* [[Religion in Armenia|Armenia]]&lt;br /&gt;
* [[Religion in Azerbaijan|Azerbaijan]]&lt;br /&gt;
* [[Religion in Bahrain|Bahrain]]&lt;br /&gt;
* [[Religion in Bangladesh|Bangladesh]]&lt;br /&gt;
* [[Religion in Bhutan|Bhutan]]&lt;br /&gt;
* [[Religion in Brunei|Brunei]]&lt;br /&gt;
* [[Religion in Cambodia|Cambodia]]&lt;br /&gt;
* [[Religion in China|China]]&lt;br /&gt;
* [[Religion in Cyprus|Cyprus]]&lt;br /&gt;
* [[Religion in Georgia (country)|Georgia]]&lt;br /&gt;
* [[Religion in Hong Kong|Hong Kong]]&lt;br /&gt;
* [[Religion in India|India]]&lt;br /&gt;
* [[Religion in Indonesia|Indonesia]]&lt;br /&gt;
* [[Religion in Iran|Iran]]&lt;br /&gt;
* [[Religion in Iraq|Iraq]]&lt;br /&gt;
* [[Religion in Israel|Israel]]&lt;br /&gt;
* [[Religion in Japan|Japan]]&lt;br /&gt;
* [[Religion in Jordan|Jordan]]&lt;br /&gt;
* [[Religion in Kazakhstan|Kazakhstan]]&lt;br /&gt;
* [[Religion in Korea|Korea]]&lt;br /&gt;
** [[Religion in North Korea|North Korea]]&lt;br /&gt;
** [[Religion in South Korea|South Korea]]&lt;br /&gt;
* [[Religion in Kuwait|Kuwait]]&lt;br /&gt;
* [[Religion in Kyrgyzstan|Kyrgyzstan]]&lt;br /&gt;
* [[Religion in Laos|Laos]]&lt;br /&gt;
* [[Religion in Lebanon|Lebanon]]&lt;br /&gt;
* [[Religion in Macau|Macau]]&lt;br /&gt;
* [[Religion in Malaysia|Malaysia]]&lt;br /&gt;
* [[Religion in the Maldives|Maldives]]&lt;br /&gt;
* [[Religion in Mongolia|Mongolia]]&lt;br /&gt;
* [[Religion in Myanmar|Myanmar]]&lt;br /&gt;
* [[Religion in Nepal|Nepal]]&lt;br /&gt;
* [[Religion in Oman|Oman]]&lt;br /&gt;
* [[Religion in Pakistan|Pakistan]]&lt;br /&gt;
* [[Religion in Palestine|Palestine]]&lt;br /&gt;
* [[Religion in the Philippines|Philippines]]&lt;br /&gt;
* [[Religion in Qatar|Qatar]]&lt;br /&gt;
* [[Religion in Saudi Arabia|Saudi Arabia]]&lt;br /&gt;
* [[Religion in Singapore|Singapore]]&lt;br /&gt;
* [[Religion in Sri Lanka|Sri Lanka]]&lt;br /&gt;
* [[Religion in Syria|Syria]]&lt;br /&gt;
* [[Religion in Taiwan|Taiwan]]&lt;br /&gt;
* [[Religion in Tajikistan|Tajikistan]]&lt;br /&gt;
* [[Religion in Thailand|Thailand]]&lt;br /&gt;
* [[Religion in Timor-Leste|Timor-Leste]]&lt;br /&gt;
* [[Religion in Turkey|Turkey]]&lt;br /&gt;
* [[Religion in Turkmenistan|Turkmenistan]]&lt;br /&gt;
* [[Religion in the United Arab Emirates|United Arab Emirates]]&lt;br /&gt;
* [[Religion in Uzbekistan|Uzbekistan]]&lt;br /&gt;
* [[Religion in Vietnam|Vietnam]]&lt;br /&gt;
* [[Religion in Yemen|Yemen]]&lt;br /&gt;
&lt;br /&gt;
  | group3 = [[Religion in Europe|Europe]]&lt;br /&gt;
  | list3 =&lt;br /&gt;
* [[Religion in Albania|Albania]]&lt;br /&gt;
* [[Religion in Andorra|Andorra]]&lt;br /&gt;
* [[Religion in Austria|Austria]]&lt;br /&gt;
* [[Religion in Belarus|Belarus]]&lt;br /&gt;
* [[Religion in Belgium|Belgium]]&lt;br /&gt;
* [[Religion in Bosnia and Herzegovina|Bosnia and Herzegovina]]&lt;br /&gt;
* [[Religion in Bulgaria|Bulgaria]]&lt;br /&gt;
* [[Religion in Croatia|Croatia]]&lt;br /&gt;
* [[Religion in the Czech Republic|Czechia]]&lt;br /&gt;
* [[Religion in Denmark|Denmark]]&lt;br /&gt;
* [[Religion in Estonia|Estonia]]&lt;br /&gt;
* [[Religion in Finland|Finland]]&lt;br /&gt;
* [[Religion in France|France]]&lt;br /&gt;
* [[Religion in Germany|Germany]]&lt;br /&gt;
* [[Religion in Greece|Greece]]&lt;br /&gt;
* [[Religion in Hungary|Hungary]]&lt;br /&gt;
* [[Religion in Iceland|Iceland]]&lt;br /&gt;
* [[Religion in the Republic of Ireland|Ireland]]&lt;br /&gt;
* [[Religion in Italy|Italy]]&lt;br /&gt;
* [[Religion in Kosovo|Kosovo]]&lt;br /&gt;
* [[Religion in Latvia|Latvia]]&lt;br /&gt;
* [[Religion in Liechtenstein|Liechtenstein]]&lt;br /&gt;
* [[Religion in Lithuania|Lithuania]]&lt;br /&gt;
* [[Religion in Luxembourg|Luxembourg]]&lt;br /&gt;
* [[Religion in Malta|Malta]]&lt;br /&gt;
* [[Religion in Moldova|Moldova]]&lt;br /&gt;
* [[Religion in Monaco|Monaco]]&lt;br /&gt;
* [[Religion in Montenegro|Montenegro]]&lt;br /&gt;
* [[Religion in the Netherlands|Netherlands]]&lt;br /&gt;
* [[Religion in North Macedonia|North Macedonia]]&lt;br /&gt;
* [[Religion in Norway|Norway]]&lt;br /&gt;
* [[Religion in Poland|Poland]]&lt;br /&gt;
* [[Religion in Portugal|Portugal]]&lt;br /&gt;
* [[Religion in Romania|Romania]]&lt;br /&gt;
* [[Religion in Russia|Russia]]&lt;br /&gt;
* [[Religion in San Marino|San Marino]]&lt;br /&gt;
* [[Religion in Serbia|Serbia]]&lt;br /&gt;
* [[Religion in Slovakia|Slovakia]]&lt;br /&gt;
* [[Religion in Slovenia|Slovenia]]&lt;br /&gt;
* [[Religion in Spain|Spain]]&lt;br /&gt;
* [[Religion in Sweden|Sweden]]&lt;br /&gt;
* [[Religion in Switzerland|Switzerland]]&lt;br /&gt;
* [[Religion in Ukraine|Ukraine]]&lt;br /&gt;
* [[Religion in the United Kingdom|United Kingdom]]&lt;br /&gt;
** [[Religion in England|England]]&lt;br /&gt;
** [[Religion in Northern Ireland|Northern Ireland]]&lt;br /&gt;
** [[Religion in Scotland|Scotland]]&lt;br /&gt;
** [[Religion in Wales|Wales]]&lt;br /&gt;
&lt;br /&gt;
  | group4 = [[Religion in North America|North America]]&lt;br /&gt;
  | list4 =&lt;br /&gt;
* [[Religion in Antigua and Barbuda|Antigua and Barbuda]]&lt;br /&gt;
* [[Religion in the Bahamas|Bahamas]]&lt;br /&gt;
* [[Religion in Barbados|Barbados]]&lt;br /&gt;
* [[Religion in Belize|Belize]]&lt;br /&gt;
* [[Religion in Canada|Canada]]&lt;br /&gt;
* [[Religion in Costa Rica|Costa Rica]]&lt;br /&gt;
* [[Religion in Cuba|Cuba]]&lt;br /&gt;
* [[Religion in Dominica|Dominica]]&lt;br /&gt;
* [[Religion in the Dominican Republic|Dominican Republic]]&lt;br /&gt;
* [[Religion in El Salvador|El Salvador]]&lt;br /&gt;
* [[Religion in Grenada|Grenada]]&lt;br /&gt;
* [[Religion in Guatemala|Guatemala]]&lt;br /&gt;
* [[Religion in Haiti|Haiti]]&lt;br /&gt;
* [[Religion in Honduras|Honduras]]&lt;br /&gt;
* [[Religion in Jamaica|Jamaica]]&lt;br /&gt;
* [[Religion in Mexico|Mexico]]&lt;br /&gt;
* [[Religion in Nicaragua|Nicaragua]]&lt;br /&gt;
* [[Religion in Panama|Panama]]&lt;br /&gt;
* [[Religion in Saint Kitts and Nevis|Saint Kitts and Nevis]]&lt;br /&gt;
* [[Religion in Saint Lucia|Saint Lucia]]&lt;br /&gt;
* [[Religion in Saint Vincent and the Grenadines|Saint Vincent and the Grenadines]]&lt;br /&gt;
* [[Religion in Trinidad and Tobago|Trinidad and Tobago]]&lt;br /&gt;
* [[Religion in the United States|United States]]&lt;br /&gt;
&lt;br /&gt;
  | group5 = [[Religion in Oceania|Oceania]]&lt;br /&gt;
  | list5 =&lt;br /&gt;
* [[Religion in Australia|Australia]]&lt;br /&gt;
* [[Religion in Fiji|Fiji]]&lt;br /&gt;
* [[Religion in Kiribati|Kiribati]]&lt;br /&gt;
* [[Religion in the Marshall Islands|Marshall Islands]]&lt;br /&gt;
* [[Religion in the Federated States of Micronesia|Micronesia]]&lt;br /&gt;
* [[Religion in Nauru|Nauru]]&lt;br /&gt;
* [[Religion in New Zealand|New Zealand]]&lt;br /&gt;
* [[Religion in Palau|Palau]]&lt;br /&gt;
* [[Religion in Papua New Guinea|Papua New Guinea]]&lt;br /&gt;
* [[Religion in Samoa|Samoa]]&lt;br /&gt;
* [[Religion in Solomon Islands|Solomon Islands]]&lt;br /&gt;
* [[Religion in Tonga|Tonga]]&lt;br /&gt;
* [[Religion in Tuvalu|Tuvalu]]&lt;br /&gt;
* [[Religion in Vanuatu|Vanuatu]]&lt;br /&gt;
&lt;br /&gt;
  | group6 = [[Religion in South America|South America]]&lt;br /&gt;
  | list6 =&lt;br /&gt;
* [[Religion in Argentina|Argentina]]&lt;br /&gt;
* [[Religion in Bolivia|Bolivia]]&lt;br /&gt;
* [[Religion in Brazil|Brazil]]&lt;br /&gt;
* [[Religion in Chile|Chile]]&lt;br /&gt;
* [[Religion in Colombia|Colombia]]&lt;br /&gt;
* [[Religion in Ecuador|Ecuador]]&lt;br /&gt;
* [[Religion in Guyana|Guyana]]&lt;br /&gt;
* [[Religion in Paraguay|Paraguay]]&lt;br /&gt;
* [[Religion in Peru|Peru]]&lt;br /&gt;
* [[Religion in Suriname|Suriname]]&lt;br /&gt;
* [[Religion in Uruguay|Uruguay]]&lt;br /&gt;
* [[Religion in Venezuela|Venezuela]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------------------------------------------&amp;gt;&lt;br /&gt;
| belowstyle = font-weight:bold;&lt;br /&gt;
| below =&lt;br /&gt;
* {{icon|category}} [[:Category:Religion|Category]]&lt;br /&gt;
* {{icon|portal}} [[Portal:Religion|Portal]]&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:Official_website&amp;diff=1596</id>
		<title>Module:Official website</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Official_website&amp;diff=1596"/>
		<updated>2026-04-04T20:33:14Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard Official_website when Wikibase is unavailable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local makeUrl = require(&#039;Module:URL&#039;)._url&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local wb = mw.wikibase&lt;br /&gt;
&lt;br /&gt;
-- Wrapper for pcall which returns nil on failure.&lt;br /&gt;
local function quickPcall(func)&lt;br /&gt;
	local success, result = pcall(func)&lt;br /&gt;
	if success then&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Gets the rank for a Wikidata property table. Returns 1, 0 or -1, in&lt;br /&gt;
-- order of rank.&lt;br /&gt;
local function getRank(prop)&lt;br /&gt;
	local rank = prop.rank&lt;br /&gt;
	if rank == &#039;preferred&#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	elseif rank == &#039;normal&#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	elseif rank == &#039;deprecated&#039; then&lt;br /&gt;
		return -1&lt;br /&gt;
	else&lt;br /&gt;
		-- No rank or undefined rank is treated as &amp;quot;normal&amp;quot;.&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Finds whether a Wikidata property is qualified as being in English.&lt;br /&gt;
local function isEnglish(prop)&lt;br /&gt;
	local ret = quickPcall(function ()&lt;br /&gt;
		for i, lang in ipairs(prop.qualifiers.P407) do&lt;br /&gt;
			if lang.datavalue.value[&#039;numeric-id&#039;] == 1860 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end)&lt;br /&gt;
	return ret == true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fetches the official website URL from Wikidata.&lt;br /&gt;
local fetchWikidataUrl&lt;br /&gt;
fetchWikidataUrl = function(qid)&lt;br /&gt;
	-- Get objects for all official sites on Wikidata.&lt;br /&gt;
	if not wb then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local websites = quickPcall(function ()&lt;br /&gt;
		local id = qid or wb.getEntityIdForCurrentPage()&lt;br /&gt;
		return wb.getAllStatements(id, &#039;P856&#039;)&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Clone the objects in case other code needs them in their original order.&lt;br /&gt;
	websites = websites and mw.clone(websites) or {}&lt;br /&gt;
&lt;br /&gt;
	-- Add the table index to the objects in case it is needed in the sort.&lt;br /&gt;
	for i, website in ipairs(websites) do&lt;br /&gt;
		website._index = i&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Sort the websites, first by highest rank, and then by websites in the&lt;br /&gt;
	-- English language, then by the website&#039;s original position in the&lt;br /&gt;
	-- property list. When we are done, get the URL from the highest-sorted&lt;br /&gt;
	-- object.&lt;br /&gt;
	table.sort(websites, function(ws1, ws2)&lt;br /&gt;
		local r1 = getRank(ws1)&lt;br /&gt;
		local r2 = getRank(ws2)&lt;br /&gt;
		if r1 ~= r2 then&lt;br /&gt;
			return r1 &amp;gt; r2&lt;br /&gt;
		end&lt;br /&gt;
		local e1 = isEnglish(ws1)&lt;br /&gt;
		local e2 = isEnglish(ws2)&lt;br /&gt;
		if e1 ~= e2 then&lt;br /&gt;
			return e1&lt;br /&gt;
		end&lt;br /&gt;
		return ws1._index &amp;lt; ws2._index&lt;br /&gt;
	end)&lt;br /&gt;
	local url = quickPcall(function ()&lt;br /&gt;
		return websites[1].mainsnak.datavalue.value&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Cache the result so that we only do the heavy lifting once per #invoke.&lt;br /&gt;
	fetchWikidataUrl = function ()&lt;br /&gt;
		return url&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Render the URL link, plus other visible output.&lt;br /&gt;
local function renderUrl(options)&lt;br /&gt;
	if not options.url and not options.wikidataurl then&lt;br /&gt;
		if options.suppress_error then&lt;br /&gt;
			return &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		local qid = options.qid or (wb and wb.getEntityIdForCurrentPage())&lt;br /&gt;
		local result = &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;&#039; ..&lt;br /&gt;
			&#039;No URL found. Please specify a URL here or add one to Wikidata.&#039; ..&lt;br /&gt;
			&#039;&amp;lt;/strong&amp;gt;&#039;&lt;br /&gt;
		if qid then&lt;br /&gt;
			result = result.. &#039; [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/&#039; .. qid .. &#039;#P856|Edit this at Wikidata]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	ret[#ret + 1] = string.format(&lt;br /&gt;
		&#039;&amp;lt;span class=&amp;quot;official-website&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
		makeUrl(options.url or options.wikidataurl, options.display)&lt;br /&gt;
	)&lt;br /&gt;
	if options.wikidataurl and not options.url then&lt;br /&gt;
		local qid = wb and wb.getEntityIdForCurrentPage()&lt;br /&gt;
		if qid then&lt;br /&gt;
			ret[#ret + 1] = &#039;[[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/&#039; .. qid .. &#039;#P856|Edit this at Wikidata]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &#039; &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Render the tracking category.&lt;br /&gt;
local function renderTrackingCategory(url, wikidataurl)&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace ~= 0 then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local category&lt;br /&gt;
	if not url and not wikidataurl then&lt;br /&gt;
		category = &#039;Official website missing URL&#039;&lt;br /&gt;
	elseif not url and wikidataurl then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	elseif url and wikidataurl then&lt;br /&gt;
		if url:gsub(&#039;/%s*$&#039;, &#039;&#039;) ~= wikidataurl:gsub(&#039;/%s*$&#039;, &#039;&#039;) then&lt;br /&gt;
			category = &#039;Official website different in Wikidata and Wikipedia&#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		category = &#039;Official website not in Wikidata&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return category and string.format(&#039;[[Category:%s]]&#039;, category) or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local url = args[1] or args.URL or args.url&lt;br /&gt;
	local wikidataurl = fetchWikidataUrl(args.qid)&lt;br /&gt;
	local formattedUrl = renderUrl{&lt;br /&gt;
		url = url,&lt;br /&gt;
		wikidataurl = wikidataurl,&lt;br /&gt;
		display = args[2] or args.name or &#039;Official website&#039;,&lt;br /&gt;
		qid = qid&lt;br /&gt;
	}&lt;br /&gt;
	return formattedUrl .. renderTrackingCategory(url, wikidataurl)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._url(args)&lt;br /&gt;
	local qid = args.qid&lt;br /&gt;
	local wikidataurl = fetchWikidataUrl(qid)&lt;br /&gt;
	local formattedUrl = renderUrl{&lt;br /&gt;
		suppress_error = 1,&lt;br /&gt;
		wikidataurl = wikidataurl,&lt;br /&gt;
		qid = qid&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local warning = &amp;quot;&amp;quot;&lt;br /&gt;
	if wikidataurl == nil then&lt;br /&gt;
		local generateWarning = require(&#039;Module:If preview&#039;)._warning&lt;br /&gt;
		warning = generateWarning({&lt;br /&gt;
				&amp;quot;No official website ([[wikidata:Property:P856|P856]]) found in wikidata. Nothing will be displayed.&amp;quot;&lt;br /&gt;
			})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return formattedUrl .. warning&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &#039;Template:Official website&#039;&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- New entrypoint for Template:Official URL&lt;br /&gt;
function p.url(frame)&lt;br /&gt;
	local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &#039;Template:Official URL&#039;&lt;br /&gt;
	})&lt;br /&gt;
	return p._url(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:Commons_link&amp;diff=1595</id>
		<title>Module:Commons link</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Commons_link&amp;diff=1595"/>
		<updated>2026-04-04T20:33:13Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard Commons_link when Wikibase is unavailable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Module to find commons galleries and categories based on wikidata entries&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
local wb = mw.wikibase&lt;br /&gt;
&lt;br /&gt;
-- Check if string is a valid QID&lt;br /&gt;
-- Argument: QID to check&lt;br /&gt;
-- Returns: valid (bool)&lt;br /&gt;
local function _validQID(qid)&lt;br /&gt;
	return qid and mw.ustring.find(qid,&amp;quot;^[Qq]%d+$&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Check if string is a valid wikidata property string&lt;br /&gt;
-- Argument: property string to check&lt;br /&gt;
-- Returns: valid (bool)&lt;br /&gt;
local function _validProp(prop)&lt;br /&gt;
	return prop and mw.ustring.find(prop,&amp;quot;^[Pp]%d+$&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function _lcfirst(s)&lt;br /&gt;
	return mw.ustring.lower(mw.ustring.sub(s,1,1))..mw.ustring.sub(s,2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Format displayed linktext&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   s = string to display&lt;br /&gt;
--   formatting = formatting table:&lt;br /&gt;
--    formatting.linktext = if defined, override s&lt;br /&gt;
--    formatting.lcfirst = lower case the first letter in display&lt;br /&gt;
--    formatting.bold = whether to bold the display&lt;br /&gt;
--    formatting.italic = whether to italicize the display&lt;br /&gt;
--    formatting.nowrap = set nowrapping&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   formatted string&lt;br /&gt;
local function _formatResult(s, formatting)&lt;br /&gt;
	local resultVal = formatting.linktext or s&lt;br /&gt;
	if formatting.lcfirst then&lt;br /&gt;
		resultVal = _lcfirst(resultVal)&lt;br /&gt;
	end&lt;br /&gt;
    local style = &amp;quot;&amp;quot;&lt;br /&gt;
	if formatting.italic then style = &amp;quot;font-style:italic; &amp;quot; end&lt;br /&gt;
	if formatting.bold then style = style..&amp;quot;font-weight:bold; &amp;quot; end&lt;br /&gt;
	if formatting.nowrap then style = style..&amp;quot;white-space:nowrap; &amp;quot; end&lt;br /&gt;
    if style ~= &amp;quot;&amp;quot; then&lt;br /&gt;
    	resultVal = &#039;&amp;lt;span style=&amp;quot;&#039;..mw.text.trim(style)..&#039;&amp;quot;&amp;gt;&#039;..resultVal..&#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    end&lt;br /&gt;
	return resultVal&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get title, namespace, and QID for current page&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = testing only: get title of alternative page with QID=qid&lt;br /&gt;
--   nsQid = whether to return the ns of the qid page or current&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   title, namespace (string), qid of current page (or test page)&lt;br /&gt;
local function _getTitleQID(qid,nsQid)&lt;br /&gt;
	local titleObject = mw.title.getCurrentTitle()&lt;br /&gt;
	-- look up qid for current page (if not testing)&lt;br /&gt;
	local nsText = string.gsub(titleObject.nsText,&amp;quot;_&amp;quot;,&amp;quot; &amp;quot;) -- [[phab:T369784]]&lt;br /&gt;
	if not _validQID(qid) then&lt;br /&gt;
		qid = wb and wb.getEntityIdForCurrentPage()&lt;br /&gt;
		return titleObject.text, nsText, qid&lt;br /&gt;
	end&lt;br /&gt;
	-- testing-only path: given a qid, determine title&lt;br /&gt;
	-- always use namespace from current page (to suppress tracking cat)&lt;br /&gt;
	qid = qid:upper()&lt;br /&gt;
	local title = (wb and wb.getSitelink(qid)) or &amp;quot;&amp;quot;&lt;br /&gt;
	-- strip any namespace from sitelink&lt;br /&gt;
	local firstColon = mw.ustring.find(title,&#039;:&#039;,1,true)&lt;br /&gt;
	local qidNsText = &amp;quot;&amp;quot;&lt;br /&gt;
	if firstColon then&lt;br /&gt;
		qidNsText = mw.ustring.sub(title,1,firstColon-1)&lt;br /&gt;
		title = mw.ustring.sub(title,firstColon+1)&lt;br /&gt;
	end&lt;br /&gt;
	if nsQid then&lt;br /&gt;
		return title, qidNsText, qid&lt;br /&gt;
	end&lt;br /&gt;
	return title, nsText, qid&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Lookup Commons gallery in Wikidata&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = QID of current article&lt;br /&gt;
--   fetch = whether to lookup Commons sitelink (bool)&lt;br /&gt;
--   commonsSitelink = default value for Commons sitelink&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   categoryLink = name of Commons category, nil if nothing is found&lt;br /&gt;
--   consistent = multiple wikidata fields are examined: are they consistent?&lt;br /&gt;
--   commonsSitelink = commons sitelink for current article&lt;br /&gt;
local function _lookupGallery(qid,fetch,commonsSitelink)&lt;br /&gt;
	if not wb or not _validQID(qid) then&lt;br /&gt;
		return nil, true, nil&lt;br /&gt;
	end&lt;br /&gt;
	qid = qid:upper()&lt;br /&gt;
	local galleryLink = nil&lt;br /&gt;
	local consistent = true&lt;br /&gt;
	-- look up commons sitelink for article, use if not category&lt;br /&gt;
	if fetch then&lt;br /&gt;
		commonsSitelink = wb.getSitelink(qid,&amp;quot;commonswiki&amp;quot;) or commonsSitelink&lt;br /&gt;
	end&lt;br /&gt;
	if commonsSitelink and mw.ustring.sub(commonsSitelink,1,9) ~= &amp;quot;Category:&amp;quot; then&lt;br /&gt;
		galleryLink = commonsSitelink&lt;br /&gt;
	end&lt;br /&gt;
	-- P935 is the &amp;quot;commons gallery&amp;quot; property for this article&lt;br /&gt;
	local bestP935 = wb.getBestStatements(qid, &amp;quot;P935&amp;quot;)&lt;br /&gt;
	local P935 = bestP935 and bestP935[1]&lt;br /&gt;
	if P935 and P935.mainsnak.datavalue then&lt;br /&gt;
		local gallery = P935.mainsnak.datavalue.value&lt;br /&gt;
		if galleryLink and galleryLink ~= gallery then&lt;br /&gt;
			consistent = false&lt;br /&gt;
		else&lt;br /&gt;
			galleryLink = gallery&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return galleryLink, consistent, commonsSitelink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Find fallback category by looking up Commons sitelink of different page&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--    qid = QID for current article&lt;br /&gt;
--    property = property that refers to other article whose sitelink to return&lt;br /&gt;
-- Returns: either category-stripped name of article, or nil&lt;br /&gt;
local function _lookupFallback(qid,property)&lt;br /&gt;
	if not wb or not _validQID(qid) or not _validProp(property) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	qid = qid:upper()&lt;br /&gt;
	property = property:upper()&lt;br /&gt;
	-- If property exists on current article, get value (other article qid)&lt;br /&gt;
	local best = wb.getBestStatements(qid, property)&lt;br /&gt;
	local value = best and best[1]&lt;br /&gt;
	if value and value.mainsnak.datavalue and value.mainsnak.datavalue.value.id then&lt;br /&gt;
		-- Look up Commons sitelink of other article&lt;br /&gt;
		local sitelink = wb.getSitelink(value.mainsnak.datavalue.value.id,&amp;quot;commonswiki&amp;quot;)&lt;br /&gt;
		-- Check to see if it starts with &amp;quot;Category:&amp;quot;. If so, strip it and return&lt;br /&gt;
		if sitelink and mw.ustring.sub(sitelink,1,9) == &amp;quot;Category:&amp;quot; then&lt;br /&gt;
			return mw.ustring.sub(sitelink,10)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Find Commons category by looking in wikidata&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = QID of current article&lt;br /&gt;
--   fetch = whether to lookup Commons sitelink (bool)&lt;br /&gt;
--   commonsSitelink = default value for Commons sitelink&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   categoryLink = name of Commons category, nil if nothing is found&lt;br /&gt;
--   consistent = multiple wikidata fields are examined: are they consistent?&lt;br /&gt;
--   commonsSitelink = commons sitelink for current article&lt;br /&gt;
local function _lookupCategory(qid, fetch, commonsSitelink)&lt;br /&gt;
	if not wb or not _validQID(qid) then&lt;br /&gt;
		return nil, true, nil&lt;br /&gt;
	end&lt;br /&gt;
	qid = qid:upper()&lt;br /&gt;
	local categoryLink = nil&lt;br /&gt;
	local consistent = true&lt;br /&gt;
	-- look up commons sitelink for article, use if starts with &amp;quot;Category:&amp;quot;&lt;br /&gt;
	if fetch then&lt;br /&gt;
		commonsSitelink = wb.getSitelink(qid,&amp;quot;commonswiki&amp;quot;) or commonsSitelink&lt;br /&gt;
	end&lt;br /&gt;
	if commonsSitelink and mw.ustring.sub(commonsSitelink,1,9) == &amp;quot;Category:&amp;quot; then&lt;br /&gt;
		categoryLink = mw.ustring.sub(commonsSitelink,10)&lt;br /&gt;
	end&lt;br /&gt;
	-- P910 is the &amp;quot;topic&#039;s main category&amp;quot;. Look for commons sitelink there&lt;br /&gt;
	local fallback = _lookupFallback(qid,&amp;quot;P910&amp;quot;)&lt;br /&gt;
	if fallback then&lt;br /&gt;
		if categoryLink and categoryLink ~= fallback then&lt;br /&gt;
			consistent = false&lt;br /&gt;
			qid = nil&lt;br /&gt;
		else&lt;br /&gt;
			categoryLink = fallback&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- P1754 is the &amp;quot;list&#039;s main category&amp;quot;. Look for commons sitelink there&lt;br /&gt;
	fallback = _lookupFallback(qid,&amp;quot;P1754&amp;quot;)&lt;br /&gt;
	if fallback then&lt;br /&gt;
		if categoryLink and categoryLink ~= fallback then&lt;br /&gt;
			consistent = false&lt;br /&gt;
			qid = nil&lt;br /&gt;
		else&lt;br /&gt;
			categoryLink = fallback&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
    -- P373 is the &amp;quot;commons category&amp;quot; property for this article. This is&lt;br /&gt;
    -- a low-quality field, so should only be used as a last resort.&lt;br /&gt;
    if categoryLink == nil and _validQID(qid) then&lt;br /&gt;
	    local bestP373 = wb.getBestStatements(qid, &amp;quot;P373&amp;quot;)&lt;br /&gt;
	    local P373 = bestP373 and bestP373[1]&lt;br /&gt;
	    if P373 and P373.mainsnak.datavalue then&lt;br /&gt;
		    categoryLink = P373.mainsnak.datavalue.value&lt;br /&gt;
		    consistent = true  -- P373 is never used if anything else is available&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return categoryLink, consistent, commonsSitelink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Does the article have a Commons gallery, and is it consistent?&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = QID to lookup in wikidata (for testing only)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   filename at Commons, bool: is wikidata consistent for this article?&lt;br /&gt;
function p._hasGalleryConsistent(qid)&lt;br /&gt;
	local wp_title, wp_ns&lt;br /&gt;
	wp_title, wp_ns, qid = _getTitleQID(qid)&lt;br /&gt;
	return _lookupGallery(qid,true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Does the article have a corresponding Commons gallery?&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = QID to lookup in wikidata (for testing only)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   filename at Commons if so, false if not&lt;br /&gt;
function p._hasGallery(qid)&lt;br /&gt;
	local galleryLink, consistent = p._hasGalleryConsistent(qid)&lt;br /&gt;
	return consistent and galleryLink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Does the article have a Commons category? Is wikidata consistent for that?&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = QID to lookup in wikidata (for testing only)&lt;br /&gt;
--   prefix = whether to add &amp;quot;Category:&amp;quot; to return string (default true)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   filename at Commons, bool: consistent&lt;br /&gt;
function p._hasCategoryConsistent(qid,prefix)&lt;br /&gt;
	if prefix == nil then&lt;br /&gt;
		prefix = true&lt;br /&gt;
	end&lt;br /&gt;
	local wp_title, wp_ns&lt;br /&gt;
	wp_title, wp_ns, qid = _getTitleQID(qid)&lt;br /&gt;
	local categoryLink, consistent = _lookupCategory(qid,true)&lt;br /&gt;
	if categoryLink and prefix then&lt;br /&gt;
		categoryLink = &amp;quot;Category:&amp;quot;..categoryLink&lt;br /&gt;
	end&lt;br /&gt;
	return categoryLink, consistent&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Does the article have a corresponding Commons category?&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   qid = QID to lookup in wikidata (for testing only)&lt;br /&gt;
--   prefix = whether to add &amp;quot;Category:&amp;quot; to return string (default true)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   filename at Commons if so, blank if not&lt;br /&gt;
function p._hasCategory(qid,prefix)&lt;br /&gt;
	local categoryLink, consistent = p._hasCategoryConsistent(qid,prefix)&lt;br /&gt;
	return consistent and categoryLink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create Commons link corresponding to current article&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   namespace = namespace in Commons (&amp;quot;&amp;quot; for galleries)&lt;br /&gt;
--   default = use as Commons link, don&#039;t access wikidata&lt;br /&gt;
--   search = string to search for&lt;br /&gt;
--   fallback = string to search for if wikidata fails&lt;br /&gt;
--   formatting = formatting parameters&lt;br /&gt;
--   qid = QID to lookup in wikidata (for testing only)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   formatted wikilink to Commons in specified namespace&lt;br /&gt;
function p._getCommons(namespace,default,search,fallback,formatting,qid)&lt;br /&gt;
	local nsColon&lt;br /&gt;
	if not namespace or namespace == &amp;quot;&amp;quot; then&lt;br /&gt;
		nsColon = &amp;quot;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		nsColon = namespace..&amp;quot;:&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if default then&lt;br /&gt;
		return &amp;quot;[[Commons:&amp;quot;..nsColon..default..&amp;quot;|&amp;quot;.._formatResult(default,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if search then&lt;br /&gt;
		return &amp;quot;[[Commons:Special:Search/&amp;quot;..nsColon..search..&amp;quot;|&amp;quot;.._formatResult(search,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local wp_title, wp_ns&lt;br /&gt;
	wp_title, wp_ns, qid = _getTitleQID(qid)&lt;br /&gt;
	local commonsLink = nil&lt;br /&gt;
	local consistent = true&lt;br /&gt;
	if nsColon == &amp;quot;&amp;quot; then&lt;br /&gt;
		commonsLink, consistent = _lookupGallery(qid,true)&lt;br /&gt;
	elseif namespace:lower() == &amp;quot;category&amp;quot; then&lt;br /&gt;
		commonsLink, consistent = _lookupCategory(qid,true)&lt;br /&gt;
	end&lt;br /&gt;
	-- use wikidata if consistent&lt;br /&gt;
	if commonsLink and consistent then&lt;br /&gt;
		return &amp;quot;[[Commons:&amp;quot;..nsColon..commonsLink..&amp;quot;|&amp;quot;.._formatResult(commonsLink,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- if not consistent, fall back to search and add to tracking cat&lt;br /&gt;
	-- construct default result (which searches for title)&lt;br /&gt;
	local searchResult = &amp;quot;[[Commons:Special:Search/&amp;quot;..nsColon..(fallback or wp_title)&lt;br /&gt;
		..&amp;quot;|&amp;quot;.._formatResult(fallback or wp_title,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	if not consistent and wp_ns == &amp;quot;&amp;quot; then&lt;br /&gt;
		local friendlyNS&lt;br /&gt;
		if nsColon == &amp;quot;&amp;quot; then&lt;br /&gt;
			friendlyNS = &amp;quot;gallery&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			friendlyNS = namespace:lower()&lt;br /&gt;
		end&lt;br /&gt;
		searchResult = searchResult..&amp;quot;[[Category:Inconsistent wikidata for Commons &amp;quot;..friendlyNS..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return searchResult&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Returns &amp;quot;best&amp;quot; Commons link: first look for gallery, then try category&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   default = use as Commons link, don&#039;t access wikidata&lt;br /&gt;
--   search = string to search for&lt;br /&gt;
--   fallback = string to search for if wikidata lookup fails&lt;br /&gt;
--   formatting = formatting parameters&lt;br /&gt;
--   qid = QID to lookup in wikidata (for testing only)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   formatted wikilink to Commons &amp;quot;best&amp;quot; landing page&lt;br /&gt;
function p._getGalleryOrCategory(default, search, fallback, formatting, qid)&lt;br /&gt;
	if default then&lt;br /&gt;
		return &amp;quot;[[Commons:&amp;quot;..default..&amp;quot;|&amp;quot;.._formatResult(default,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if search then&lt;br /&gt;
		return &amp;quot;[[Commons:Special:Search/&amp;quot;..search..&amp;quot;|&amp;quot;.._formatResult(search,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local wp_title, wp_ns&lt;br /&gt;
	wp_title, wp_ns, qid = _getTitleQID(qid)&lt;br /&gt;
	local trackingCats = &amp;quot;&amp;quot;&lt;br /&gt;
	local galleryLink, consistent, commonsSitelink = _lookupGallery(qid,true)&lt;br /&gt;
	-- use wikidata if either sitelink or P935 exist, and they both agree&lt;br /&gt;
	if galleryLink and consistent then&lt;br /&gt;
		return &amp;quot;[[Commons:&amp;quot;..galleryLink..&amp;quot;|&amp;quot;.._formatResult(galleryLink,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if not consistent and wp_ns == &amp;quot;&amp;quot; then&lt;br /&gt;
		trackingCats = &amp;quot;[[Category:Inconsistent wikidata for Commons gallery]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- if gallery is not good, fall back looking for category&lt;br /&gt;
	local categoryLink&lt;br /&gt;
	categoryLink, consistent = _lookupCategory(qid,false,commonsSitelink)&lt;br /&gt;
	if categoryLink and consistent then&lt;br /&gt;
		return &amp;quot;[[Commons:Category:&amp;quot;..categoryLink..&amp;quot;|&amp;quot;.._formatResult(categoryLink,formatting)..&amp;quot;]]&amp;quot;..trackingCats&lt;br /&gt;
	end&lt;br /&gt;
	if not consistent and wp_ns == &amp;quot;&amp;quot; then&lt;br /&gt;
		trackingCats = trackingCats..&amp;quot;[[Category:Inconsistent wikidata for Commons category]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- return search result looking for title as last attempt&lt;br /&gt;
	return &amp;quot;[[Commons:Special:Search/&amp;quot; .. (fallback or wp_title) ..&lt;br /&gt;
		&amp;quot;|&amp;quot; .. _formatResult(fallback or wp_title,formatting) .. &amp;quot;]]&amp;quot; .. trackingCats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Return link(s) Commons gallery, or category, or both from wikidata&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   defaultGallery = default gallery link to use, instead of wikidata&lt;br /&gt;
--   defaultCategory = default category link to use, instead of wikidata&lt;br /&gt;
--   categoryText = if both gallery and category, text to use in category link (&amp;quot;category&amp;quot; by default)&lt;br /&gt;
--   oneSearch = only emit one search result&lt;br /&gt;
--   formatting = formatting parameters&lt;br /&gt;
--   qid = qid of page to lookup in wikidata (testing only)&lt;br /&gt;
function p._getGalleryAndCategory(defaultGallery, defaultCategory, &lt;br /&gt;
	categoryText, oneSearch, formatting, qid&lt;br /&gt;
	)&lt;br /&gt;
	local wp_title, wp_ns&lt;br /&gt;
	wp_title, wp_ns, qid = _getTitleQID(qid)&lt;br /&gt;
	categoryText = categoryText or &amp;quot;category&amp;quot;&lt;br /&gt;
	local trackingCats = &amp;quot;&amp;quot;&lt;br /&gt;
	local galleryLink, galleryConsistent&lt;br /&gt;
	local commonsSitelink = nil&lt;br /&gt;
	if defaultGallery then&lt;br /&gt;
		galleryLink = defaultGallery&lt;br /&gt;
		galleryConsistent = true&lt;br /&gt;
	else&lt;br /&gt;
		galleryLink, galleryConsistent, commonsSitelink = _lookupGallery(qid,true)&lt;br /&gt;
	end&lt;br /&gt;
	local galleryGood = galleryLink and galleryConsistent&lt;br /&gt;
	if not galleryConsistent and wp_ns == &amp;quot;&amp;quot; then&lt;br /&gt;
		trackingCats = &amp;quot;[[Category:Inconsistent wikidata for Commons gallery]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local categoryLink, categoryConsistent&lt;br /&gt;
	if defaultCategory then&lt;br /&gt;
		categoryLink = defaultCategory&lt;br /&gt;
		categoryConsistent = true&lt;br /&gt;
	else&lt;br /&gt;
		categoryLink, categoryConsistent = _lookupCategory(qid,defaultGallery,commonsSitelink)&lt;br /&gt;
	end&lt;br /&gt;
	local categoryGood = categoryLink and categoryConsistent&lt;br /&gt;
	if not categoryConsistent and wp_ns == &amp;quot;&amp;quot; then&lt;br /&gt;
		trackingCats = trackingCats..&amp;quot;[[Category:Inconsistent wikidata for Commons category]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local firstLink&lt;br /&gt;
	-- construct default result (which searches for title)&lt;br /&gt;
	local searchResult = &amp;quot;[[Commons:Special:Search/&amp;quot;..wp_title..&amp;quot;|&amp;quot;.._formatResult(wp_title,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	if not oneSearch then&lt;br /&gt;
		searchResult = searchResult..&amp;quot; ([[Commons:Special:Search/Category:&amp;quot;..wp_title..&amp;quot;|&amp;quot;..categoryText..&amp;quot;]])&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local linkText = nil&lt;br /&gt;
	if galleryGood then&lt;br /&gt;
		firstLink = galleryLink&lt;br /&gt;
		linkText = galleryLink&lt;br /&gt;
	elseif categoryGood then&lt;br /&gt;
		firstLink = &amp;quot;Category:&amp;quot;..categoryLink&lt;br /&gt;
		linkText = categoryLink&lt;br /&gt;
	else&lt;br /&gt;
		return searchResult..trackingCats&lt;br /&gt;
	end&lt;br /&gt;
	local resultVal = &amp;quot;[[Commons:&amp;quot;..firstLink..&amp;quot;|&amp;quot;.._formatResult(linkText,formatting)..&amp;quot;]]&amp;quot;&lt;br /&gt;
	if galleryGood and categoryGood then&lt;br /&gt;
		resultVal = resultVal..&amp;quot; ([[Commons:Category:&amp;quot;..categoryLink..&amp;quot;|&amp;quot;..categoryText..&amp;quot;]])&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return resultVal..trackingCats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Compare two titles with their namespaces stripped&lt;br /&gt;
local function titleMatch(s1,s2)&lt;br /&gt;
	s1 = s1 or &amp;quot;&amp;quot;&lt;br /&gt;
	s2 = s2 or &amp;quot;&amp;quot;&lt;br /&gt;
    s1 = mw.ustring.gsub(s1,&amp;quot;^[^:]+:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
    s2 = mw.ustring.gsub(s2,&amp;quot;^[^:]+:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
    return s1 == s2&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local galleryTrackingCats = {&lt;br /&gt;
	commons_link_on_wikidata = &#039;[[Category:Commons link is on Wikidata]]&#039;,&lt;br /&gt;
	commons_link_defined_as_pagename = &#039;[[Category:Commons link is defined as the pagename]]&#039;,&lt;br /&gt;
	commons_link_locally_defined = &#039;[[Category:Commons link is locally defined]]&#039;,&lt;br /&gt;
	commons_link_from_wikidata = &#039;[[Category:Commons link from Wikidata]]&#039;,&lt;br /&gt;
	commons_link_is_pagename = &#039;[[Category:Commons link is the pagename]]&#039;,&lt;br /&gt;
	inconsistent = &#039;[[Category:Inconsistent wikidata for Commons gallery]]&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local categoryTrackingCats = {&lt;br /&gt;
		commons_link_on_wikidata = &#039;[[Category:Commons category link is on Wikidata]]&#039;,&lt;br /&gt;
		commons_link_defined_as_pagename = &#039;[[Category:Commons category link is defined as the pagename]]&#039;,&lt;br /&gt;
		commons_link_locally_defined = &#039;[[Category:Commons category link is locally defined]]&#039;,&lt;br /&gt;
		commons_link_from_wikidata = &#039;[[Category:Commons category link from Wikidata]]&#039;,&lt;br /&gt;
		commons_link_is_pagename = &#039;[[Category:Commons category link is the pagename]]&#039;,&lt;br /&gt;
		inconsistent = &#039;[[Category:Inconsistent wikidata for Commons category]]&#039;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
local function selectTrackingCat(trackingCats,wikidata,consistent,default,title)&lt;br /&gt;
	if not consistent then&lt;br /&gt;
		return trackingCats.inconsistent&lt;br /&gt;
	end&lt;br /&gt;
	if default then&lt;br /&gt;
	-- construct warning message&lt;br /&gt;
		if default == wikidata then&lt;br /&gt;
			return trackingCats.commons_link_on_wikidata&lt;br /&gt;
		end&lt;br /&gt;
		local warning = &amp;quot;&amp;quot;&lt;br /&gt;
		if wikidata then&lt;br /&gt;
			local generateWarning = require(&#039;Module:If preview&#039;)._warning&lt;br /&gt;
			warning = generateWarning({&lt;br /&gt;
					&amp;quot;Commons link does not match Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]&amp;quot;&lt;br /&gt;
				})&lt;br /&gt;
		end&lt;br /&gt;
		if titleMatch(default,title) then&lt;br /&gt;
			return trackingCats.commons_link_defined_as_pagename .. warning&lt;br /&gt;
		end&lt;br /&gt;
		return trackingCats.commons_link_locally_defined .. warning&lt;br /&gt;
	end&lt;br /&gt;
	if wikidata then&lt;br /&gt;
		return trackingCats.commons_link_from_wikidata&lt;br /&gt;
	end&lt;br /&gt;
	return trackingCats.commons_link_is_pagename&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Figure out tracking categories and editor warnings&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   default = Commons link argument passed to template&lt;br /&gt;
--   fetchGallery = whether to fetch a gallery from Wikidata&lt;br /&gt;
--   fetchCategory = whether to fetch a category from Wikidata&lt;br /&gt;
--   qid = force a qid for testing&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   tracking category and possible user warning&lt;br /&gt;
--&lt;br /&gt;
-- Note: the logic for the tracking is quite different than the logic&lt;br /&gt;
-- for generating Commons links (above). Thus, it is separated into another&lt;br /&gt;
-- function for code clarity and maintainability. This should not seriously &lt;br /&gt;
-- affect performance: server time is dominated by fetching wikidata entities,&lt;br /&gt;
-- and those entities should be cached and shared between the Commons generating&lt;br /&gt;
-- code and this tracking code.&lt;br /&gt;
function p._tracking(default, fetchGallery, fetchCategory, qid)&lt;br /&gt;
	local title, wp_ns, wp_qid = _getTitleQID(qid,true)&lt;br /&gt;
	if wp_ns ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		title = wp_ns..&amp;quot;:&amp;quot;..title&lt;br /&gt;
	end&lt;br /&gt;
	-- only track if test or namespace=article or namespace=category&lt;br /&gt;
	if not (qid or wp_ns == &amp;quot;&amp;quot; or wp_ns == &amp;quot;Category&amp;quot;) then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- determine title and namespace of wikidata and wp article&lt;br /&gt;
	local wikidata = nil&lt;br /&gt;
	local consistent = nil&lt;br /&gt;
	-- Tracking code works for all 4 cases of states of fetchGallery/Category&lt;br /&gt;
	-- fetchGallery takes precedence&lt;br /&gt;
	if fetchGallery then&lt;br /&gt;
		wikidata, consistent = p._hasGalleryConsistent(qid)&lt;br /&gt;
		if default or not fetchCategory or (consistent and wikidata) then&lt;br /&gt;
			return selectTrackingCat(galleryTrackingCats,wikidata,consistent,&lt;br /&gt;
				                     default,title)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
    if fetchCategory then&lt;br /&gt;
		local cat_wikidata, cat_consistent = p._hasCategoryConsistent(qid,true)&lt;br /&gt;
		if not fetchGallery or (cat_consistent and cat_wikidata) then&lt;br /&gt;
			return selectTrackingCat(categoryTrackingCats,cat_wikidata,&lt;br /&gt;
			                    	 cat_consistent,default,title)&lt;br /&gt;
		end&lt;br /&gt;
		return selectTrackingCat(galleryTrackingCats,wikidata,consistent,&lt;br /&gt;
			                     default,title)&lt;br /&gt;
    end&lt;br /&gt;
	return &amp;quot;&amp;quot; -- nothing fetched, nothing tracked&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function _createFormatting(args)&lt;br /&gt;
	local formatting = {}&lt;br /&gt;
	formatting.linktext = args.linktext&lt;br /&gt;
    local yesNo = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
	formatting.lcfirst = yesNo(args.lcfirst)&lt;br /&gt;
	formatting.bold = yesNo(args.bold)&lt;br /&gt;
	formatting.italic = yesNo(args.italic)&lt;br /&gt;
	formatting.nowrap = yesNo(args.nowrap)&lt;br /&gt;
	return formatting&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Testing-only entry point for _getTitleQID&lt;br /&gt;
function p.getTitleQID(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	local text, ns, qid = _getTitleQID(args[1],args[2])&lt;br /&gt;
	return text..&amp;quot;,&amp;quot;..ns..&amp;quot;,&amp;quot;..(qid or &amp;quot;nil&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Testing-only entry point for _lookupFallback&lt;br /&gt;
function p.lookupFallback(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	local fallback = _lookupFallback(args[1],args[2])&lt;br /&gt;
	return fallback or &amp;quot;nil&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Find the Commons gallery page associated with article&lt;br /&gt;
function p.getGallery(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	return p._getCommons(&amp;quot;&amp;quot;,args[1],args.search,args.fallback,_createFormatting(args),args.qid)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Find the Commons category page associated with article&lt;br /&gt;
function p.getCategory(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	local retval = p._getCommons(&amp;quot;Category&amp;quot;, args[1], &lt;br /&gt;
		args.search, args.fallback, _createFormatting(args), args.qid&lt;br /&gt;
	)&lt;br /&gt;
	if args.tracking then&lt;br /&gt;
		local default = nil&lt;br /&gt;
		if args[1] then&lt;br /&gt;
			default = &amp;quot;Category:&amp;quot;..args[1]&lt;br /&gt;
		end&lt;br /&gt;
		retval = retval..p._tracking(default, false, true, args.qid)&lt;br /&gt;
	end&lt;br /&gt;
	return retval&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getGalleryOrCategory(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	local retval = p._getGalleryOrCategory(&lt;br /&gt;
		args[1], args.search, args.fallback, _createFormatting(args), args.qid&lt;br /&gt;
	)&lt;br /&gt;
	if args.tracking then&lt;br /&gt;
		retval = retval..p._tracking(args[1],true,true,args.qid)&lt;br /&gt;
	end&lt;br /&gt;
	return retval&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.hasGallery(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	return p._hasGallery(args.qid) or &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.hasCategory(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	return p._hasCategory(args.qid) or &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.hasGalleryOrCategory(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	return p._hasGallery(args.qid) or p._hasCategory(args.qid) or &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getGalleryAndCategory(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	return p._getGalleryAndCategory(args[1], args[2], &lt;br /&gt;
		args.categoryText, args.oneSearch, _createFormatting(args), args.qid)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.tracking(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})&lt;br /&gt;
	return p._tracking(args[1], args.fetchGallery, args.fetchCategory, args.qid)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:Infobox_mapframe&amp;diff=1594</id>
		<title>Module:Infobox mapframe</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Infobox_mapframe&amp;diff=1594"/>
		<updated>2026-04-04T20:31:47Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: guard Infobox_mapframe when Wikibase is unavailable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local mf = require(&#039;Module:Mapframe&#039;)&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
local infoboxImage = require(&#039;Module:InfoboxImage&#039;).InfoboxImage&lt;br /&gt;
&lt;br /&gt;
-- Defaults&lt;br /&gt;
local DEFAULT_FRAME_WIDTH = &amp;quot;270&amp;quot;&lt;br /&gt;
local DEFAULT_FRAME_HEIGHT = &amp;quot;200&amp;quot;&lt;br /&gt;
local DEFAULT_ZOOM = 10&lt;br /&gt;
local DEFAULT_GEOMASK_STROKE_WIDTH = &amp;quot;1&amp;quot;&lt;br /&gt;
local DEFAULT_GEOMASK_STROKE_COLOR = &amp;quot;#777777&amp;quot;&lt;br /&gt;
local DEFAULT_GEOMASK_FILL = &amp;quot;#888888&amp;quot;&lt;br /&gt;
local DEFAULT_GEOMASK_FILL_OPACITY = &amp;quot;0.25&amp;quot;&lt;br /&gt;
local DEFAULT_SHAPE_STROKE_WIDTH = &amp;quot;2&amp;quot;&lt;br /&gt;
local DEFAULT_SHAPE_STROKE_COLOR = &amp;quot;#FF0000&amp;quot;&lt;br /&gt;
local DEFAULT_SHAPE_FILL = &amp;quot;#606060&amp;quot;&lt;br /&gt;
local DEFAULT_SHAPE_FILL_OPACITY = &amp;quot;0.1&amp;quot;&lt;br /&gt;
local DEFAULT_LINE_STROKE_WIDTH = &amp;quot;5&amp;quot;&lt;br /&gt;
local DEFAULT_LINE_STROKE_COLOR = &amp;quot;#FF0000&amp;quot;&lt;br /&gt;
local DEFAULT_MARKER_COLOR = &amp;quot;#5E74F3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local util = {}&lt;br /&gt;
local wb = mw.wikibase&lt;br /&gt;
&lt;br /&gt;
function util.noop(info)&lt;br /&gt;
	local DEFAULT_NOOP_OUTPUT = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	-- uncomment this when debugging&lt;br /&gt;
	-- DEFAULT_NOOP_OUTPUT = &amp;quot;debug: mapframe no-op: &amp;quot; .. info&lt;br /&gt;
	-- mw.log(DEFAULT_NOOP_OUTPUT)&lt;br /&gt;
&lt;br /&gt;
	return DEFAULT_NOOP_OUTPUT&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Trim whitespace from args, and remove empty args&lt;br /&gt;
function util.trimArgs(argsTable)&lt;br /&gt;
	local cleanArgs = {}&lt;br /&gt;
	for key, val in pairs(argsTable) do&lt;br /&gt;
		if type(val) == &#039;string&#039; then&lt;br /&gt;
			val = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
			if val ~= &#039;&#039; then&lt;br /&gt;
				cleanArgs[key] = val&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			cleanArgs[key] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return cleanArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.getBestStatement(item_id, property_id)&lt;br /&gt;
	if not wb or not(item_id) or not(wb.isValidEntityId(item_id)) or not(wb.entityExists(item_id)) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local statements = wb.getBestStatements(item_id, property_id)&lt;br /&gt;
	if not statements or #statements == 0 then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local hasNoValue = ( statements[1].mainsnak and statements[1].mainsnak.snaktype == &#039;novalue&#039; )&lt;br /&gt;
	if hasNoValue then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return statements[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.hasWikidataProperty(item_id, property_id)&lt;br /&gt;
	return util.getBestStatement(item_id, property_id) and true or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.getStatementValue(statement)&lt;br /&gt;
	return statement and statement.mainsnak and statement.mainsnak.datavalue and statement.mainsnak.datavalue.value or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.relatedEntity(item_id, property_id)&lt;br /&gt;
	local value = util.getStatementValue( util.getBestStatement(item_id, property_id) )&lt;br /&gt;
	return value and value.id or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.idType(id)&lt;br /&gt;
	if not id then &lt;br /&gt;
		return nil&lt;br /&gt;
	elseif mw.ustring.match(id, &amp;quot;[Pp]%d+&amp;quot;) then&lt;br /&gt;
		return &amp;quot;property&amp;quot;&lt;br /&gt;
	elseif mw.ustring.match(id, &amp;quot;[Qq]%d+&amp;quot;) then&lt;br /&gt;
		return &amp;quot;item&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.shouldAutoRun(frame)&lt;br /&gt;
	-- Check if should be running&lt;br /&gt;
	local pargs = frame.getParent(frame).args&lt;br /&gt;
	local explicitlyOn = yesno(mw.text.trim(pargs.mapframe or &amp;quot;&amp;quot;)) -- true of false or nil&lt;br /&gt;
	if pargs.coordinates == &amp;quot;&amp;amp;#123;&amp;amp;#123;&amp;amp;#123;coordinates&amp;amp;#125;&amp;amp;#125;&amp;amp;#125;&amp;quot; then explicitlyOn = false end&lt;br /&gt;
	local onByDefault = (explicitlyOn == nil) and yesno(mw.text.trim(frame.args.onByDefault or &amp;quot;&amp;quot;), false) -- true or false&lt;br /&gt;
	return explicitlyOn or onByDefault&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.argsFromAuto(frame)&lt;br /&gt;
	-- Get args from the frame (invoke call) and the parent (template call).&lt;br /&gt;
	-- Frame arguments are default values which are overridden by parent values&lt;br /&gt;
	-- when both are present&lt;br /&gt;
	local args = getArgs(frame, {parentFirst = true})&lt;br /&gt;
&lt;br /&gt;
	-- Discard args not prefixed with &amp;quot;mapframe-&amp;quot;, remove that prefix from those that remain&lt;br /&gt;
	local fixedArgs = {}&lt;br /&gt;
	for name, val in pairs(args) do&lt;br /&gt;
		local fixedName = string.match(name, &amp;quot;^mapframe%-(.+)$&amp;quot; )&lt;br /&gt;
		if fixedName then&lt;br /&gt;
			fixedArgs[fixedName] = val&lt;br /&gt;
		-- allow coord, coordinates, etc to be unprefixed&lt;br /&gt;
		elseif name == &amp;quot;coordinates&amp;quot; or name == &amp;quot;coord&amp;quot; or name == &amp;quot;coordinate&amp;quot; and not fixedArgs.coord then&lt;br /&gt;
			fixedArgs.coord = val&lt;br /&gt;
		-- allow id, qid to be unprefixed, map to id (if not already present)&lt;br /&gt;
		elseif name == &amp;quot;id&amp;quot; or name == &amp;quot;qid&amp;quot; and not fixedArgs.id then&lt;br /&gt;
			fixedArgs.id = val&lt;br /&gt;
        -- allow captionstyle to be unprefixed, for compatibility with [[Module:Infobox]]&lt;br /&gt;
        elseif name == &amp;quot;captionstyle&amp;quot; and not fixedArgs.captionstyle then&lt;br /&gt;
            fixedArgs.captionstyle = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return fixedArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function util.parseCustomWikitext(customWikitext)&lt;br /&gt;
	-- infoboxImage will format an image if given wikitext containing an&lt;br /&gt;
	-- image, or else pass through the wikitext unmodified&lt;br /&gt;
	return infoboxImage({&lt;br /&gt;
		args = {&lt;br /&gt;
			image = customWikitext&lt;br /&gt;
		}&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function util.trackAndWarn(trackingCat, warning)&lt;br /&gt;
    local title = mw.title.getCurrentTitle()&lt;br /&gt;
    local results = title and title.namespace == 0 and trackingCat and &#039;[[Category:&#039;..trackingCat..&#039;]]&#039; or &#039;&#039;&lt;br /&gt;
    if warning then&lt;br /&gt;
        local warn = require(&#039;Module:If preview&#039;)._warning&lt;br /&gt;
        results = results..warn({warning})&lt;br /&gt;
    end&lt;br /&gt;
    return results&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function util.ternary(flag, other)&lt;br /&gt;
    other = other or &#039;other&#039;&lt;br /&gt;
    flag = flag == &#039;none&#039; and &#039;no&#039; or flag&lt;br /&gt;
    local yesNoOut = yesno(flag,other)&lt;br /&gt;
    local yes = (yesNoOut == true)&lt;br /&gt;
    local no = (yesNoOut == false)&lt;br /&gt;
    return yes, no&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p._caption = function(args)&lt;br /&gt;
	if args.caption then&lt;br /&gt;
		return args.caption&lt;br /&gt;
	elseif args.switcher then &lt;br /&gt;
		return util.noop(&amp;quot;no caption or switcher&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local maskItem&lt;br /&gt;
	local maskType = util.idType(args.geomask)&lt;br /&gt;
	if maskType == &#039;item&#039; then&lt;br /&gt;
		maskItem = args.geomask&lt;br /&gt;
	elseif maskType == &amp;quot;property&amp;quot; then&lt;br /&gt;
		maskItem = util.relatedEntity(args.id or (wb and wb.getEntityIdForCurrentPage()), args.geomask)&lt;br /&gt;
	end&lt;br /&gt;
	local maskItemLabel = maskItem and wb and wb.getLabel( maskItem )&lt;br /&gt;
	return maskItemLabel and &amp;quot;Location in &amp;quot;..maskItemLabel&lt;br /&gt;
		or util.noop(&amp;quot;missing maskItemLabel with type &amp;quot; .. (maskType or &amp;quot;nil&amp;quot;) .. &amp;quot; and item &amp;quot; .. (maskItem or &amp;quot;nil&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--A list of types for objects that are too small to allow Kartographer to take over zoom&lt;br /&gt;
local tinyType = {&lt;br /&gt;
    landmark=true,&lt;br /&gt;
    railwaystation=true,&lt;br /&gt;
    edu=true,&lt;br /&gt;
    pass=true,&lt;br /&gt;
    camera=true&lt;br /&gt;
}                 &lt;br /&gt;
&lt;br /&gt;
p._main = function(_config)&lt;br /&gt;
    -- accumulate tracking cats&lt;br /&gt;
    local tracking = &#039;&#039;&lt;br /&gt;
	-- `config` is the args passed to this module&lt;br /&gt;
	local config = util.trimArgs(_config)&lt;br /&gt;
	&lt;br /&gt;
    -- allow alias for config.coord&lt;br /&gt;
    config.coord = config.coord or config.coordinates&lt;br /&gt;
&lt;br /&gt;
	-- Require wikidata item, or specified coords&lt;br /&gt;
	local wikidataId = config.id or (wb and wb.getEntityIdForCurrentPage())&lt;br /&gt;
	if not(wikidataId) and not(config.coord) then&lt;br /&gt;
		return false, util.trackAndWarn(&#039;Pages using infobox mapframe with missing coordinates&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Require coords (specified or from wikidata), so that map will be centred somewhere&lt;br /&gt;
	-- (P625 = coordinate location)&lt;br /&gt;
    local wdCoordinates = util.getStatementValue(util.getBestStatement(wikidataId, &#039;P625&#039;))&lt;br /&gt;
    if not (config.coord or wdCoordinates) then&lt;br /&gt;
		return false, util.trackAndWarn(&#039;Pages using infobox mapframe with missing coordinates&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- `args` is the arguments which will be passed to the mapframe module&lt;br /&gt;
	local args = {}&lt;br /&gt;
&lt;br /&gt;
	-- Some defaults/overrides for infobox presentation&lt;br /&gt;
	args.display = &amp;quot;inline&amp;quot;&lt;br /&gt;
	args.frame = &amp;quot;yes&amp;quot;&lt;br /&gt;
	args.plain = &amp;quot;yes&amp;quot;&lt;br /&gt;
	args[&amp;quot;frame-width&amp;quot;]  = config[&amp;quot;frame-width&amp;quot;] or config.width or DEFAULT_FRAME_WIDTH&lt;br /&gt;
	args[&amp;quot;frame-height&amp;quot;] = config[&amp;quot;frame-height&amp;quot;] or config.height or DEFAULT_FRAME_HEIGHT&lt;br /&gt;
	args[&amp;quot;frame-align&amp;quot;]  = &amp;quot;center&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	args[&amp;quot;frame-coord&amp;quot;] = config[&amp;quot;frame-coordinates&amp;quot;] or config[&amp;quot;frame-coord&amp;quot;]&lt;br /&gt;
	-- Note: config[&amp;quot;coordinates&amp;quot;] or config[&amp;quot;coord&amp;quot;] should not be used for the alignment of the frame;&lt;br /&gt;
	-- see talk page ( https://en.wikipedia.org/wiki/Special:Diff/876492931 )&lt;br /&gt;
&lt;br /&gt;
	-- deprecated lat and long parameters&lt;br /&gt;
	args[&amp;quot;frame-lat&amp;quot;]    = config[&amp;quot;frame-lat&amp;quot;] or config[&amp;quot;frame-latitude&amp;quot;]&lt;br /&gt;
	args[&amp;quot;frame-long&amp;quot;]   = config[&amp;quot;frame-long&amp;quot;] or config[&amp;quot;frame-longitude&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
    -- if zoom isn&#039;t specified from config, first check wikidata&lt;br /&gt;
    local zoom = config.zoom or util.getStatementValue(util.getBestStatement(wikidataId, &#039;P6592&#039;))&lt;br /&gt;
    if not zoom then&lt;br /&gt;
	    -- Calculate zoom from length or area (converted to km or km2)&lt;br /&gt;
	    -- Zoom so that length or area is completely included in mapframe&lt;br /&gt;
	    local getZoom = require(&#039;Module:Infobox dim&#039;)._zoom&lt;br /&gt;
	    zoom = getZoom({length_km=config.length_km, length_mi=config.length_mi,&lt;br /&gt;
                        width_km=config.width_km, width_mi=config.width_mi,&lt;br /&gt;
		                area_km2=config.area_km2, area_mi2=config.area_mi2,&lt;br /&gt;
                        area_ha=config.area_ha, area_acre=config.area_acre,&lt;br /&gt;
                        type=config.type, population=config.population,&lt;br /&gt;
		                viewport_px=math.min(args[&amp;quot;frame-width&amp;quot;],args[&amp;quot;frame-height&amp;quot;]),&lt;br /&gt;
                        latitude=wdCoordinates and wdCoordinates.latitude})&lt;br /&gt;
    end&lt;br /&gt;
    args.zoom = zoom or DEFAULT_ZOOM&lt;br /&gt;
&lt;br /&gt;
	-- Use OSM relation ID if available; otherwise use geoshape if that is available&lt;br /&gt;
	-- (geoshape is required for defunct entities, which are outside OSM&#039;s scope)&lt;br /&gt;
	local hasOsmRelationId = util.hasWikidataProperty(wikidataId, &#039;P402&#039;) -- P402 is OSM relation ID&lt;br /&gt;
	local hasGeoshape = util.hasWikidataProperty(wikidataId, &#039;P3896&#039;) -- P3896 is geoshape&lt;br /&gt;
	local wikidataProvidesGeo = hasOsmRelationId or hasGeoshape&lt;br /&gt;
&lt;br /&gt;
    -- determine marker argument value, determine whether to show marker&lt;br /&gt;
    local forcePoint, suppressPoint = util.ternary(config.point)&lt;br /&gt;
    local forceMarker, suppressMarker = util.ternary(config.marker,true)&lt;br /&gt;
&lt;br /&gt;
    forcePoint = forcePoint or forceMarker&lt;br /&gt;
    suppressPoint = suppressPoint or suppressMarker&lt;br /&gt;
&lt;br /&gt;
    local showMarker = not suppressPoint and (forcePoint or not wikidataProvidesGeo or config.coord)&lt;br /&gt;
    &lt;br /&gt;
    -- wikidata = &amp;quot;yes&amp;quot; turns on both shape and line&lt;br /&gt;
    -- wikidata = &amp;quot;no&amp;quot; turns off both shape and line&lt;br /&gt;
    -- otherwise show both if wikidata provides geo&lt;br /&gt;
    local forceWikidata, suppressWikidata = util.ternary(config.wikidata)&lt;br /&gt;
    local showShape = not suppressWikidata and (forceWikidata or wikidataProvidesGeo or not config.coord)&lt;br /&gt;
    local showLine = showShape&lt;br /&gt;
&lt;br /&gt;
    -- determine shape parameter value, determine whether to show or suppress shape&lt;br /&gt;
    -- also determine whether to invert shape&lt;br /&gt;
    local forceShape, suppressShape = util.ternary(config.shape)&lt;br /&gt;
    showShape = wikidataId and not suppressShape and (forceShape or showShape)&lt;br /&gt;
	local shapeType = config.shape == &#039;inverse&#039; and &#039;shape-inverse&#039; or &#039;shape&#039;&lt;br /&gt;
&lt;br /&gt;
    -- determine line parameter value, determine whether to show or suppress line&lt;br /&gt;
    local forceLine, suppressLine = util.ternary(config.line)&lt;br /&gt;
    showLine = wikidataId and not suppressLine and (forceLine or showLine)&lt;br /&gt;
&lt;br /&gt;
    local maskItem&lt;br /&gt;
	-- Switcher&lt;br /&gt;
	if config.switcher == &amp;quot;zooms&amp;quot; then&lt;br /&gt;
		-- switching between zoom levels&lt;br /&gt;
		local maxZoom = math.max(tonumber(args.zoom), 3) -- what zoom would have otherwise been (if 3 or more, otherwise 3)&lt;br /&gt;
		local minZoom = 1 -- completely zoomed out&lt;br /&gt;
		local midZoom = math.floor((maxZoom + minZoom)/2) -- midway between maxn and min&lt;br /&gt;
		args.switch = &amp;quot;zoomed in, zoomed midway, zoomed out&amp;quot;&lt;br /&gt;
		args.zoom = string.format(&amp;quot;SWITCH:%d,%d,%d&amp;quot;, maxZoom, midZoom, minZoom)&lt;br /&gt;
	elseif config.switcher == &amp;quot;auto&amp;quot; then&lt;br /&gt;
		-- switching between P276 and P131 areas with recursive lookup, e.g. item&#039;s city,&lt;br /&gt;
		-- that city&#039;s state, and that state&#039;s country&lt;br /&gt;
		args.zoom = nil -- let kartographer determine the zoom&lt;br /&gt;
		local maskLabels = {}&lt;br /&gt;
		local maskItems = {}&lt;br /&gt;
		local maskItemId = util.relatedEntity(wikidataId, &amp;quot;P276&amp;quot;) or  util.relatedEntity(wikidataId, &amp;quot;P131&amp;quot;) &lt;br /&gt;
		local maskLabel = wb and wb.getLabel(maskItemId)&lt;br /&gt;
		while maskItemId and maskLabel and mw.text.trim(maskLabel) ~= &amp;quot;&amp;quot; do&lt;br /&gt;
			table.insert(maskLabels, maskLabel)&lt;br /&gt;
			table.insert(maskItems, maskItemId)&lt;br /&gt;
			maskItemId = maskItemId and util.relatedEntity(maskItemId, &amp;quot;P131&amp;quot;)&lt;br /&gt;
			maskLabel = maskItemId and wb and wb.getLabel(maskItemId)&lt;br /&gt;
		end&lt;br /&gt;
		if #maskLabels &amp;gt; 1 then&lt;br /&gt;
			args.switch = table.concat(maskLabels, &amp;quot;###&amp;quot;)&lt;br /&gt;
			maskItem = &amp;quot;SWITCH:&amp;quot; .. table.concat(maskItems, &amp;quot;,&amp;quot;)&lt;br /&gt;
		elseif #maskLabels == 1 then&lt;br /&gt;
			maskItem = maskItemId[1]&lt;br /&gt;
		end&lt;br /&gt;
	elseif config.switcher == &amp;quot;geomasks&amp;quot; and config.geomask then&lt;br /&gt;
		-- switching between items in geomask parameter&lt;br /&gt;
		args.zoom = nil -- let kartographer determine the zoom&lt;br /&gt;
		local separator = (mw.ustring.find(config.geomask, &amp;quot;###&amp;quot;, 0, true ) and &amp;quot;###&amp;quot;) or&lt;br /&gt;
			(mw.ustring.find(config.geomask, &amp;quot;;&amp;quot;, 0, true ) and &amp;quot;;&amp;quot;) or &amp;quot;,&amp;quot;&lt;br /&gt;
		local pattern = &amp;quot;%s*&amp;quot;..separator..&amp;quot;%s*&amp;quot;&lt;br /&gt;
		local maskItems = mw.text.split(mw.ustring.gsub(config.geomask, &amp;quot;SWITCH:&amp;quot;, &amp;quot;&amp;quot;), pattern)&lt;br /&gt;
		local maskLabels = {}&lt;br /&gt;
		if #maskItems &amp;gt; 1 then&lt;br /&gt;
			for i, item in ipairs(maskItems) do&lt;br /&gt;
				table.insert(maskLabels, (wb and wb.getLabel(item)) or item)&lt;br /&gt;
			end&lt;br /&gt;
			args.switch = table.concat(maskLabels, &amp;quot;###&amp;quot;)&lt;br /&gt;
			maskItem = &amp;quot;SWITCH:&amp;quot; .. table.concat(maskItems, &amp;quot;,&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- resolve geomask item id (if not using geomask switcher)&lt;br /&gt;
	if not maskItem then --  &lt;br /&gt;
		local maskType = util.idType(config.geomask)&lt;br /&gt;
		if maskType == &#039;item&#039; then&lt;br /&gt;
			maskItem = config.geomask&lt;br /&gt;
		elseif maskType == &amp;quot;property&amp;quot; then&lt;br /&gt;
			maskItem = util.relatedEntity(wikidataId, config.geomask)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- if asking for shape or line from Wikidata&lt;br /&gt;
    -- and if Wikidata actually has shape/line data (wikidataProvidesGeo=true)&lt;br /&gt;
    -- and if no geomask&lt;br /&gt;
    -- and if zoom not explicitly set&lt;br /&gt;
    -- and if the object size inferred from its type is not too small&lt;br /&gt;
    -- then let Kartographer &amp;quot;take over&amp;quot; zoom&lt;br /&gt;
    if (showLine or showShape) and wikidataProvidesGeo and not maskItem&lt;br /&gt;
       and not config.zoom and not (config.type and tinyType[config.type]) then&lt;br /&gt;
	    args.zoom = nil&lt;br /&gt;
    end	&lt;br /&gt;
&lt;br /&gt;
    if not maskItem and not showShape and not showLine and not showMarker then&lt;br /&gt;
        return false, util.trackAndWarn(&#039;Pages using infobox mapframe with no geometry&#039;,&#039;No geometry specified for mapframe&#039;)&lt;br /&gt;
    end&lt;br /&gt;
	&lt;br /&gt;
	-- Keep track of arg numbering&lt;br /&gt;
	local argNumber = &#039;&#039;&lt;br /&gt;
	local function incrementArgNumber()&lt;br /&gt;
		if argNumber == &#039;&#039; then&lt;br /&gt;
			argNumber = 2&lt;br /&gt;
		else&lt;br /&gt;
			argNumber = argNumber + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Geomask&lt;br /&gt;
	if maskItem then&lt;br /&gt;
		args[&amp;quot;type&amp;quot;..argNumber] = &amp;quot;shape-inverse&amp;quot;&lt;br /&gt;
		args[&amp;quot;id&amp;quot;..argNumber] = maskItem&lt;br /&gt;
		args[&amp;quot;stroke-width&amp;quot;..argNumber] = config[&amp;quot;geomask-stroke-width&amp;quot;] or DEFAULT_GEOMASK_STROKE_WIDTH&lt;br /&gt;
		args[&amp;quot;stroke-color&amp;quot;..argNumber] = config[&amp;quot;geomask-stroke-color&amp;quot;] or config[&amp;quot;geomask-stroke-colour&amp;quot;] or DEFAULT_GEOMASK_STROKE_COLOR&lt;br /&gt;
		args[&amp;quot;fill&amp;quot;..argNumber] = config[&amp;quot;geomask-fill&amp;quot;] or DEFAULT_GEOMASK_FILL&lt;br /&gt;
		args[&amp;quot;fill-opacity&amp;quot;..argNumber] = config[&amp;quot;geomask-fill-opacity&amp;quot;] or DEFAULT_SHAPE_FILL_OPACITY&lt;br /&gt;
		-- Let kartographer determine zoom and position, unless it is explicitly set in config&lt;br /&gt;
		if not config.zoom and not config.switcher then&lt;br /&gt;
			args.zoom = nil&lt;br /&gt;
			args[&amp;quot;frame-coord&amp;quot;] = nil&lt;br /&gt;
			args[&amp;quot;frame-lat&amp;quot;] = nil&lt;br /&gt;
			args[&amp;quot;frame-long&amp;quot;] = nil 	&lt;br /&gt;
			local maskArea = util.getStatementValue( util.getBestStatement(maskItem, &#039;P2046&#039;) )&lt;br /&gt;
		end&lt;br /&gt;
		incrementArgNumber()&lt;br /&gt;
		-- Hack to fix phab:T255932&lt;br /&gt;
		if not args.zoom then&lt;br /&gt;
			args[&amp;quot;type&amp;quot;..argNumber] = &amp;quot;line&amp;quot;&lt;br /&gt;
			args[&amp;quot;id&amp;quot;..argNumber] = maskItem&lt;br /&gt;
			args[&amp;quot;stroke-width&amp;quot;..argNumber] = 0&lt;br /&gt;
			incrementArgNumber()&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Shape (or shape-inverse)&lt;br /&gt;
	if showShape then&lt;br /&gt;
		args[&amp;quot;type&amp;quot;..argNumber] = shapeType&lt;br /&gt;
		if hasGeoshape and not hasOsmRelationId then&lt;br /&gt;
			args[&amp;quot;from&amp;quot;..argNumber] = string.sub( util.getStatementValue( util.getBestStatement(wikidataId, &#039;P3896&#039;) ), 6)&lt;br /&gt;
		elseif config.id then &lt;br /&gt;
			args[&amp;quot;id&amp;quot;..argNumber] = config.id&lt;br /&gt;
		end&lt;br /&gt;
		args[&amp;quot;stroke-width&amp;quot;..argNumber] = config[&amp;quot;shape-stroke-width&amp;quot;] or config[&amp;quot;stroke-width&amp;quot;] or DEFAULT_SHAPE_STROKE_WIDTH&lt;br /&gt;
		args[&amp;quot;stroke-color&amp;quot;..argNumber] = config[&amp;quot;shape-stroke-color&amp;quot;] or config[&amp;quot;shape-stroke-colour&amp;quot;] or config[&amp;quot;stroke-color&amp;quot;] or config[&amp;quot;stroke-colour&amp;quot;] or DEFAULT_SHAPE_STROKE_COLOR&lt;br /&gt;
		args[&amp;quot;fill&amp;quot;..argNumber] = config[&amp;quot;shape-fill&amp;quot;] or DEFAULT_SHAPE_FILL&lt;br /&gt;
		args[&amp;quot;fill-opacity&amp;quot;..argNumber] = config[&amp;quot;shape-fill-opacity&amp;quot;] or DEFAULT_SHAPE_FILL_OPACITY&lt;br /&gt;
		incrementArgNumber()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Line&lt;br /&gt;
	if showLine then&lt;br /&gt;
		args[&amp;quot;type&amp;quot;..argNumber] = &amp;quot;line&amp;quot;&lt;br /&gt;
		if hasGeoshape and not hasOsmRelationId then&lt;br /&gt;
			args[&amp;quot;from&amp;quot;..argNumber] = string.sub( util.getStatementValue( util.getBestStatement(wikidataId, &#039;P3896&#039;) ), 6)&lt;br /&gt;
		elseif config.id then &lt;br /&gt;
			args[&amp;quot;id&amp;quot;..argNumber] = config.id&lt;br /&gt;
		end&lt;br /&gt;
		args[&amp;quot;stroke-width&amp;quot;..argNumber] = config[&amp;quot;line-stroke-width&amp;quot;] or config[&amp;quot;stroke-width&amp;quot;] or DEFAULT_LINE_STROKE_WIDTH&lt;br /&gt;
		args[&amp;quot;stroke-color&amp;quot;..argNumber] = config[&amp;quot;line-stroke-color&amp;quot;] or config[&amp;quot;line-stroke-colour&amp;quot;] or config[&amp;quot;stroke-color&amp;quot;] or config[&amp;quot;stroke-colour&amp;quot;] or DEFAULT_LINE_STROKE_COLOR&lt;br /&gt;
		incrementArgNumber()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Point marker&lt;br /&gt;
	if showMarker then&lt;br /&gt;
		args[&amp;quot;type&amp;quot;..argNumber] = &amp;quot;point&amp;quot;&lt;br /&gt;
		if config.id then args[&amp;quot;id&amp;quot;..argNumber] = config.id end&lt;br /&gt;
		if config.coord then args[&amp;quot;coord&amp;quot;..argNumber] = config.coord end&lt;br /&gt;
		if config.marker then args[&amp;quot;marker&amp;quot;..argNumber] = config.marker end&lt;br /&gt;
		args[&amp;quot;marker-color&amp;quot;..argNumber] = config[&amp;quot;marker-color&amp;quot;] or config[&amp;quot;marker-colour&amp;quot;] or DEFAULT_MARKER_COLOR&lt;br /&gt;
		incrementArgNumber()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- if Wikidata doesn&#039;t link to OSM and the map has no mask or point,&lt;br /&gt;
    -- then center the map on the coordinates either from the infobox or from wikidata&lt;br /&gt;
    if not maskItem and not showMarker and not wikidataProvidesGeo then&lt;br /&gt;
        if config.coord then&lt;br /&gt;
            args[&amp;quot;frame-coord&amp;quot;] = args[&amp;quot;frame-coord&amp;quot;] or config.coord&lt;br /&gt;
        else&lt;br /&gt;
            args[&amp;quot;frame-lat&amp;quot;] = args[&amp;quot;frame-lat&amp;quot;] or wdCoordinates.latitude&lt;br /&gt;
            args[&amp;quot;frame-long&amp;quot;] = args[&amp;quot;frame-long&amp;quot;] or wdCoordinates.longitude&lt;br /&gt;
        end&lt;br /&gt;
        tracking = tracking..util.trackAndWarn(&#039;Pages using infobox mapframe with forced centering&#039;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- protect against nil frame arguments&lt;br /&gt;
    args[&amp;quot;frame-coord&amp;quot;] = args[&amp;quot;frame-coord&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
    args[&amp;quot;frame-lat&amp;quot;] = args[&amp;quot;frame-lat&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
    args[&amp;quot;frame-long&amp;quot;] = args[&amp;quot;frame-long&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local mapframe = args.switch and mf.multi(args) or mf._main(args)&lt;br /&gt;
	tracking = tracking..((showLine or showShape) and not wikidataProvidesGeo &lt;br /&gt;
                          and util.trackAndWarn(&#039;Pages using infobox mapframe without shape links in Wikidata&#039;)&lt;br /&gt;
                          or &#039;&#039;)&lt;br /&gt;
	return true, mapframe.. tracking&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry points&lt;br /&gt;
&lt;br /&gt;
p.main = function(frame)&lt;br /&gt;
	local parent = frame.getParent(frame)&lt;br /&gt;
	local parentArgs = parent.args&lt;br /&gt;
	local _, mapframe = p._main(parentArgs)&lt;br /&gt;
	return frame:preprocess(mapframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.auto = function(frame)&lt;br /&gt;
	if not util.shouldAutoRun(frame) then&lt;br /&gt;
		return util.noop(&amp;quot;auto should not autorun&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local args = util.argsFromAuto(frame)&lt;br /&gt;
	if args.custom then&lt;br /&gt;
		return frame:preprocess(util.parseCustomWikitext(args.custom))&lt;br /&gt;
	end&lt;br /&gt;
	local _, mapframe = p._main(args)&lt;br /&gt;
	return frame:preprocess(mapframe)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.autocaption = function(frame)&lt;br /&gt;
	if not util.shouldAutoRun(frame) then&lt;br /&gt;
		return util.noop(&amp;quot;autocaption should not autorun&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local args = util.argsFromAuto(frame)&lt;br /&gt;
    local caption = p._caption(args)&lt;br /&gt;
    return caption&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.autoWithCaption = function(frame)&lt;br /&gt;
	if not util.shouldAutoRun(frame) then&lt;br /&gt;
		return util.noop(&amp;quot;autoWithCaption should not autorun&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local args = util.argsFromAuto(frame)&lt;br /&gt;
    local wikitext&lt;br /&gt;
    local caption&lt;br /&gt;
    local ok&lt;br /&gt;
    if args.custom then&lt;br /&gt;
        ok = true&lt;br /&gt;
        wikitext = util.parseCustomWikitext(args.custom)&lt;br /&gt;
    else&lt;br /&gt;
        ok, wikitext = p._main(args)&lt;br /&gt;
    end&lt;br /&gt;
    if not ok then return wikitext end&lt;br /&gt;
    wikitext = frame:preprocess(wikitext)&lt;br /&gt;
    caption = p._caption(args)&lt;br /&gt;
    local data = mw.html.create():wikitext(wikitext)&lt;br /&gt;
    data:tag(&#039;div&#039;)&lt;br /&gt;
	    :addClass(&#039;infobox-caption&#039;)&lt;br /&gt;
		:cssText(args.captionstyle)&lt;br /&gt;
		:wikitext(caption)&lt;br /&gt;
    return tostring(data)&lt;br /&gt;
end&lt;br /&gt;
    &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Leaders&amp;diff=1593</id>
		<title>Leaders</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Leaders&amp;diff=1593"/>
		<updated>2026-04-04T20:17:58Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current situation&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| 1995–present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1959–2009&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Mads Christensen]]&lt;br /&gt;
| [[Greenpeace]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1996-2023; 1986-1996&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive; still regarded by followers as leader&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Organizations&amp;diff=1592</id>
		<title>Organizations</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Organizations&amp;diff=1592"/>
		<updated>2026-04-04T20:17:57Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Status&lt;br /&gt;
! Founder&lt;br /&gt;
! Current leader&lt;br /&gt;
! Current name&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Tony Alamo, Susan Alamo&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| 1961&lt;br /&gt;
| Active&lt;br /&gt;
| [[Peter Benenson]]&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987&lt;br /&gt;
| Active&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Active&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Brian Tamaki]], [[Hannah Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| Destiny Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Twitchell]]&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| Robert Earl Burton&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| 1935&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lorin C. Woolley]]&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| FLDS Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Paul Nthenge Mackenzie&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Greenpeace]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Active&lt;br /&gt;
| [[Irving Stowe]], [[Dorothy Stowe]], [[Jim Bohlen]], [[Paul Cote]], [[Bill Darnell]], [[Bob Hunter]], [[Ben Metcalfe]], [[Patrick Moore (consultant)|Patrick Moore]]&lt;br /&gt;
| [[Mads Christensen]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1986&lt;br /&gt;
| Active&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| &lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Closed 1997&lt;br /&gt;
| [[Marshall Applewhite]], [[Bonnie Nettles]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Active&lt;br /&gt;
| Yisrayl Hawkins&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| 1863&lt;br /&gt;
| Active&lt;br /&gt;
| [[Henry Dunant]], [[Gustave Moynier]], [[Guillaume-Henri Dufour]], [[Louis Appia]], [[Théodore Maunoir]]&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Active&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Active&lt;br /&gt;
| Aarón Joaquín González&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| [[Credonia Mwerinde]], [[Joseph Kibweteere]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Closed 1994&lt;br /&gt;
| [[Joseph Di Mambro]], [[Luc Jouret]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Closed 1978&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Active&lt;br /&gt;
| [[John Nelson Darby]]&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| Raëlism&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| 1905&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Harris]]&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| Active&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952&lt;br /&gt;
| Active&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| Shincheonji&lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Active&lt;br /&gt;
| [[Tsunesaburō Makiguchi]], [[Jōsei Toda]], [[Daisaku Ikeda]]&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Charles Dederich Sr.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| The Way International Victor Paul Wierwille&lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Active&lt;br /&gt;
| Elbert &amp;quot;Gene&amp;quot; Spriggs&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Active&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| 1977&lt;br /&gt;
| Active&lt;br /&gt;
| Edir Macedo&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jimmy Wales]], [[Angela Beesley Starling]]&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| Wikimedia Foundation, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1591</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1591"/>
		<updated>2026-04-04T20:17:12Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Status&lt;br /&gt;
! Founder&lt;br /&gt;
! Current leader&lt;br /&gt;
! Current name&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Tony Alamo, Susan Alamo&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| 1961&lt;br /&gt;
| Active&lt;br /&gt;
| [[Peter Benenson]]&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987&lt;br /&gt;
| Active&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Active&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Brian Tamaki]], [[Hannah Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| Destiny Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Twitchell]]&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| Robert Earl Burton&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| 1935&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lorin C. Woolley]]&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| FLDS Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Paul Nthenge Mackenzie&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Greenpeace]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Active&lt;br /&gt;
| [[Irving Stowe]], [[Dorothy Stowe]], [[Jim Bohlen]], [[Paul Cote]], [[Bill Darnell]], [[Bob Hunter]], [[Ben Metcalfe]], [[Patrick Moore (consultant)|Patrick Moore]]&lt;br /&gt;
| [[Mads Christensen]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1986&lt;br /&gt;
| Active&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| &lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Closed 1997&lt;br /&gt;
| [[Marshall Applewhite]], [[Bonnie Nettles]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Active&lt;br /&gt;
| Yisrayl Hawkins&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| 1863&lt;br /&gt;
| Active&lt;br /&gt;
| [[Henry Dunant]], [[Gustave Moynier]], [[Guillaume-Henri Dufour]], [[Louis Appia]], [[Théodore Maunoir]]&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Active&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Active&lt;br /&gt;
| Aarón Joaquín González&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| [[Credonia Mwerinde]], [[Joseph Kibweteere]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Closed 1994&lt;br /&gt;
| [[Joseph Di Mambro]], [[Luc Jouret]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Closed 1978&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Active&lt;br /&gt;
| [[John Nelson Darby]]&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| Raëlism&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| 1905&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Harris]]&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| Active&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952&lt;br /&gt;
| Active&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| Shincheonji&lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Active&lt;br /&gt;
| [[Tsunesaburō Makiguchi]], [[Jōsei Toda]], [[Daisaku Ikeda]]&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Charles Dederich Sr.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| The Way International Victor Paul Wierwille&lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Active&lt;br /&gt;
| Elbert &amp;quot;Gene&amp;quot; Spriggs&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Active&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| 1977&lt;br /&gt;
| Active&lt;br /&gt;
| Edir Macedo&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jimmy Wales]], [[Angela Beesley Starling]]&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| Wikimedia Foundation, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1590</id>
		<title>User:Cultopedia-admin/test50 Leaders Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1590"/>
		<updated>2026-04-04T20:11:53Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current situation&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| 1995–present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1959–2009&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Mads Christensen]]&lt;br /&gt;
| [[Greenpeace]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1996-2023; 1986-1996&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive; still regarded by followers as leader&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1589</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1589"/>
		<updated>2026-04-04T20:11:48Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Status&lt;br /&gt;
! Founder&lt;br /&gt;
! Current leader&lt;br /&gt;
! Current name&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Tony Alamo; Susan Alamo&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amnesty International]]&lt;br /&gt;
| 1961&lt;br /&gt;
| Active&lt;br /&gt;
| [[Peter Benenson]]&lt;br /&gt;
| [[Agnès Callamard]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987&lt;br /&gt;
| Active&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Active&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Active&lt;br /&gt;
| [[John Robert Stevens]], [[Christianity]], [[cult]], [[the United States]], [[Canada]], [[Brazil]], [[Mexico]], [[South Gate, California]], [[John Robert Stevens]], [[Jesus]], [[1 John 1]], [[Jewish festivals]], [[Hebrew Bible]], [[Bible]], [[Trinity]], [[Christ (title)]], [[Spiritual gift]], [[Holy Spirit in Christianity]], [[Paul the Apostle]], [[Kalona, Iowa]], [[Anthony Cox (producer)]], [[Category:Christian new religious movements]], [[Category:Christian organizations established in 1951]], [[Category:1951 establishments in California]]&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| Active&lt;br /&gt;
| Sean Morris, Jake Gardner, Ryan Ringnald&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Elizabeth Clare Prophet]], [[New Age]], [[religious organization]], [[Christianity]], [[Buddhism]], [[Hinduism]], [[Theosophy]], [[Elizabeth Clare Prophet]], [[Gardiner, Montana]], [[Theosophy]], [[&amp;quot;I AM&amp;quot; Activity]], [[Mark L. Prophet]], [[Elizabeth Clare Prophet]], [[Montana]], [[Alzheimer&#039;s disease]], [[Communism]], [[Millenarianism]], [[anti-cult movement]], [[cult]], [[doomsday cult]], [[new religious movement]], [[sect]], [[New Age]], [[Catholic Church]], [[Church militant and church triumphant]], [[Mary Baker Eddy]], [[Alice A. Bailey]], [[Western esotericism]], [[New Age]], [[ascended master]], [[David V. Barrett]], [[Count of St. Germain]], [[Samuel]], [[Joseph]], [[Merlin]], [[Roger Bacon]], [[Christopher Columbus]], [[Francis Bacon]], [[Judeo-Christian]], [[Jesus of Nazareth]], [[Mary Magdalene]], [[reincarnation]], [[Roman Empire]], [[Atlantis]], [[AIDS]], [[Emma Curtis Hopkins]], [[New Thought]], [[right-wing politics]], [[left-wing politics]], [[socialism]], [[macrobiotic diet]], [[Rock music]], [[File:Helena Petrovna Blavatsky.jpg]], [[Theosophy]], [[Helena Blavatsky]], [[Theosophical Society]], [[Guy Ballard]], [[St. Germain (Theosophy)]], [[Mount Shasta]], [[J. Gordon Melton]], [[Golden Age]], [[Francis Ekey]], [[Pentecostalism]], [[Chippewa Falls]], [[Wisconsin]], [[Boston University]], [[political science]], [[Christian Science]], [[File:Lanello, Guru Ma e Tatiana.JPG]], [[Maria Montessori]], [[File:Elizabeth clare prophet 1984.jpg]], [[Pope John XXIII]], [[Virgin Mary]], [[Malibu, California]], [[Mulholland Highway]], [[zoning laws]], [[anti-cult movement]], [[Jonestown]], [[mass suicide]], [[Peoples Temple]], [[brainwashing]], [[File:Ecp-croagh-patrick-1980.jpg]], [[Teton Mountains]], [[Malcolm Forbes]], [[Rajneesh]], [[Ashland, Oregon]], [[Gallatin National Forest]], [[Yellowstone]], [[Wayne Owens]], [[Nichiren Shoshu]], [[File:Taylor Meadows fuel spill 1.jpg]], [[glasnost]], [[Mikhail Gorbachev]], [[Thanksgiving]], [[Internal Revenue Service]], [[anti-cult movement]], [[Chelsea, Vermont]], [[Insider Inc.]], [[Oxford University Press]], [[James R. Lewis (scholar)]], [[anti-cult movement]], [[Cult Awareness Network]], [[new religious movement]], [[cult]], [[Livingston Enterprise]], [[Bozeman Daily Chronicle]], [[sleep deprivation]], [[Newspapers.com]], [[Skeptic (American magazine)]], [[Stephen A. Kent]], [[Church of Scientology]], [[The Family International]], [[Great White Brotherhood]], [[Legends of Mount Shasta]], [[Saint Germain Foundation]], [[Skeptic Magazine]], [[The Skeptics Society]], [[Category:Apocalyptic groups]], [[Category:Ascended Master Teachings]], [[Category:New Age organizations]], [[Category:Religion in Montana]], [[Category:Religious organizations established in 1975]], [[Category:American organizations established in 1975]], [[Category:Religious belief systems founded in the United States]], [[Category:Macrobiotic diet advocates]], [[Category:New religious movements established in the 1970s]], [[Category:Anti-communist organizations in the United States]], [[Category:Park County, Montana]], [[Category:Theosophist groups]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Brian Tamaki]], [[Hannah Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| Destiny Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Twitchell]]&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| Robert Earl Burton&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| 1935&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lorin C. Woolley]]&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| FLDS Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Paul Nthenge Mackenzie&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Greenpeace]]&lt;br /&gt;
| 1971&lt;br /&gt;
| Active&lt;br /&gt;
| [[Irving Stowe]], [[Dorothy Stowe]], [[Jim Bohlen]], [[Paul Cote]], [[Bill Darnell]], [[Bob Hunter]], [[Ben Metcalfe]], [[Patrick Moore (consultant)|Patrick Moore]]&lt;br /&gt;
| [[Mads Christensen]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1986&lt;br /&gt;
| Active&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| &lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Closed 1997&lt;br /&gt;
| [[Marshall Applewhite]], [[Bonnie Nettles]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Active&lt;br /&gt;
| Yisrayl Hawkins&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Committee of the Red Cross]]&lt;br /&gt;
| 1863&lt;br /&gt;
| Active&lt;br /&gt;
| [[Henry Dunant]], [[Gustave Moynier]], [[Guillaume-Henri Dufour]], [[Louis Appia]], [[Théodore Maunoir]]&lt;br /&gt;
| [[Mirjana Spoljaric Egger]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| 1966&lt;br /&gt;
| Active&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Active&lt;br /&gt;
| Aarón Joaquín González&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Charles Manson]], [[Leiden]], [[Boston]], [[Brill Publishers]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| [[Credonia Mwerinde]], [[Joseph Kibweteere]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Closed 1994&lt;br /&gt;
| [[Joseph Di Mambro]], [[Luc Jouret]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Closed 1978&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Active&lt;br /&gt;
| [[John Nelson Darby]], [[Wiley-Blackwell]]&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| Raëlism&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Active&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rotary International]]&lt;br /&gt;
| 1905&lt;br /&gt;
| Active&lt;br /&gt;
| [[Paul Harris]]&lt;br /&gt;
| [[Paul P. Harris]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| Active&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952&lt;br /&gt;
| Active&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| Shincheonji&lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Active&lt;br /&gt;
| [[Tsunesaburō Makiguchi]], [[Jōsei Toda]], [[Daisaku Ikeda]]&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Charles Dederich Sr.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| The Way International Victor Paul Wierwille&lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Active&lt;br /&gt;
| Elbert &amp;quot;Gene&amp;quot; Spriggs&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Active&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| 1977&lt;br /&gt;
| Active&lt;br /&gt;
| Edir Macedo&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Wikimedia Foundation]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Active&lt;br /&gt;
| [[Jimmy Wales]], [[Angela Beesley Starling]]&lt;br /&gt;
| [[Bernadette Meehan]]&lt;br /&gt;
| Wikimedia Foundation, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1469</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1469"/>
		<updated>2026-04-04T18:36:28Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish MariaDB-generated organization overlay page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|11 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|7 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|7 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-01-12&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mariadb.svg|center|920px|Cultopedia evidence graph from MariaDB]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://example.org/2026/negative/news/2 Mock negative news item 2 for 2026] (Mock imported source, 2026-02-04)&lt;br /&gt;
* [https://example.org/2026/positive/news/1 Mock positive news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/neutral/news/1 Mock neutral news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/negative/news/1 Mock negative news item 1 for 2026] (Mock imported source, 2026-01-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/10 Mock negative news item 10 for 2025] (Mock imported source, 2025-10-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/9 Mock negative news item 9 for 2025] (Mock imported source, 2025-09-25)&lt;br /&gt;
* [https://example.org/2025/neutral/news/7 Mock neutral news item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/negative/news/6 Mock negative news item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://example.org/2026/negative/science/4 Mock negative science item 4 for 2026] (Mock imported source, 2026-04-10)&lt;br /&gt;
* [https://example.org/2025/negative/science/12 Mock negative science item 12 for 2025] (Mock imported source, 2025-12-07)&lt;br /&gt;
* [https://example.org/2025/neutral/science/8 Mock neutral science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/negative/science/8 Mock negative science item 8 for 2025] (Mock imported source, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/neutral/science/5 Mock neutral science item 5 for 2025] (Mock imported source, 2025-05-13)&lt;br /&gt;
* [https://example.org/2025/negative/science/4 Mock negative science item 4 for 2025] (Mock imported source, 2025-04-10)&lt;br /&gt;
* [https://example.org/2025/positive/science/3 Mock positive science item 3 for 2025] (Mock imported source, 2025-03-07)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://example.org/2026/negative/video/3 Mock negative video item 3 for 2026] (Mock imported source, 2026-03-07)&lt;br /&gt;
* [https://example.org/2025/negative/video/11 Mock negative video item 11 for 2025] (Mock imported source, 2025-11-04)&lt;br /&gt;
* [https://example.org/2025/negative/video/7 Mock negative video item 7 for 2025] (Mock imported source, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/neutral/video/6 Mock neutral video item 6 for 2025] (Mock imported source, 2025-06-16)&lt;br /&gt;
* [https://example.org/2025/negative/video/15 Mock negative video item 15 for 2025] (Mock imported source, 2025-03-16)&lt;br /&gt;
* [https://example.org/2025/neutral/video/3 Mock neutral video item 3 for 2025] (Mock imported source, 2025-03-07)&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1467</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1467"/>
		<updated>2026-04-04T18:21:09Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish DB-generated organization overlay preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|84 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|43 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|42 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| 2026-01-12&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph.svg|center|920px|Cultopedia mock stacked evidence graph]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://example.org/2026/negative/news/2 Mock negative news item 2 for 2026] (Mock Reuters, 2026-02-04)&lt;br /&gt;
* [https://example.org/2026/positive/news/1 Mock positive news item 1 for 2026] (Mock Reuters, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/neutral/news/1 Mock neutral news item 1 for 2026] (Mock Reuters, 2026-01-01)&lt;br /&gt;
* [https://example.org/2026/negative/news/1 Mock negative news item 1 for 2026] (Mock Reuters, 2026-01-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/10 Mock negative news item 10 for 2025] (Mock Reuters, 2025-10-01)&lt;br /&gt;
* [https://example.org/2025/negative/news/9 Mock negative news item 9 for 2025] (Mock Reuters, 2025-09-25)&lt;br /&gt;
* [https://example.org/2025/neutral/news/7 Mock neutral news item 7 for 2025] (Mock Reuters, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/negative/news/6 Mock negative news item 6 for 2025] (Mock Reuters, 2025-06-16)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://example.org/2026/negative/science/4 Mock negative science item 4 for 2026] (Mock Journal, 2026-04-10)&lt;br /&gt;
* [https://example.org/2025/negative/science/12 Mock negative science item 12 for 2025] (Mock Journal, 2025-12-07)&lt;br /&gt;
* [https://example.org/2025/neutral/science/8 Mock neutral science item 8 for 2025] (Mock Journal, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/negative/science/8 Mock negative science item 8 for 2025] (Mock Journal, 2025-08-22)&lt;br /&gt;
* [https://example.org/2025/neutral/science/5 Mock neutral science item 5 for 2025] (Mock Journal, 2025-05-13)&lt;br /&gt;
* [https://example.org/2025/negative/science/4 Mock negative science item 4 for 2025] (Mock Journal, 2025-04-10)&lt;br /&gt;
* [https://example.org/2025/positive/science/3 Mock positive science item 3 for 2025] (Mock Journal, 2025-03-07)&lt;br /&gt;
* [https://example.org/2025/neutral/science/2 Mock neutral science item 2 for 2025] (Mock Journal, 2025-02-04)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://example.org/2026/negative/video/3 Mock negative video item 3 for 2026] (Mock YouTube, 2026-03-07)&lt;br /&gt;
* [https://example.org/2025/negative/video/11 Mock negative video item 11 for 2025] (Mock YouTube, 2025-11-04)&lt;br /&gt;
* [https://example.org/2025/negative/video/7 Mock negative video item 7 for 2025] (Mock YouTube, 2025-07-19)&lt;br /&gt;
* [https://example.org/2025/neutral/video/6 Mock neutral video item 6 for 2025] (Mock YouTube, 2025-06-16)&lt;br /&gt;
* [https://example.org/2025/negative/video/15 Mock negative video item 15 for 2025] (Mock YouTube, 2025-03-16)&lt;br /&gt;
* [https://example.org/2025/neutral/video/3 Mock neutral video item 3 for 2025] (Mock YouTube, 2025-03-07)&lt;br /&gt;
* [https://example.org/2025/negative/video/3 Mock negative video item 3 for 2025] (Mock YouTube, 2025-03-07)&lt;br /&gt;
* [https://example.org/2025/positive/video/2 Mock positive video item 2 for 2025] (Mock YouTube, 2025-02-04)&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1465</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1465"/>
		<updated>2026-04-04T18:15:57Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: refresh mock overlay preview with generated graph v2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|148 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|27 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|63 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| January 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mockup-v2.svg|center|920px|Cultopedia mock stacked evidence graph]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://www.reuters.com/ Mock Reuters investigation placeholder]&lt;br /&gt;
* [https://www.theguardian.com/ Mock Guardian feature placeholder]&lt;br /&gt;
* [https://apnews.com/ Mock Associated Press explainer placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://scholar.google.com/ Mock peer-reviewed paper placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock book chapter placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock sociology article placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://www.youtube.com/ Mock interview placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock documentary excerpt placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock survivor testimony placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Review notes ===&lt;br /&gt;
* In a full implementation, each item here would carry source type, publication date, organization tags, concern tags, and review status.&lt;br /&gt;
* Timeline items would be generated from the same evidence store, rather than edited manually into the page.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1463</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1463"/>
		<updated>2026-04-04T18:11:44Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: render mock graph-only overlay preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|148 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|27 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|63 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| January 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
[[File:scientology-evidence-graph-mockup.svg|center|900px|Cultopedia mock stacked evidence graph]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://www.reuters.com/ Mock Reuters investigation placeholder]&lt;br /&gt;
* [https://www.theguardian.com/ Mock Guardian feature placeholder]&lt;br /&gt;
* [https://apnews.com/ Mock Associated Press explainer placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://scholar.google.com/ Mock peer-reviewed paper placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock book chapter placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock sociology article placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://www.youtube.com/ Mock interview placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock documentary excerpt placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock survivor testimony placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Review notes ===&lt;br /&gt;
* In a full implementation, each item here would carry source type, publication date, organization tags, concern tags, and review status.&lt;br /&gt;
* Timeline items would be generated from the same evidence store, rather than edited manually into the page.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1460</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1460"/>
		<updated>2026-04-04T18:06:56Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: simplify mock overlay preview to graph-first layout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|148 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|27 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|63 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| January 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year&lt;br /&gt;
! Total mentions&lt;br /&gt;
! Coverage mix&lt;br /&gt;
! Reading&lt;br /&gt;
|-&lt;br /&gt;
| 2021&lt;br /&gt;
| 18&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;9 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;5 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;4 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:90px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:50px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:40px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Mostly negative, but mixed&lt;br /&gt;
|-&lt;br /&gt;
| 2022&lt;br /&gt;
| 31&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;19 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;8 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;4 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:110px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:46px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:24px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Clear negative skew&lt;br /&gt;
|-&lt;br /&gt;
| 2023&lt;br /&gt;
| 49&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;42 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;2 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;5 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:154px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:7px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:19px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Very high negative attention&lt;br /&gt;
|-&lt;br /&gt;
| 2024&lt;br /&gt;
| 38&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;24 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;7 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;7 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:114px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:33px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:33px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Still negative overall&lt;br /&gt;
|-&lt;br /&gt;
| 2025&lt;br /&gt;
| 27&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;15 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;8 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;4 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:100px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:53px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:27px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Negative majority, but lower volume&lt;br /&gt;
|-&lt;br /&gt;
| 2026&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;4 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;1 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;1 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:120px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:30px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:30px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Early-year signal only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://www.reuters.com/ Mock Reuters investigation placeholder]&lt;br /&gt;
* [https://www.theguardian.com/ Mock Guardian feature placeholder]&lt;br /&gt;
* [https://apnews.com/ Mock Associated Press explainer placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://scholar.google.com/ Mock peer-reviewed paper placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock book chapter placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock sociology article placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://www.youtube.com/ Mock interview placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock documentary excerpt placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock survivor testimony placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Review notes ===&lt;br /&gt;
* In a full implementation, each item here would carry source type, publication date, organization tags, concern tags, and review status.&lt;br /&gt;
* Timeline items would be generated from the same evidence store, rather than edited manually into the page.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1459</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1459"/>
		<updated>2026-04-04T18:02:02Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: refresh mock organization overlay preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| [[#cultopedia-news|148 relevant news items]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| [[#cultopedia-science|27 journal articles, books, or academic chapters]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| [[#cultopedia-video|63 videos or documentary references]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| January 2026&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline graph (mock-up) ==&lt;br /&gt;
&#039;&#039;Illustrative fake sample data for product design testing only.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Year&lt;br /&gt;
! Total mentions&lt;br /&gt;
! Coverage mix&lt;br /&gt;
! Reading&lt;br /&gt;
|-&lt;br /&gt;
| 2021&lt;br /&gt;
| 18&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;9 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;5 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;4 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:90px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:50px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:40px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Mostly negative, but mixed&lt;br /&gt;
|-&lt;br /&gt;
| 2022&lt;br /&gt;
| 31&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;19 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;8 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;4 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:110px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:46px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:24px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Clear negative skew&lt;br /&gt;
|-&lt;br /&gt;
| 2023&lt;br /&gt;
| 49&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;42 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;2 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;5 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:154px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:7px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:19px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Very high negative attention&lt;br /&gt;
|-&lt;br /&gt;
| 2024&lt;br /&gt;
| 38&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;24 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;7 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;7 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:114px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:33px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:33px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Still negative overall&lt;br /&gt;
|-&lt;br /&gt;
| 2025&lt;br /&gt;
| 27&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;15 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;8 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;4 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:100px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:53px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:27px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Negative majority, but lower volume&lt;br /&gt;
|-&lt;br /&gt;
| 2026&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#7a1f1f;&amp;quot;&amp;gt;4 negative&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#6f5a00;&amp;quot;&amp;gt;1 neutral&amp;lt;/span&amp;gt; / &amp;lt;span style=&amp;quot;color:#1a6a38;&amp;quot;&amp;gt;1 positive&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;width:180px; height:12px; background:#e8e8e8; border-radius:6px; overflow:hidden;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:120px; height:12px; background:#d96c6c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:30px; height:12px; background:#d9c46c;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display:inline-block; width:30px; height:12px; background:#71E78B;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
| Early-year signal only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline notes (mock-up) ==&lt;br /&gt;
* &#039;&#039;&#039;1977&#039;&#039;&#039; - Sample event: first major allegations of coercive control appear in national press coverage.&lt;br /&gt;
* &#039;&#039;&#039;1991&#039;&#039;&#039; - Sample event: former members publish testimonies describing systematic internal pressure and social isolation.&lt;br /&gt;
* &#039;&#039;&#039;2009&#039;&#039;&#039; - Sample event: court-linked reporting brings renewed attention to labor and confinement allegations.&lt;br /&gt;
* &#039;&#039;&#039;2018&#039;&#039;&#039; - Sample event: scholarly review article compares long-term control patterns across several high-demand groups.&lt;br /&gt;
* &#039;&#039;&#039;2024&#039;&#039;&#039; - Sample event: organization states that past abuses were exceptional and no longer reflect current practice.&lt;br /&gt;
* &#039;&#039;&#039;2026&#039;&#039;&#039; - Sample event: Cultopedia flags the topic for continued monitoring because recent coverage still describes unresolved concerns.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-news&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://www.reuters.com/ Mock Reuters investigation placeholder]&lt;br /&gt;
* [https://www.theguardian.com/ Mock Guardian feature placeholder]&lt;br /&gt;
* [https://apnews.com/ Mock Associated Press explainer placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-science&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://scholar.google.com/ Mock peer-reviewed paper placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock book chapter placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock sociology article placeholder]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cultopedia-video&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://www.youtube.com/ Mock interview placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock documentary excerpt placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock survivor testimony placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Review notes ===&lt;br /&gt;
* In a full implementation, each item here would carry source type, publication date, organization tags, concern tags, and review status.&lt;br /&gt;
* Timeline items would be generated from the same evidence store, rather than edited manually into the page.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1458</id>
		<title>User:Cultopedia-admin/Scientology Overlay Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/Scientology_Overlay_Preview&amp;diff=1458"/>
		<updated>2026-04-04T17:52:24Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia: publish mock organization overlay preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is a &#039;&#039;&#039;mock-up only&#039;&#039;&#039;. All Cultopedia overlay data shown here is illustrative fake sample data for product design testing.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%; background:#fff8ec; border:2px solid #088A8C;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#064B4C; color:#FFF5E9; font-size:115%;&amp;quot; | Cultopedia Evidence Snapshot (Mock-up)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:24%; font-weight:bold;&amp;quot; | Monitoring level&lt;br /&gt;
| style=&amp;quot;background:#ffd7a8;&amp;quot; | High attention&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | News coverage&lt;br /&gt;
| 148 relevant news items&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Scientific publications&lt;br /&gt;
| 27 journal articles, books, or academic chapters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Video/documentary sources&lt;br /&gt;
| 63 videos or documentary references&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Recent activity&lt;br /&gt;
| January 2026&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Key concern areas&lt;br /&gt;
| Coercive control; labor exploitation allegations; family separation allegations; intimidation of critics; financial abuse allegations&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-weight:bold;&amp;quot; | Editorial note&lt;br /&gt;
| This snapshot would eventually be generated from Cultopedia&#039;s own evidence store and clearly separate allegations, court findings, scholarship, and reported reforms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cultopedia timeline (mock-up) ==&lt;br /&gt;
* &#039;&#039;&#039;1977&#039;&#039;&#039; - Sample event: first major allegations of coercive control appear in national press coverage.&lt;br /&gt;
* &#039;&#039;&#039;1991&#039;&#039;&#039; - Sample event: former members publish testimonies describing systematic internal pressure and social isolation.&lt;br /&gt;
* &#039;&#039;&#039;2009&#039;&#039;&#039; - Sample event: court-linked reporting brings renewed attention to labor and confinement allegations.&lt;br /&gt;
* &#039;&#039;&#039;2018&#039;&#039;&#039; - Sample event: scholarly review article compares long-term control patterns across several high-demand groups.&lt;br /&gt;
* &#039;&#039;&#039;2024&#039;&#039;&#039; - Sample event: organization states that past abuses were exceptional and no longer reflect current practice.&lt;br /&gt;
* &#039;&#039;&#039;2026&#039;&#039;&#039; - Sample event: Cultopedia flags the topic for continued monitoring because recent coverage still describes unresolved concerns.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{:Scientology}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cultopedia evidence library (mock-up) ==&lt;br /&gt;
=== News ===&lt;br /&gt;
* [https://www.reuters.com/ Mock Reuters investigation placeholder]&lt;br /&gt;
* [https://www.theguardian.com/ Mock Guardian feature placeholder]&lt;br /&gt;
* [https://apnews.com/ Mock Associated Press explainer placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Scientific and scholarly sources ===&lt;br /&gt;
* [https://scholar.google.com/ Mock peer-reviewed paper placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock book chapter placeholder]&lt;br /&gt;
* [https://scholar.google.com/ Mock sociology article placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Video and documentary sources ===&lt;br /&gt;
* [https://www.youtube.com/ Mock interview placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock documentary excerpt placeholder]&lt;br /&gt;
* [https://www.youtube.com/ Mock survivor testimony placeholder]&lt;br /&gt;
&lt;br /&gt;
=== Review notes ===&lt;br /&gt;
* In a full implementation, each item here would carry source type, publication date, organization tags, concern tags, and review status.&lt;br /&gt;
* Timeline items would be generated from the same evidence store, rather than edited manually into the page.&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1457</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1457"/>
		<updated>2026-04-04T17:20:49Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Status&lt;br /&gt;
! Founder&lt;br /&gt;
! Current leader&lt;br /&gt;
! Current name&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Tony Alamo; Susan Alamo&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Roch Thériault&lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987&lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Reformed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Brian Tamaki]], [[Hannah Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| Destiny Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Paul Twitchell]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Unknown&lt;br /&gt;
| Robert Earl Burton&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| 1935&lt;br /&gt;
| Active&lt;br /&gt;
| [[Lorin C. Woolley]]&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| FLDS Church&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Paul Nthenge Mackenzie&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| &lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Closed 1997&lt;br /&gt;
| [[Marshall Applewhite]], [[Bonnie Nettles]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Unknown&lt;br /&gt;
| Yisrayl Hawkins&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Reformed&lt;br /&gt;
| Aarón Joaquín González&lt;br /&gt;
| &lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| [[Charles Manson]], [[Leiden]], [[Boston]], [[Brill Publishers]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| {{plainlist|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Closed 1994&lt;br /&gt;
| [[Joseph Di Mambro]], [[Luc Jouret]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Closed 1978&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| None&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Unknown&lt;br /&gt;
| [[John Nelson Darby]], [[Wiley-Blackwell]]&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| &lt;br /&gt;
| Raëlism&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| No single leader&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| &lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952&lt;br /&gt;
| Active&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| &lt;br /&gt;
| Shincheonji&lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Reformed&lt;br /&gt;
| {{Plainlist|&lt;br /&gt;
| &lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Charles Dederich Sr.&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Reformed&lt;br /&gt;
| Elbert &amp;quot;Gene&amp;quot; Spriggs&lt;br /&gt;
| &lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Reformed&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Edir Macedo&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1456</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1456"/>
		<updated>2026-04-04T17:11:30Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Founder&lt;br /&gt;
! Status&lt;br /&gt;
! Current name&lt;br /&gt;
! Current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Tony Alamo; Susan Alamo&lt;br /&gt;
| Unknown&lt;br /&gt;
| Alamo Christian Foundation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Roch Thériault&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1955&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Church of Bible Understanding&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| Church of the First Born of the Lamb of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of Wells&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Church Universal and Triumphant&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Colonia Dignidad&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| [[Brian Tamaki]], [[Hannah Tamaki]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Destiny Church&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| Divine Light Mission&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| [[Paul Twitchell]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Eckankar&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Falun Gong&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Robert Earl Burton&lt;br /&gt;
| Unknown&lt;br /&gt;
| Fellowship of Friends&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| 1935&lt;br /&gt;
| [[Lorin C. Woolley]]&lt;br /&gt;
| Active&lt;br /&gt;
| FLDS Church&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Paul Nthenge Mackenzie&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Good News International Ministries&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| &lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| [[Marshall Applewhite]], [[Bonnie Nettles]]&lt;br /&gt;
| Closed 1997&lt;br /&gt;
| Heaven&#039;s Gate&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Yisrayl Hawkins&lt;br /&gt;
| Unknown&lt;br /&gt;
| House of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| International Churches of Christ&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Society for Krishna Consciousness&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Jesus Christians&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Kashi Ashram&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Aarón Joaquín González&lt;br /&gt;
| Reformed&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Love Has Won&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| [[Charles Manson]], [[Leiden]], [[Boston]], [[Brill Publishers]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Manson Family&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| {{plainlist|&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| Movement for the Restoration of the Ten Commandments of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Nation of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| [[Joseph Di Mambro]], [[Luc Jouret]]&lt;br /&gt;
| Closed 1994&lt;br /&gt;
| Order of the Solar Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| Closed 1978&lt;br /&gt;
| Peoples Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| [[John Nelson Darby]], [[Wiley-Blackwell]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Plymouth Brethren Christian Church&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Raëlism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Remnant Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Sahaja Yoga&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| Active&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Shincheonji&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| {{Plainlist|&lt;br /&gt;
| Reformed&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Charles Dederich Sr.&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Synanon&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| The Family (Australian New Age group)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| Active&lt;br /&gt;
| The Family International&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| The Way International&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Elbert &amp;quot;Gene&amp;quot; Spriggs&lt;br /&gt;
| Reformed&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| Reformed&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Edir Macedo&lt;br /&gt;
| Unknown&lt;br /&gt;
| Universal Church of the Kingdom of God&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Word of Faith Fellowship&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1455</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1455"/>
		<updated>2026-04-04T17:10:45Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Founded&lt;br /&gt;
! Status&lt;br /&gt;
! Current name&lt;br /&gt;
! Current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Alamo Christian Foundation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Roch Thériault&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987&lt;br /&gt;
| Reformed&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Reformed&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Church of Bible Understanding&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| Church of the First Born of the Lamb of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| 1951&lt;br /&gt;
| Reformed&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| 2011&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of Wells&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1975&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church Universal and Triumphant&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Colonia Dignidad&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Destiny Church&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| Divine Light Mission&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| 1965&lt;br /&gt;
| Unknown&lt;br /&gt;
| Eckankar&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Falun Gong&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Unknown&lt;br /&gt;
| Fellowship of Friends&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| 1935&lt;br /&gt;
| Active&lt;br /&gt;
| FLDS Church&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| 2003&lt;br /&gt;
| Closed 2019&lt;br /&gt;
| Good News International Ministries&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974&lt;br /&gt;
| Closed 1997&lt;br /&gt;
| Heaven&#039;s Gate&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| 1980&lt;br /&gt;
| Unknown&lt;br /&gt;
| House of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| International Churches of Christ&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| International Society for Krishna Consciousness&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Jesus Christians&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Kashi Ashram&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| 1926&lt;br /&gt;
| Reformed&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Love Has Won&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Manson Family&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| 1989&lt;br /&gt;
| Closed 2000&lt;br /&gt;
| Movement for the Restoration of the Ten Commandments of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Nation of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Closed 1994&lt;br /&gt;
| Order of the Solar Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955&lt;br /&gt;
| Closed 1978&lt;br /&gt;
| Peoples Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| 1848&lt;br /&gt;
| Unknown&lt;br /&gt;
| Plymouth Brethren Christian Church&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Reformed&lt;br /&gt;
| Raëlism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970&lt;br /&gt;
| Reformed&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Remnant Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Sahaja Yoga&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| 1938&lt;br /&gt;
| Reformed&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952&lt;br /&gt;
| Active&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| 1984&lt;br /&gt;
| Reformed&lt;br /&gt;
| Shincheonji&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| 1930&lt;br /&gt;
| Reformed&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| 1958&lt;br /&gt;
| Closed 1991&lt;br /&gt;
| Synanon&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| &lt;br /&gt;
| Closed&lt;br /&gt;
| The Family (Australian New Age group)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| 1968&lt;br /&gt;
| Active&lt;br /&gt;
| The Family International&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| The Way International&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| 1972&lt;br /&gt;
| Reformed&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954&lt;br /&gt;
| Reformed&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Unknown&lt;br /&gt;
| Universal Church of the Kingdom of God&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| &lt;br /&gt;
| Active&lt;br /&gt;
| Word of Faith Fellowship&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1454</id>
		<title>User:Cultopedia-admin/test50 Leaders Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1454"/>
		<updated>2026-04-04T17:02:15Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current situation&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1959–2009&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| 1996-2023; 1986-1996&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive; still regarded by followers as leader&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1453</id>
		<title>User:Cultopedia-admin/test50 Leaders Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1453"/>
		<updated>2026-04-04T16:39:08Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current situation&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive; still leads organization&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1959–2009&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive; listed here as current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| &lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Deceased&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive; still regarded by followers as leader&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1452</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1452"/>
		<updated>2026-04-04T16:39:06Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Status&lt;br /&gt;
! Current name&lt;br /&gt;
! Current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Alamo Christian Foundation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Roch Thériault&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| Active, split successors&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| Active, fragmented&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| Active&lt;br /&gt;
| Church of Bible Understanding&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Church of the First Born of the Lamb of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of Wells&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church Universal and Triumphant&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Colonia Dignidad&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Destiny Church&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Divine Light Mission&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Eckankar&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Falun Gong&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Fellowship of Friends&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| Active&lt;br /&gt;
| FLDS Church&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Good News International Ministries&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Heaven&#039;s Gate&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| House of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Churches of Christ&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Society for Krishna Consciousness&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Jesus Christians&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Kashi Ashram&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Love Has Won&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Manson Family&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Movement for the Restoration of the Ten Commandments of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| Active&lt;br /&gt;
| Nation of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| Active&lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Order of the Solar Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Peoples Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Plymouth Brethren Christian Church&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Raëlism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| Active&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Remnant Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Sahaja Yoga&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| Active&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Shincheonji&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Synanon&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| The Family (Australian New Age group)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| Active&lt;br /&gt;
| The Family International&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| The Way International&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| Active&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Universal Church of the Kingdom of God&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| Active&lt;br /&gt;
| Word of Faith Fellowship&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1451</id>
		<title>User:Cultopedia-admin/test50 Leaders Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1451"/>
		<updated>2026-04-04T16:29:05Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current status&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| &lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)]]&lt;br /&gt;
| &lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| &lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| &lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive, still leading&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| 1959–2009&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| &lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| &lt;br /&gt;
| Alive&lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| &lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive, still regarded as leader by followers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1450</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1450"/>
		<updated>2026-04-04T16:29:04Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Status&lt;br /&gt;
! Current name&lt;br /&gt;
! Current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Alamo Christian Foundation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Roch Thériault&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| Active, split successors&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| Active, fragmented&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| Active&lt;br /&gt;
| Church of Bible Understanding&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Church of the First Born of the Lamb of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| The Living Word Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of Wells&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church Universal and Triumphant&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Colonia Dignidad&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Destiny Church&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Divine Light Mission&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Eckankar&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Falun Gong&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Fellowship of Friends&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| Active&lt;br /&gt;
| FLDS Church&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Good News International Ministries&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Happy Science 幸福の科学&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Heaven&#039;s Gate&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| House of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Churches of Christ&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Society for Krishna Consciousness&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Jesus Christians&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Kashi Ashram&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of the Living God, Pillar and Ground of the Truth, The Light of the World&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Love Has Won&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Manson Family&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Movement for the Restoration of the Ten Commandments of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| Active&lt;br /&gt;
| Nation of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| NXIVM Corporation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| Active&lt;br /&gt;
| Oneness Pentecostalism&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Order of the Solar Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Peoples Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Plymouth Brethren Christian Church&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Raëlism&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| Active&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Remnant Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Sahaja Yoga&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| School of Philosophy and Economic Science&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| Active&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Shincheonji&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Sōka Gakkai&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Synanon&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| The Family (Australian New Age group)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| Active&lt;br /&gt;
| The Family International&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| The Way International&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Twelve Tribes&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| Active&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Universal Church of the Kingdom of God&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| Active&lt;br /&gt;
| Word of Faith Fellowship&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1449</id>
		<title>User:Cultopedia-admin/test50 Leaders Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Leaders_Preview&amp;diff=1449"/>
		<updated>2026-04-04T16:16:47Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Leaders preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Leaders&#039;&#039;&#039; is a curated index of founders, heads, and key figures connected to the organizations Cultopedia is currently tracking.&lt;br /&gt;
&lt;br /&gt;
This page is intentionally selective. It focuses on people who were central to the leadership of the organizations in Cultopedia&#039;s current MVP scope.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Leader&lt;br /&gt;
! Organization or organizations&lt;br /&gt;
! Years in leadership&lt;br /&gt;
! Current status&lt;br /&gt;
|-&lt;br /&gt;
| [[A. C. Bhaktivedanta Swami Prabhupada]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Allison Mack]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Amy Carlson (religious leader)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Benjamin Roden]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bhagwan Shree Rajneesh]]&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| 1970-1990&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Bonnie Nettles]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Brian Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Hales]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Dederich Sr]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Manson]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Clare Bronfman]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Berg]]&lt;br /&gt;
| [[The Family International]] / Children of God&lt;br /&gt;
| 1968-1994&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[David Brandt Berg]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[David Koresh]]&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| 1988-1993&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
| [[Scientology|Church of Scientology]]&lt;br /&gt;
| 1986-present&lt;br /&gt;
| Alive, still leading&lt;br /&gt;
|-&lt;br /&gt;
| [[Doug Kunin]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Edir Macedo]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elbert &amp;quot;Gene&amp;quot; Spriggs]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Elizabeth Clare Prophet]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Emiliano Salinas]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Hannah Tamaki]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Jones]]&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| 1955-1978&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[John Robert Stevens]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Joseph Di Mambro]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Keith Raniere]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[L. Ron Hubbard]]&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| 1952-1986&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Lee Man-hee]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Leon MacLaren]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Luc Jouret]]&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| 1984-1994&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Marshall Applewhite]]&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| 1974-1997&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Minoru Harada]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Naasón Joaquín García]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Salzman]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Paul Nthenge Mackenzie]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raël]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Robert Earl Burton]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryan Ringnald]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ryuho Okawa]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Shoko Asahara]]&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| 1987-1995&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Sun Myung Moon]]&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| 1954-2012&lt;br /&gt;
| Dead&lt;br /&gt;
|-&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints|FLDS Church]]&lt;br /&gt;
| 2002-present&lt;br /&gt;
| Alive, still regarded as leader by followers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Organizations]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1448</id>
		<title>User:Cultopedia-admin/test50 Organizations Preview</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=User:Cultopedia-admin/test50_Organizations_Preview&amp;diff=1448"/>
		<updated>2026-04-04T16:16:46Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: publish generated Organizations preview page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Organizations&#039;&#039;&#039; is a curated index of groups that Cultopedia currently tracks.&lt;br /&gt;
&lt;br /&gt;
Cultopedia imports Wikipedia entries of organizations which, at least by some, have been indicated to be a cult or a sect. This page is intentionally selective and is meant to give a quick overview of the organizations currently included in the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Organization&lt;br /&gt;
! Status&lt;br /&gt;
! Current name&lt;br /&gt;
! Current leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Alamo Christian Foundation]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Alamo Christian Foundation&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Ant Hill Kids]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Ant Hill Kids&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Aum Shinrikyo]]&lt;br /&gt;
| Active, split successors&lt;br /&gt;
| Aleph / other successor groups&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Branch Davidians]]&lt;br /&gt;
| Active, fragmented&lt;br /&gt;
| Branch Davidian Seventh Day Adventists and related claimant groups&lt;br /&gt;
| [[Trent Wilde]] &#039;&#039;(one continuing group)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Bible Understanding]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of Bible Understanding&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the First Born of the Lamb of God]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of the First Born of the Lamb of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of the Living Word]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of the Living Word&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church of Wells]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church of Wells&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Church Universal and Triumphant]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Church Universal and Triumphant&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Colonia Dignidad]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Colonia Dignidad&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Destiny Church (New Zealand)]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Destiny Church (New Zealand)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Divine Light Mission]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Divine Light Mission&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Eckankar]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Eckankar&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Falun Gong]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Falun Gong&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fellowship of Friends]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Fellowship of Friends&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Fundamentalist Church of Jesus Christ of Latter-Day Saints]]&lt;br /&gt;
| Active&lt;br /&gt;
| FLDS Church&lt;br /&gt;
| [[Warren Jeffs]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Good News International Ministries]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Good News International Ministries&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Happy Science]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Happy Science&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Heaven&#039;s Gate (religious group)|Heaven&#039;s Gate]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Heaven&#039;s Gate&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[House of Yahweh]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| House of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Churches of Christ]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Churches of Christ&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[International Society for Krishna Consciousness]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| International Society for Krishna Consciousness&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Jesus Christians]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Jesus Christians&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Kashi Ashram]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Kashi Ashram&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[La Luz del Mundo]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| La Luz del Mundo&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Love Has Won]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Love Has Won&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Manson Family]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Manson Family&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Movement for the Restoration of the Ten Commandments of God]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Movement for the Restoration of the Ten Commandments of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Nation of Yahweh]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Nation of Yahweh&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[NXIVM]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| NXIVM&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Oneness Movement]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Oneness Movement&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Order of the Solar Temple]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Order of the Solar Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Peoples Temple]]&lt;br /&gt;
| Defunct&lt;br /&gt;
| Peoples Temple&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| [[Plymouth Brethren Christian Church]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Plymouth Brethren Christian Church&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Raelian movement]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Raelian movement&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Rajneesh movement]]&lt;br /&gt;
| Active&lt;br /&gt;
| Osho movement / Osho International Foundation&lt;br /&gt;
| No single leader&lt;br /&gt;
|-&lt;br /&gt;
| [[Remnant Fellowship]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Remnant Fellowship&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Sahaja Yoga]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Sahaja Yoga&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[School of Economic Science]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| School of Economic Science&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Scientology]]&lt;br /&gt;
| Active&lt;br /&gt;
| [[Church of Scientology]]&lt;br /&gt;
| [[David Miscavige]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Shincheonji Church of Jesus]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Shincheonji Church of Jesus&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Soka Gakkai]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Soka Gakkai&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Synanon]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Synanon&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family (Australian New Age group)]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| The Family (Australian New Age group)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[The Family International]]&lt;br /&gt;
| Active&lt;br /&gt;
| The Family International&lt;br /&gt;
| [[Karen Zerby]]&lt;br /&gt;
|-&lt;br /&gt;
| [[The Way International]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| The Way International&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Twelve Tribes communities]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Twelve Tribes communities&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Unification Church]]&lt;br /&gt;
| Active&lt;br /&gt;
| Family Federation for World Peace and Unification&lt;br /&gt;
| [[Hak Ja Han]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Universal Church of the Kingdom of God]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Universal Church of the Kingdom of God&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Word of Faith Fellowship]]&lt;br /&gt;
| Unknown&lt;br /&gt;
| Word of Faith Fellowship&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Leaders]]&lt;br /&gt;
* [[Main Page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Ryan_Ringnald&amp;diff=1397</id>
		<title>Ryan Ringnald</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Ryan_Ringnald&amp;diff=1397"/>
		<updated>2026-04-04T15:34:03Z</updated>

		<summary type="html">&lt;p&gt;Cultopedia-admin: Cultopedia rebuild: redirect tracked alias to canonical imported title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Church of Wells#Leader resolves to the organization page]]&lt;/div&gt;</summary>
		<author><name>Cultopedia-admin</name></author>
	</entry>
</feed>