<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki3d.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin3d</id>
	<title>MediaWiki3D - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki3d.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin3d"/>
	<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php/Special:Contributions/Admin3d"/>
	<updated>2026-04-26T16:23:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Cc&amp;diff=2250</id>
		<title>Template:Cc</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Cc&amp;diff=2250"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Commons category]]&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Comma_separated_entries&amp;diff=2248</id>
		<title>Template:Comma separated entries</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Comma_separated_entries&amp;diff=2248"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:Separated entries|comma}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Fl.&amp;diff=2246</id>
		<title>Template:Fl.</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Fl.&amp;diff=2246"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect [[Template:Floruit]]&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Floruit&amp;diff=2244</id>
		<title>Template:Floruit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Floruit&amp;diff=2244"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:{{{sortable|}}}&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;{{{1|}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
}}{{#if:{{{i|}}}&lt;br /&gt;
 |&amp;lt;nowiki/&amp;gt;&#039;&#039;&lt;br /&gt;
}}{{#switch:{{{lk|}}}&lt;br /&gt;
 |no|off        = fl.&lt;br /&gt;
 |yes|on        = [[Floruit|fl.]]&lt;br /&gt;
 |abbr&lt;br /&gt;
 |#default      = {{Abbr|fl.|floruit (&#039;flourished&#039; – known to have been active at a particular time or during a particular period)}}&lt;br /&gt;
}}{{#if:{{{i|}}}&lt;br /&gt;
 |&#039;&#039;&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
}}{{#if:{{{1|}}}&lt;br /&gt;
 |&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;amp;thinsp;{{{1}}}&amp;lt;/span&amp;gt;&lt;br /&gt;
}}{{#if:{{{2|}}}&lt;br /&gt;
 |&amp;amp;nbsp;– {{Abbr|c.|circa}}&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;amp;thinsp;{{{2}}}&amp;lt;/span&amp;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>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:No_footnotes&amp;diff=2242</id>
		<title>Template:No footnotes</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:No_footnotes&amp;diff=2242"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Ambox&lt;br /&gt;
| name  = No footnotes&lt;br /&gt;
| type  = style&lt;br /&gt;
| class = ambox-No_footnotes&lt;br /&gt;
| style = {{{style|}}}&lt;br /&gt;
| image = [[File:text document with red question mark.svg|50x40px|alt=|link=]]&lt;br /&gt;
| issue = This {{#ifeq:{{yesno-no|{{{BLP|{{{blp|}}}}}}}}|yes|{{#if:{{{1|}}}|&#039;&#039;&#039;{{{1}}} [[Wikipedia:Biographies of living persons|about a living person]]&#039;&#039;&#039;|&#039;&#039;&#039;[[Wikipedia:Biographies of living persons|biography of a living person]]&#039;&#039;&#039;}}|{{{1|article}}}}} includes a [[Wikipedia:Citing sources|list of references]], [[Wikipedia:Further reading|related reading]], or [[Wikipedia:External links|external links]], &#039;&#039;&#039;but its sources remain unclear because it lacks [[Wikipedia:Citing sources#Inline citations|inline citations]]&#039;&#039;&#039;.&lt;br /&gt;
| fix   = {{#ifeq:{{yesno-no|{{{BLP|{{{blp|}}}}}}}}|yes|Contentious material about living persons that is unsourced or poorly sourced &#039;&#039;&#039;must be removed immediately&#039;&#039;&#039;, especially if potentially [[Wikipedia:Libel|libelous]] or harmful.}} Please help [[{{SITENAME}}:WikiProject Fact and Reference Check|improve]] this {{{1|article}}} by [[Wikipedia:When to cite|introducing]] more precise citations.&lt;br /&gt;
| removalnotice = yes&lt;br /&gt;
| date  = {{{date|}}}&lt;br /&gt;
| cat   = Articles lacking in-text citations&lt;br /&gt;
| all   = All articles lacking in-text citations&lt;br /&gt;
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using no footnotes with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:No footnotes]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y|  | 1 | blp | BLP | date | style}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Location_map/data/Northern_Egypt&amp;diff=2240</id>
		<title>Module:Location map/data/Northern Egypt</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Location_map/data/Northern_Egypt&amp;diff=2240"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
	name = &#039;Northern Egypt&#039;,&lt;br /&gt;
	top = 31.73,&lt;br /&gt;
	bottom = 27.437,&lt;br /&gt;
	left = 29.34,&lt;br /&gt;
	right = 33.70,&lt;br /&gt;
	image = &#039;Egypt relief location map north.jpg&#039;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Infobox_museum&amp;diff=2238</id>
		<title>Template:Infobox museum</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Infobox_museum&amp;diff=2238"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{main other|{{#if:{{Has short description}} |&amp;lt;!--Do nothing--&amp;gt; |{{#invoke:Type in location|main|{{{type|}}}|{{{location|}}}|check-patterns = [Mm]useum;[Hh]all;[Gg]allery;[Cc]enter}}}}}}&amp;lt;!-- end short description&lt;br /&gt;
--&amp;gt;{{Infobox&lt;br /&gt;
| child = {{{embed|}}}&lt;br /&gt;
| bodyclass   = vcard&lt;br /&gt;
&lt;br /&gt;
| headerstyle = background-color: #eee;&lt;br /&gt;
&lt;br /&gt;
| titleclass  = fn org&lt;br /&gt;
| title       = {{#if:{{{name|}}}|{{{name}}}|{{#ifeq:{{{embed|}}}|yes||{{PAGENAMEBASE}}}}}}&lt;br /&gt;
| subheader   = {{#if:{{{native_name|}}}|&amp;lt;div class=&amp;quot;nickname&amp;quot; {{#if:{{{native_name_lang|}}}|lang=&amp;quot;{{{native_name_lang}}}&amp;quot;}}&amp;gt;{{{native_name}}}&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
| image1      = {{#invoke:InfoboxImage|InfoboxImage|image={{{logo|}}}|size={{{logo_size|}}}|upright={{{logo_upright|1}}}|alt={{{logo_alt|}}}}}&lt;br /&gt;
| caption1    = {{{logo_caption|}}}&lt;br /&gt;
&lt;br /&gt;
| image2      = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|{{{imagesize|}}}}}}|upright={{{image_upright|1.14}}}|alt={{{alt|}}}}}&lt;br /&gt;
| caption2    = {{{caption|}}}&lt;br /&gt;
&lt;br /&gt;
| image3      = {{#if:{{{pushpin_map|{{{map_type|}}}}}}|{{Location map|{{{pushpin_map|{{{map_type}}}}}}&lt;br /&gt;
 | border  = infobox&lt;br /&gt;
 | caption = {{#switch:{{{map_caption|}}}|#default={{{map_caption}}}|none=|=Location within {{#invoke:Location map|data|{{{pushpin_map|{{{map_type}}}}}}|name}}}}&lt;br /&gt;
 | float   = center&lt;br /&gt;
 | alt = {{{map_alt|}}}&lt;br /&gt;
 | width   = {{#if:{{{map_size|}}}|{{{map_size}}}|250}}&lt;br /&gt;
 | relief  = {{{pushpin_relief|{{{map_relief|}}}}}}&lt;br /&gt;
 | label   = {{{map dot label|{{{map_dot_label|}}}}}}&lt;br /&gt;
 | coordinates = {{{coordinates|}}}&lt;br /&gt;
 }}}}&lt;br /&gt;
&lt;br /&gt;
| image4      = {{#invoke:Infobox mapframe&lt;br /&gt;
  | auto&lt;br /&gt;
  | onByDefault = {{#if:{{{pushpin_map|}}}{{{map_type|}}}{{{image_map|}}}|no|yes}}&lt;br /&gt;
  | mapframe-frame-width = 250&lt;br /&gt;
  | mapframe-marker = museum&lt;br /&gt;
  | mapframe-wikidata = yes&lt;br /&gt;
  | mapframe-type = landmark&lt;br /&gt;
  | mapframe-marker-color = #919090&lt;br /&gt;
  | mapframe-stroke-color = #525252&lt;br /&gt;
  | mapframe-stroke-width = 3&lt;br /&gt;
  | mapframe-shape-fill = #dbdbdb&lt;br /&gt;
}}&lt;br /&gt;
| caption4    = {{#invoke:Infobox mapframe&lt;br /&gt;
  | autocaption&lt;br /&gt;
  | onByDefault = {{#if:{{{pushpin_map|}}}{{{map_type|}}}{{{image_map|}}}|no|yes}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
| label1     = {{longitem|Former name{{#if:{{{former_names|}}}|s}}}}&lt;br /&gt;
| class1     = nickname&lt;br /&gt;
| data1      = {{if empty|{{{former_names|}}}|{{{former_name|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label3      = Established&lt;br /&gt;
| data3       = {{{established|}}}&lt;br /&gt;
&lt;br /&gt;
| label6      = Dissolved&lt;br /&gt;
| data6       = {{{dissolved|}}}&lt;br /&gt;
&lt;br /&gt;
| label7      = Location&lt;br /&gt;
| data7       = {{{location|}}}&lt;br /&gt;
| rowclass7   = adr&lt;br /&gt;
| class7      = locality&lt;br /&gt;
&lt;br /&gt;
| label8      = [[Geographic coordinate system|Coordinates]]&lt;br /&gt;
| data8       = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates|}}}|type:landmark}} }}&lt;br /&gt;
&lt;br /&gt;
| label9      = Type&lt;br /&gt;
| data9       = {{{type|}}}&lt;br /&gt;
&lt;br /&gt;
| label10     = Accreditation&lt;br /&gt;
| data10      = {{{accreditation|}}}&lt;br /&gt;
&lt;br /&gt;
| label11     = Key holdings&lt;br /&gt;
| data11      = {{{key_holdings|}}}&lt;br /&gt;
&lt;br /&gt;
| label12     = {{#if:{{{collections_type|}}}|{{{collections_type}}}|Collections}}&lt;br /&gt;
| data12      = {{{collections|}}}&lt;br /&gt;
&lt;br /&gt;
| label13     = Collection size&lt;br /&gt;
| data13      = {{if empty|{{{collection|}}}|{{{collection_size|}}}|{{{collection size|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label14     = Visitors&lt;br /&gt;
| data14      = {{{visitors|}}}&lt;br /&gt;
&lt;br /&gt;
| label15     = Founder&lt;br /&gt;
| data15      = {{{founder|}}}&lt;br /&gt;
| class15     = agent&lt;br /&gt;
&lt;br /&gt;
| label16     = Executive director&lt;br /&gt;
| data16      = {{{executive_director|{{{executive director|}}}}}}&lt;br /&gt;
| class16     = agent&lt;br /&gt;
&lt;br /&gt;
| label17     = {{#if:{{{leader_type|}}}|{{{leader_type}}}|Manager}}&lt;br /&gt;
| data17      = {{{leader|}}}&lt;br /&gt;
| class17     = agent&lt;br /&gt;
&lt;br /&gt;
| label18     = Director&lt;br /&gt;
| data18      = {{{director|}}}&lt;br /&gt;
| class18     = agent&lt;br /&gt;
&lt;br /&gt;
| label19     = President&lt;br /&gt;
| data19      = {{{president|}}}&lt;br /&gt;
| class19     = agent&lt;br /&gt;
&lt;br /&gt;
| label20     = CEO&lt;br /&gt;
| data20      = {{{ceo|}}}&lt;br /&gt;
| class20     = agent&lt;br /&gt;
&lt;br /&gt;
| label21     = Chairperson&lt;br /&gt;
| data21      = {{{chairperson|}}}&lt;br /&gt;
| class21     = agent&lt;br /&gt;
&lt;br /&gt;
| label22     = Curator&lt;br /&gt;
| data22      = {{{curator|}}}&lt;br /&gt;
| class22     = agent&lt;br /&gt;
&lt;br /&gt;
| label23     = {{#if:{{{architects|}}}|Architects|Architect}}&lt;br /&gt;
| data23      = {{{architects|{{{architect|}}}}}}&lt;br /&gt;
| class23     = agent&lt;br /&gt;
&lt;br /&gt;
| label24     = Historian&lt;br /&gt;
| data24      = {{{historian|}}}&lt;br /&gt;
| class24     = agent&lt;br /&gt;
&lt;br /&gt;
| label25     = Owner&lt;br /&gt;
| data25      = {{{owner|}}}&lt;br /&gt;
| class25     = agent&lt;br /&gt;
&lt;br /&gt;
| label26     = Employees&lt;br /&gt;
| data26      = {{{employees|}}}&lt;br /&gt;
&lt;br /&gt;
| label27     = Public transit access&lt;br /&gt;
| data27      = {{{publictransit|}}}&lt;br /&gt;
&lt;br /&gt;
| label28     = Nearest {{#if:{{{parking|}}}|parking|car park}}&lt;br /&gt;
| data28      = {{#if:{{{parking|}}}|{{{parking}}}|{{{car_park|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label29     = Website&lt;br /&gt;
| data29      = {{{website|}}}&lt;br /&gt;
&lt;br /&gt;
| header30    = {{#if:{{{network|}}}|{{Infobox museum/{{{network}}} network|header}} }}&lt;br /&gt;
| data31      = {{#if:{{{network|}}}|{{Infobox museum/{{{network}}} network|data}} }}&lt;br /&gt;
&lt;br /&gt;
| header32    = {{{nrhp|{{{embedded|}}}}}}&lt;br /&gt;
&lt;br /&gt;
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox museum with unsupported parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox museum]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| accreditation | alt | architect | architects | caption | car_park | ceo | chairperson | leader | leader_type | collection | collection size | collection_size | collections | collections_type | coordinates | curator | director | dissolved | embed | embedded | employees | established | executive director | executive_director | former_name | former_names | founder | historian | image | image_size | imagesize | image_upright | key_holdings | location | logo | logo_size | logo_alt | logo_caption | logo_upright | map dot label | map_dot_label | map_alt | map_caption | map_relief | map_size | map_type | name | native_name | native_name_lang | network | nrhp | owner | parking | president | publictransit | pushpin_map | pushpin_relief | type | visitors | website | mapframe | mapframe-caption | mapframe-custom | mapframe-id | mapframe-coord | mapframe-wikidata | mapframe-point | mapframe-shape | mapframe-frame-width | mapframe-width | mapframe-frame-height | mapframe-height | mapframe-shape-fill | mapframe-shape-fill-opacity | mapframe-stroke-color | mapframe-stroke-colour | mapframe-stroke-width | mapframe-marker | mapframe-marker-color | mapframe-marker-colour | mapframe-geomask | mapframe-geomask-stroke-color | mapframe-geomask-stroke-colour | mapframe-geomask-stroke-width | mapframe-geomask-fill | mapframe-geomask-fill-opacity | mapframe-zoom | mapframe-length_km | mapframe-length_mi | mapframe-area_km2 | mapframe-area_mi2 | mapframe-frame-coordinates | mapframe-frame-coord | mapframe-switcher | mapframe-type }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Refimprove&amp;diff=2236</id>
		<title>Template:Refimprove</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Refimprove&amp;diff=2236"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:More citations needed]]&lt;br /&gt;
&lt;br /&gt;
{{Rcat shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:More_citations_needed&amp;diff=2234</id>
		<title>Template:More citations needed</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:More_citations_needed&amp;diff=2234"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Ambox&lt;br /&gt;
| name  = {{{name|More citations needed}}}&lt;br /&gt;
| small = {{#if:{{{small|}}}|left}}&lt;br /&gt;
| type  = content&lt;br /&gt;
| class = ambox-Refimprove&lt;br /&gt;
| image = [[File:Question book-new.svg|50x40px|alt=]]&lt;br /&gt;
| issue = This {{#if:{{{1|}}}|{{{1}}}|article}} &#039;&#039;&#039;needs additional citations for [[Wikipedia:Verifiability|verification]]&#039;&#039;&#039;.&lt;br /&gt;
| fix   = Please help [[Special:Edit/{{FULLPAGENAME}}|improve this article]] by [[Help:Referencing for beginners|adding citations to reliable sources]]{{#if:{{{1|}}}|{{sp}}in this {{{1}}}}}. Unsourced material may be challenged and removed.{{#if:{{{find2|{{{unquoted|}}}}}}| &amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;{{find sources mainspace|{{#if:{{{find|}}}|{{{find}}}|.}}|{{{find2|{{{unquoted|}}}}}}}}&amp;lt;/small&amp;gt; |{{#if:{{{find|}}}|{{#ifeq: {{{find|}}} |none ||&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;{{find sources mainspace|{{{find}}} }}&amp;lt;/small&amp;gt;}}|&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;{{find sources mainspace}}&amp;lt;/small&amp;gt;}} }}&lt;br /&gt;
| removalnotice = yes&lt;br /&gt;
| talk  = {{{talk|}}}&lt;br /&gt;
| date  = {{{date|}}}&lt;br /&gt;
| cat   = Articles needing additional references&lt;br /&gt;
| all   = All articles needing additional references&lt;br /&gt;
}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Please add categories to the /doc subpage, thanks --&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Find_sources/links&amp;diff=2232</id>
		<title>Module:Find sources/links</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Find_sources/links&amp;diff=2232"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This is a list of links used by [[Module:Find sources]].&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	[&amp;quot;archive.org&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://archive.org/search.php?query=$1%20AND%20mediatype:texts&#039;,&lt;br /&gt;
		display = &#039;Archive.org&#039;,&lt;br /&gt;
		description = &amp;quot;The [[Internet Archive]], a digital library of public websites.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;bing&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.bing.com/search?q=$1&#039;,&lt;br /&gt;
		display = &#039;Bing&#039;,&lt;br /&gt;
		description = &amp;quot;[[Bing (search engine)|Bing]], Microsoft&#039;s flagship search engine.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;britannica&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.britannica.com/search?nop=1a15&amp;amp;cse=on&amp;amp;query=$1&amp;amp;cx=ccef96e8363da4b5f&amp;amp;tbm=3&amp;amp;fxx=3&#039;,&lt;br /&gt;
		display = &#039;Encyclopedia Britannica&#039;,&lt;br /&gt;
		description = &amp;quot;[[Encyclopedia Britannica]]&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;british library&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://explore.bl.uk/primo_library/libweb/action/search.do?fn=search&amp;amp;ct=search&amp;amp;initialSearch=true&amp;amp;mode=Basic&amp;amp;tab=local_tab&amp;amp;indx=1&amp;amp;dum=true&amp;amp;srt=rank&amp;amp;vid=BLVU1&amp;amp;frbg=&amp;amp;tb=t&amp;amp;vl%28freeText0%29=$1&#039;,&lt;br /&gt;
		display = &#039;British Library&#039;,&lt;br /&gt;
		description = &amp;quot;National library of the United Kingdom&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;ccsearch&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://search.creativecommons.org/search?q=$1&amp;amp;license_type=commercial,modification&amp;quot;,&lt;br /&gt;
		display = &amp;quot;CC Search&amp;quot;,&lt;br /&gt;
		description = &amp;quot;CC Search: The official search engine of [[Creative Commons]]&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;cochrane&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://www.cochranelibrary.com/en/advanced-search?searchBy=-1&amp;amp;isWordVariations=&amp;amp;resultPerPage=25&amp;amp;searchType=advanced&amp;amp;selectedType=review&amp;amp;displayText=&amp;amp;orderBy=relevancy&amp;amp;p_p_id=scolarissearchresultsportlet_WAR_scolarissearchresults&amp;amp;p_p_lifecycle=0&amp;amp;p_p_state=normal&amp;amp;p_p_mode=view&amp;amp;p_p_col_id=column-1&amp;amp;p_p_col_pos=1&amp;amp;p_p_col_count=2&amp;amp;searchText=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;Cochrane&amp;quot;,&lt;br /&gt;
		description = &amp;quot;[[Cochrane Library]]: Leading publisher of systematic reviews.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;doaj&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://www.doaj.org/search/articles?source=%7B%22query%22%3A%7B%22query_string%22%3A%7B%22query%22%3A$1%2C%22default_operator%22%3A%22AND%22%7D%7D%7D&amp;quot;,&lt;br /&gt;
		display = &amp;quot;DOAJ&amp;quot;,&lt;br /&gt;
		description = &amp;quot;[[Directory of Open Access Journals|DOAJ]]: Directory of Open Access Journals&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;duckduckgo&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://duckduckgo.com/?q=$1&#039;,&lt;br /&gt;
		display = &#039;DuckDuckGo&#039;,&lt;br /&gt;
		description = &amp;quot;[[DuckDuckGo]], a search engine that emphasizes protecting searchers&#039; privacy and avoiding the \&amp;quot;filter bubble\&amp;quot; of personalized search results.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;eowb&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://search.lib.umich.edu/everything?query=$1&#039;,&lt;br /&gt;
		display = &#039;Encyclopedia of World Biography&#039;,&lt;br /&gt;
		tooltip = &#039;Encyclopedia of World Biography, by Gale Research; online results provided by University of Michigan.&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;free news sources&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://en.wikipedia.org/wiki/Wikipedia:Free_English_newspaper_sources&#039;,&lt;br /&gt;
		display = &#039;free news sources&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;gale&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://go.gale.com/ps/basicSearch.do?inputFieldNames%5B0%5D=OQE&amp;amp;nwf=y&amp;amp;searchType=BasicSearchForm&amp;amp;userGroupName=anon%7Ee3e4f4eb&amp;amp;prodId=AONE&amp;amp;spellCheck=true&amp;amp;method=doSearch&amp;amp;dblist=&amp;amp;stw.option=&amp;amp;ebook=&amp;amp;singleLimiterFieldValues%5BAC%5D=y&amp;amp;_singleLimiterFieldValues%5BAC%5D=on&amp;amp;_singleLimiterFieldValues%5BRE%5D=on&amp;amp;standAloneLimiters=LI&amp;amp;_singleLimiterFieldValues%5BLI%5D=on&amp;amp;inputFieldValues%5B0%5D=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;Gale Academic OneFile&amp;quot;,&lt;br /&gt;
		description = &amp;quot;	Gale Academic OneFile: Academic publisher portal from [[Gale (publisher)|Gale]]. Access via [[Wikipedia:The Wikipedia Library|Wikipedia Library]]&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;gin&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://guidelines.ebmportal.com/guidelines-international-network?type=search&amp;amp;search=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;GIN guidelines&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Content from the library and the registry of guidelines in development provided by the Guidelines International Network&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;globe and mail&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.theglobeandmail.com/search/?q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Globe and Mail&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Globe and Mail]]&#039;&#039;, a [[newspaper of record]] for Canada.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;google&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/search?as_eq=wikipedia&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &#039;Google&#039;,&lt;br /&gt;
		description = &amp;quot;[[Google]], the flagship search engine from Google Inc.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;google books&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/search?tbs=bks:1&amp;amp;q=$1+-wikipedia&#039;,&lt;br /&gt;
		display = &#039;Google Books&#039;,&lt;br /&gt;
		description = &amp;quot;[[Google Books]], Google&#039;s search engine for books.&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;google free images&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/search?safe=off&amp;amp;tbs=sur:fmc&amp;amp;tbm=isch&amp;amp;q=$1+-site:wikipedia.org+-site:wikimedia.org&#039;,&lt;br /&gt;
		display = &#039;Free Google Images&#039;,&lt;br /&gt;
		description = &amp;quot;[[Google Images]], Google&#039;s search engine for images. Only images compatible with Wikipedia&#039;s licensing are included.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;google news&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/search?tbm=nws&amp;amp;q=$1+-wikipedia&amp;amp;tbs=ar:1&#039;,&lt;br /&gt;
		display = &#039;Google News&#039;,&lt;br /&gt;
		description = &amp;quot;[[Google News]], Google&#039;s search engine for news sites.&amp;quot;,&lt;br /&gt;
		notes = &amp;quot;In the past this link searched news archives, but this functionality has been removed by Google. Currently, only recent news articles are searched.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;google newspapers&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/search?&amp;amp;q=$1&amp;amp;tbs=bkt:s&amp;amp;tbm=bks&#039;,&lt;br /&gt;
		display = &#039;Google Newspapers&#039;,&lt;br /&gt;
		description = &amp;quot;Google Newspapers, a search of Google&#039;s digital archive of print newspapers.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;google scholar&amp;quot;] = {&lt;br /&gt;
	url = &#039;https://scholar.google.com/scholar?q=$1&#039;,&lt;br /&gt;
		display = &#039;Google Scholar&#039;,&lt;br /&gt;
		description = &amp;quot;[[Google Scholar]], Google&#039;s search engine for academic papers and other scholarly research.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;haaretz&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.haaretz.com/search-results?q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;Haaretz&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[Haaretz]]&#039;&#039;, a [[newspaper of record]] for Israel.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;internet archive scholar&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://scholar.archive.org/search?&amp;amp;sort_order=time_desc&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &#039;IA scholar&#039;,&lt;br /&gt;
		description = &amp;quot;The [[Internet Archive Scholar]], a digital library of open access academic journals.&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;The [[Internet Archive Scholar]], a digital library of open access academic journals.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;infoplease&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.infoplease.com/search/$1&#039;,&lt;br /&gt;
		display = &#039;Infoplease&#039;,&lt;br /&gt;
		tooltip = &#039;Infoplease encyclopedia, dictionary, and almanac&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;jstor&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.jstor.org/action/doBasicSearch?Query=$1&amp;amp;acc=on&amp;amp;wc=on&#039;,&lt;br /&gt;
		display = &#039;JSTOR&#039;,&lt;br /&gt;
		description = &amp;quot;[[JSTOR]], an online library containing digitised versions of academic journals. Requires a subscription.&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;library of congress&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.loc.gov/search/?in=&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;Library of Congress&amp;quot;,&lt;br /&gt;
		description = &amp;quot;U.S. [[Library of Congress]]&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;mail and guardian&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://mg.co.za/?s=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;Mail &amp;amp; Guardian&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of the &#039;&#039;[[Mail &amp;amp; Guardian]]&#039;&#039;, a [[newspaper of record]] for South Africa.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;medrs&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://en.wikipedia.org/wiki/Wikipedia:Identifying_reliable_sources_(medicine)&amp;quot;,&lt;br /&gt;
		display = &amp;quot;find medical sources&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Ideal sources for biomedical material include recent literature reviews and medical guidelines; learn how to identify reliable sources for medical content at Wikipedia at WP:MEDRS.&amp;quot;,&lt;br /&gt;
		description = &amp;quot;[[WP:MEDRS|MEDRS]]: Ideal sources for biomedical material include recent literature reviews and medical guidelines; learn how to identify reliable sources for medical content.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;muse&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://muse.jhu.edu/search?action=search&amp;amp;min=1&amp;amp;max=10&amp;amp;t=header&amp;amp;query=content:$1:and&#039;,&lt;br /&gt;
		display = &#039;MUSE&#039;,&lt;br /&gt;
		tooltip = &#039;Project MUSE: humanities and social science content from academic journals and societies.&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;new york times&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.nytimes.com/search/$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;New York Times&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The New York Times]]&#039;&#039;, a [[newspaper of record]] for the United States.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;new zealand herald&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.nzherald.co.nz/search/$1/&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The New Zealand Herald&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The New Zealand Herald]]&#039;&#039;, a [[newspaper of record]] for New Zealand.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;openlibrary&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://openlibrary.org/search?q=$1&amp;amp;mode=everything&#039;,&lt;br /&gt;
		display = &#039;OpenLibrary&#039;,&lt;br /&gt;
		separator = &#039;+&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;openmd&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://openmd.com/search?q=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;OpenMD&amp;quot;,&lt;br /&gt;
		description = &amp;quot;OpenMD: Search engine for medical literature.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;pubmed&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://pubmed.ncbi.nlm.nih.gov/?term=$1&amp;amp;filter=pubt.meta-analysis&amp;amp;filter=pubt.review&amp;amp;filter=pubt.systematicreview&amp;amp;filter=datesearch.y_10&amp;quot;,&lt;br /&gt;
		display = &amp;quot;PubMed&amp;quot;,&lt;br /&gt;
		description = &amp;quot;[[PubMed]]: Search engine for biomedical literature from [[United States National Library of Medicine|NLM]].&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;sciencedirect&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://www.sciencedirect.com/search?qs=$1&amp;amp;articleTypes=REV%2CEN%2CCH%2CSSU%2CPGL&amp;amp;lastSelectedFacet=articleTypes&amp;quot;,&lt;br /&gt;
		display = &amp;quot;ScienceDirect&amp;quot;,&lt;br /&gt;
		description = &amp;quot;ScienceDirect: [[Elsevier]]&#039;s scientific, technical, and medical research portal.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;south china morning post&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.scmp.com/search/$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;South China Morning Post&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of the &#039;&#039;[[South China Morning Post]]&#039;&#039;, a [[newspaper of record]] for Hong Kong.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;springer&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://link.springer.com/search?query=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;Springer&amp;quot;,&lt;br /&gt;
		description = &amp;quot;Springer Nature&#039;s portal for journals, books, and reference works.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;statpearls&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://www.ncbi.nlm.nih.gov/books/NBK430685/?term=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;StatPearls&amp;quot;,&lt;br /&gt;
		description = &amp;quot;StatPearls: the largest provider of healthcare continuing education worldwide, providing peer-reviewed practice-guiding knowledge authored by clinical experts.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;straits times&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.straitstimes.com/search?searchkey=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Straits Times&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Straits Times]]&#039;&#039;, a [[newspaper of record]] for Singapore.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;sydney morning herald&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.smh.com.au/search?text=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Sydney Morning Herald&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Sydney Morning Herald]]&#039;&#039;, a [[newspaper of record]] for Australia.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;the age&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.theage.com.au/search?text=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Age&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Age]]&#039;&#039;, a [[newspaper of record]] for Australia.&amp;quot;, &lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;the guardian&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.co.uk/search?as_sitesearch=www.theguardian.com&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &#039;The Guardian&#039;,&lt;br /&gt;
		description = &amp;quot;&#039;&#039;[[The Guardian]]&#039;&#039; newspaper, U.K.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;the hindu&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.thehindu.com/search/?q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Hindu&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Hindu]]&#039;&#039;, a [[newspaper of record]] for India.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;the times&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.thetimes.co.uk/search?source=search-page&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Times&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Times]]&#039;&#039;, a [[newspaper of record]] for the United Kingdom.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;times of india&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://timesofindia.indiatimes.com/topic/$1&#039;,&lt;br /&gt;
		display = &amp;quot;&#039;&#039;The Times of India&#039;&#039;&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Times of India]]&#039;&#039;, a [[newspaper of record]] for India.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;trip&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://www.tripdatabase.com/Searchresult?search_type=standard&amp;amp;criteria=$1&amp;amp;from_date=2012&amp;quot;,&lt;br /&gt;
		display = &amp;quot;Trip Database&amp;quot;,&lt;br /&gt;
		description = &amp;quot;Trip Database: Search engine for clinical research evidence.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;uptodate&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://www.uptodate.com/contents/search?sp=0&amp;amp;searchType=PLAIN_TEXT&amp;amp;source=USER_INPUT&amp;amp;searchControl=TOP_PULLDOWN&amp;amp;searchOffset=1&amp;amp;autoComplete=false&amp;amp;language=en&amp;amp;max=10&amp;amp;search=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;UpToDate&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Evidence-based resource for clinical decision support written for and by physicians&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;vgrl&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://en.wikipedia.org/wiki/Special:Search?search=$1&amp;amp;prefix=Wikipedia%3AWikiProject+Video+games%2FReference+library&amp;amp;fulltext=Search+reference+library&amp;amp;fulltext=Search&#039;,&lt;br /&gt;
		display = &#039;VGRL&#039;,&lt;br /&gt;
		description = &amp;quot;[[Wikipedia:WikiProject Video games/Reference library]] internal archive search.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;vgrs&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/cse?cx=009782238053898643791%3A8naerdbd-oy&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &#039;VGRS&#039;,&lt;br /&gt;
		description = &amp;quot;[http://www.google.com/cse/home?cx=003516479746865699832:leawcwkqifq Google RS], a [[custom Google search engine]] that limits the search to sites listed in [[Wikipedia:WikiProject Video games/Sources]].&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;vgtalk&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://en.wikipedia.org/w/index.php?search=$1+prefix%3AWikipedia+talk%3AWikiProject+Video+games&amp;amp;title=Special:Search&amp;amp;profile=default&amp;amp;fulltext=1&#039;,&lt;br /&gt;
		display = &#039;WPVG Talk&#039;,&lt;br /&gt;
		description = &amp;quot;A search in the WikiProject Video games talk page and its archives under [[Wikipedia talk:WikiProject Video games]].&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;wikipedia library&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://wikipedialibrary.wmflabs.org/search/?q=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;TWL&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;The Wikipedia Library&amp;quot;,&lt;br /&gt;
		description = &amp;quot;Search results from dozens of services provided via EBSCOhost to Wikipedians via [[Wikipedia:The Wikipedia Library]].&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;wikipedia reference search&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.google.com/custom?hl=en&amp;amp;cx=007734830908295939403%3Agalkqgoksq0&amp;amp;cof=FORID%3A13%3BAH%3Aleft%3BCX%3AWikipedia%2520Reference%2520Search&amp;amp;q=$1&#039;,&lt;br /&gt;
		display = &#039;Wikipedia Reference Search&#039;,&lt;br /&gt;
		description = &amp;quot;[[WP:WRS|Wikipedia Reference Search]], a Google search that only searches sites vetted by Wikipedians.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;wiley&amp;quot;] = {&lt;br /&gt;
		url = &amp;quot;https://onlinelibrary.wiley.com/action/doSearch?AllField=$1&amp;quot;,&lt;br /&gt;
		display = &amp;quot;Wiley&amp;quot;,&lt;br /&gt;
		description = &amp;quot;Wiley Online Library: [[Wiley (publisher)|Wiley&#039;s]] portal for academic articles, books, and collections.&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;ap&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://apnews.com/search?q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;Associated Press&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The [[Associated Press]], an American news agency&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;reuters&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.reuters.com/site-search/?query=$1&#039;,&lt;br /&gt;
		display = &amp;quot;Reuters&amp;quot;,&lt;br /&gt;
		description = &amp;quot;[[Reuters]], an international news agency&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;bbc&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.bbc.co.uk/search?q=$1&#039;,&lt;br /&gt;
		display = &amp;quot;BBC&amp;quot;,&lt;br /&gt;
		description = &amp;quot;[[BBC]], British public broadcaster&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;wsj&amp;quot;] = {&lt;br /&gt;
		url = &#039;https://www.wsj.com/search?query=$1&#039;,&lt;br /&gt;
		display = &amp;quot;Wall Street Journal&amp;quot;,&lt;br /&gt;
		description = &amp;quot;The website of &#039;&#039;[[The Wall Street Journal]]&#039;&#039;, a [[newspaper of record]] for the United States.&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Find_sources/templates/Find_sources_mainspace&amp;diff=2230</id>
		<title>Module:Find sources/templates/Find sources mainspace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Find_sources/templates/Find_sources_mainspace&amp;diff=2230"/>
		<updated>2025-08-16T12:13:08Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
	blurb = &amp;quot;&#039;&#039;Find sources:&#039;&#039;&amp;amp;nbsp;$1&amp;amp;nbsp;–&amp;amp;nbsp;$2&amp;quot;,&lt;br /&gt;
	introLink = {&lt;br /&gt;
		code = &#039;google&#039;&lt;br /&gt;
	},&lt;br /&gt;
	links = {&lt;br /&gt;
		{&lt;br /&gt;
			code = &#039;google news&#039;,&lt;br /&gt;
			display = &#039;news&#039;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			code = &#039;google newspapers&#039;,&lt;br /&gt;
			display = &#039;newspapers&#039;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			code = &#039;google books&#039;,&lt;br /&gt;
			display = &#039;books&#039;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			code = &#039;google scholar&#039;,&lt;br /&gt;
			display = &#039;scholar&#039;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			code = &#039;jstor&#039;,&lt;br /&gt;
			display = &#039;JSTOR&#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	isUsedInMainspace = true&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Find_sources/config&amp;diff=2228</id>
		<title>Module:Find sources/config</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Find_sources/config&amp;diff=2228"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Configuration data for [[Module:Find sources]].&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
-- Define the error message and category to be used if the module is used in&lt;br /&gt;
-- the main namespace and the template config doesn&#039;t set the&lt;br /&gt;
-- isUsedInMainspace key to true. The category is optional; if it is not&lt;br /&gt;
-- wanted, it can be removed.&lt;br /&gt;
[&#039;namespace-error&#039;] = &#039;Error: Please do not use this template in articles.&#039;,&lt;br /&gt;
[&#039;namespace-error-category&#039;] = &#039;Pages with templates in the wrong namespace&#039;,&lt;br /&gt;
 &lt;br /&gt;
-- The separator to be used if no separator is specified in the template&lt;br /&gt;
-- config.&lt;br /&gt;
[&#039;default-separator&#039;] = mw.message.new(&#039;Dot-separator&#039;):plain()&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Find_sources&amp;diff=2226</id>
		<title>Module:Find sources</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Find_sources&amp;diff=2226"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{find sources}} and other similar templates, and&lt;br /&gt;
-- also provides a mechanism to easily create new source-finding templates.&lt;br /&gt;
&lt;br /&gt;
-- Define constants&lt;br /&gt;
local ROOT_PAGE = &#039;Module:Find sources&#039;&lt;br /&gt;
local TEMPLATE_ROOT = ROOT_PAGE .. &#039;/templates/&#039; -- for template config modules&lt;br /&gt;
local LINK_CONFIG = ROOT_PAGE .. &#039;/links&#039; -- for link config modules&lt;br /&gt;
local CONFIG_PAGE = ROOT_PAGE .. &#039;/config&#039; -- for global config&lt;br /&gt;
&lt;br /&gt;
-- Load required modules&lt;br /&gt;
local checkType = require(&#039;libraryUtil&#039;).checkType&lt;br /&gt;
local cfg = mw.loadData(CONFIG_PAGE)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function maybeLoadData(page)&lt;br /&gt;
	local success, data = pcall(mw.loadData, page)&lt;br /&gt;
	return success and data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function substituteParams(msg, ...)&lt;br /&gt;
	return mw.message.newRawMessage(msg, ...):plain()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderSearchString(searchTerms, separator, transformFunc)&lt;br /&gt;
	-- This takes a table of search terms and turns it into a search string&lt;br /&gt;
	-- that can be used in a URL or in a display value. The transformFunc&lt;br /&gt;
	-- parameter can be used to transform each search term in some way (for&lt;br /&gt;
	-- example, URL-encoding them).&lt;br /&gt;
	local searchStrings = {}&lt;br /&gt;
	for i, s in ipairs(searchTerms) do&lt;br /&gt;
		searchStrings[i] = s&lt;br /&gt;
	end&lt;br /&gt;
	if transformFunc then&lt;br /&gt;
		for i, s in ipairs(searchStrings) do&lt;br /&gt;
			searchStrings[i] = transformFunc(s)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(searchStrings, separator)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._renderLink(code, searchTerms, display, tooltip)&lt;br /&gt;
	-- Renders the external link wikicode for one link, given the link code,&lt;br /&gt;
	-- a table of search terms, and an optional display value and tooltip.&lt;br /&gt;
&lt;br /&gt;
	-- Get link config.&lt;br /&gt;
	local links = maybeLoadData(LINK_CONFIG)&lt;br /&gt;
	local linkCfg = links[code]&lt;br /&gt;
	if not linkCfg then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;quot;invalid link code &#039;%s&#039;; no link config found at [[%s]]&amp;quot;,&lt;br /&gt;
			code,&lt;br /&gt;
			LINK_CONFIG&lt;br /&gt;
		))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make URL.&lt;br /&gt;
	local url&lt;br /&gt;
	do&lt;br /&gt;
		local separator = linkCfg.separator or &amp;quot;+&amp;quot;&lt;br /&gt;
		local searchString = renderSearchString(&lt;br /&gt;
			searchTerms,&lt;br /&gt;
			separator,&lt;br /&gt;
			mw.uri.encode&lt;br /&gt;
		)&lt;br /&gt;
		url = substituteParams(linkCfg.url, searchString)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if tooltip then&lt;br /&gt;
		return string.format(&#039;&amp;lt;span title=&amp;quot;%s&amp;quot; style=&amp;quot;border-bottom: 1px dotted;&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&#039;, &lt;br /&gt;
			mw.text.encode(tooltip), url, display or linkCfg.display)&lt;br /&gt;
	else&lt;br /&gt;
		return string.format(&#039;[%s %s]&#039;, url, display or linkCfg.display)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(template, args)&lt;br /&gt;
	-- The main access point from Lua.&lt;br /&gt;
	checkType(&#039;_main&#039;, 1, template, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;_main&#039;, 2, args, &#039;table&#039;, true)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Get the template config.&lt;br /&gt;
	local templateCfgPage = TEMPLATE_ROOT .. template&lt;br /&gt;
	local templateCfg = maybeLoadData(templateCfgPage)&lt;br /&gt;
	if not templateCfg then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;quot;invalid template name &#039;%s&#039;; no template config found at [[%s]]&amp;quot;,&lt;br /&gt;
			template, templateCfgPage&lt;br /&gt;
		))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Namespace check.&lt;br /&gt;
	if not templateCfg.isUsedInMainspace and title.namespace == 0 then&lt;br /&gt;
		local formatString = &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;%s&amp;lt;/strong&amp;gt;&#039;&lt;br /&gt;
		if cfg[&#039;namespace-error-category&#039;] then&lt;br /&gt;
			formatString = formatString .. &#039;[[%s:%s]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return string.format(&lt;br /&gt;
			formatString,&lt;br /&gt;
			cfg[&#039;namespace-error&#039;],&lt;br /&gt;
			mw.site.namespaces[14].name,&lt;br /&gt;
			cfg[&#039;namespace-error-category&#039;]&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Get the search terms from the arguments.&lt;br /&gt;
	local searchTerms = {}&lt;br /&gt;
	for i, s in ipairs(args) do&lt;br /&gt;
		searchTerms[i] = s&lt;br /&gt;
	end&lt;br /&gt;
	if not searchTerms[1] then&lt;br /&gt;
		-- Use the current subpage name as the default search term, unless &lt;br /&gt;
		-- another title is provided. If the page uses a disambiguator like&lt;br /&gt;
		-- &amp;quot;Foo (bar)&amp;quot;, make &amp;quot;Foo&amp;quot; the first term and &amp;quot;bar&amp;quot; the second.&lt;br /&gt;
		local searchTitle = args.title or title.subpageText&lt;br /&gt;
		local term, dab = searchTitle:match(&#039;^(.*) (%b())$&#039;)&lt;br /&gt;
		if dab then&lt;br /&gt;
			dab = dab:sub(2, -2) -- Remove parens&lt;br /&gt;
		end&lt;br /&gt;
		if term and dab then&lt;br /&gt;
			searchTerms[1] = term&lt;br /&gt;
			searchTerms[2] = dab&lt;br /&gt;
		else&lt;br /&gt;
			searchTerms[1] = searchTitle&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	searchTerms[1] = &#039;&amp;quot;&#039; .. searchTerms[1] .. &#039;&amp;quot;&#039;&lt;br /&gt;
&lt;br /&gt;
	-- Make the intro link&lt;br /&gt;
	local introLink&lt;br /&gt;
	if templateCfg.introLink then&lt;br /&gt;
		local code = templateCfg.introLink.code&lt;br /&gt;
		local display = templateCfg.introLink.display or renderSearchString(&lt;br /&gt;
			searchTerms,&lt;br /&gt;
			&#039;&amp;amp;nbsp;&#039;&lt;br /&gt;
		)&lt;br /&gt;
		local tooltip = templateCfg.introLink.tooltip&lt;br /&gt;
		introLink = p._renderLink(code, searchTerms, display, tooltip)&lt;br /&gt;
	else&lt;br /&gt;
		introLink = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make the other links&lt;br /&gt;
	local links = {}&lt;br /&gt;
	local separator = templateCfg.separator or cfg[&#039;default-separator&#039;]&lt;br /&gt;
	local sep = &#039;&#039;&lt;br /&gt;
	for i, t in ipairs(templateCfg.links) do&lt;br /&gt;
		links[i] = sep .. p._renderLink(t.code, searchTerms, t.display, t.tooltip) ..&lt;br /&gt;
			(t.afterDisplay or &#039;&#039;)&lt;br /&gt;
		sep = t.separator or separator&lt;br /&gt;
	end&lt;br /&gt;
	links = table.concat(links)&lt;br /&gt;
&lt;br /&gt;
	-- Make the blurb.&lt;br /&gt;
	local blurb = substituteParams(templateCfg.blurb, introLink, links)&lt;br /&gt;
	local span = mw.html.create(&#039;span&#039;)&lt;br /&gt;
	span&lt;br /&gt;
		:addClass(&#039;plainlinks&#039;)&lt;br /&gt;
		:addClass(templateCfg.class)&lt;br /&gt;
		:cssText(templateCfg.style)&lt;br /&gt;
		:wikitext(blurb)&lt;br /&gt;
&lt;br /&gt;
	return tostring(span)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
setmetatable(p, { __index = function(t, template)&lt;br /&gt;
	-- The main access point from #invoke.&lt;br /&gt;
	-- Invocations will look like {{#invoke:Find sources|template name}},&lt;br /&gt;
	-- where &amp;quot;template name&amp;quot; is a subpage of [[Module:Find sources/templates]].&lt;br /&gt;
	local tname = template&lt;br /&gt;
	if tname:sub(-8) == &#039;/sandbox&#039; then&lt;br /&gt;
		-- This makes {{Find sources/sandbox|Albert Einstein}} work.&lt;br /&gt;
		tname = tname:sub(1, -9)&lt;br /&gt;
	end&lt;br /&gt;
	return function(frame)&lt;br /&gt;
		local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
			wrappers = mw.site.namespaces[10].name .. &#039;:&#039; .. tname&lt;br /&gt;
		})&lt;br /&gt;
		return t._main(template, args)&lt;br /&gt;
	end&lt;br /&gt;
end})&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Find_sources_mainspace&amp;diff=2224</id>
		<title>Template:Find sources mainspace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Find_sources_mainspace&amp;diff=2224"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Find sources|Find sources mainspace}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#invoke:Find sources/autodoc|Find sources mainspace}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Library_of_Congress_Control_Number&amp;diff=2222</id>
		<title>Template:Library of Congress Control Number</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Library_of_Congress_Control_Number&amp;diff=2222"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:LCCN|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:LCCN&amp;diff=2220</id>
		<title>Module:LCCN</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:LCCN&amp;diff=2220"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function blank_to_nil(s)&lt;br /&gt;
	if s and #s &amp;gt; 0 then return s end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function pad(padlen, ...)&lt;br /&gt;
	padlen = tonumber(padlen) or 0&lt;br /&gt;
	if 1 &amp;gt; select(&#039;#&#039;, ...) then&lt;br /&gt;
		return (&amp;quot;0&amp;quot;):rep(padlen)&lt;br /&gt;
	end&lt;br /&gt;
	local padsrc = tostring((...))&lt;br /&gt;
	local srclen = mw.ustring.len(padsrc)&lt;br /&gt;
	if 1 &amp;gt; padlen or 1 &amp;gt; srclen then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return mw.ustring.sub(mw.ustring.rep(padsrc, math.ceil(padlen / srclen)), 1, padlen)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function padleft(str, ...)&lt;br /&gt;
	str = tostring(str)&lt;br /&gt;
	if 1 &amp;gt; select(&#039;#&#039;, ...) then&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	local strlen = mw.ustring.len(str)&lt;br /&gt;
	if 1 &amp;gt; strlen then&lt;br /&gt;
		return pad((...), select(2, ...))&lt;br /&gt;
	end&lt;br /&gt;
	return pad((tonumber((...)) or 0) - strlen, select(2, ...)) .. str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function padright(str, ...)&lt;br /&gt;
	str = tostring(str)&lt;br /&gt;
	if 1 &amp;gt; select(&#039;#&#039;, ...) then&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	local strlen = mw.ustring.len(str)&lt;br /&gt;
	if 1 &amp;gt; strlen then&lt;br /&gt;
		return pad((...), select(2, ...))&lt;br /&gt;
	end&lt;br /&gt;
	return str .. pad((tonumber((...)) or 0) - strlen , select(2, ...))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function expr(...)&lt;br /&gt;
	return mw.ext.ParserFunctions.expr( ... )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local id = blank_to_nil(args[1] or args.id)&lt;br /&gt;
	if not id then&lt;br /&gt;
		error(&amp;quot;Template:LCCN: You must provide an ID.&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local title = blank_to_nil(args[2] or args.title or args.name)&lt;br /&gt;
&lt;br /&gt;
	local letter_width = (id:match(&amp;quot;^%s*[0-9][0-9]&amp;quot;) and id:len() &amp;lt; 10) and 0 or 2&lt;br /&gt;
	local left_part = id:sub(1, letter_width + 2)&lt;br /&gt;
	local right_part = expr(padright(id, letter_width + 8, &#039;.00000&#039;):sub(letter_width + 3, letter_width + 8))&lt;br /&gt;
	local url = &amp;quot;https://www.loc.gov/item/&amp;quot; .. left_part .. padleft(right_part, 6, 0)&lt;br /&gt;
		&lt;br /&gt;
	if args.long == &amp;quot;yes&amp;quot; then&lt;br /&gt;
		return (&amp;quot;Bibliographic record for [%s %s] at the [[LCCN (identifier)|Library of Congress]]&amp;quot;):format(&lt;br /&gt;
			url, title or mw.title.getCurrentTitle().text)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return (&amp;quot;[[LCCN (identifier)|LCCN]]&amp;amp;nbsp;[%s %s-%s]%s&amp;quot;):format(&lt;br /&gt;
		url, left_part, right_part, title and (&#039;&amp;amp;nbsp;&amp;amp;ndash;&amp;amp;nbsp;&#039; .. title) or &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:LCCN&amp;diff=2218</id>
		<title>Template:LCCN</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:LCCN&amp;diff=2218"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Library of Congress Control Number]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Harvard_citation_year_brackets&amp;diff=2216</id>
		<title>Template:Harvard citation year brackets</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Harvard_citation_year_brackets&amp;diff=2216"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Footnotes|harvard_citation&lt;br /&gt;
|bracket_year_left = (&lt;br /&gt;
|bracket_year_right = )&lt;br /&gt;
|template=harvp&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Harvp&amp;diff=2214</id>
		<title>Template:Harvp</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Harvp&amp;diff=2214"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Harvard citation year brackets]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Quote&amp;diff=2212</id>
		<title>Template:Quote</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Quote&amp;diff=2212"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Blockquote]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
{{R from modification}}&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Blockquote/styles.css&amp;diff=2210</id>
		<title>Template:Blockquote/styles.css</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Blockquote/styles.css&amp;diff=2210"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
.templatequote {&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	margin: 1em 0;&lt;br /&gt;
	padding: 0 32px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.templatequotecite {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 500px) {&lt;br /&gt;
	.templatequotecite {&lt;br /&gt;
	    /* @noflip */&lt;br /&gt;
	    padding-left: 1.6em;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Blockquote&amp;diff=2208</id>
		<title>Template:Blockquote</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Blockquote&amp;diff=2208"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;Template:Blockquote/styles.css&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;blockquote class=&amp;quot;templatequote {{{class|}}}&amp;quot; {{#if:{{{style|}}}|style=&amp;quot;{{{style}}}&amp;quot;}}&amp;gt;{{{text|{{{content|{{{quotetext|{{{quote|{{{1|&amp;lt;includeonly&amp;gt;{{error|Error: No text given for quotation (or equals sign used in the actual argument to an unnamed parameter)}}{{main other|[[Category:Pages incorrectly using the quote template]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{lorem ipsum}}&amp;lt;/noinclude&amp;gt;}}}}}}}}}}}}}}}&amp;lt;/blockquote&amp;gt;{{#if:{{{sign|}}}{{{cite|}}}{{{author|}}}{{{by|}}}{{{personquoted|}}}{{{source|}}}{{{ts|}}}{{{title|}}}{{{publication|}}}{{{quotesource|}}}{{{char|}}}{{{character|}}}{{{2|}}}{{{3|}}}{{{4|}}}{{{5|}}}|{{#if:{{{multiline|}}}|&amp;lt;nowiki /&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;templatequotecite&amp;quot;&amp;gt;&amp;lt;p style=&amp;quot;display: inline; padding-left: 2.3em;&amp;quot;&amp;gt;—&amp;amp;#8202;{{#if:{{{char|{{{character|{{{5|}}}}}}}}}|{{{char|{{{character|{{{5|}}}}}}}}}, in&amp;amp;#32;}}{{Comma separated entries&lt;br /&gt;
 | {{if empty|{{{sign|}}}|{{{cite|}}}|{{{author|}}}|{{{by|}}}|{{{personquoted|}}}|{{{2|}}}}}&lt;br /&gt;
 | {{if empty|{{{title|}}}|{{{publication|}}}|{{{ts|}}}|{{{quotesource|}}}|{{{3|}}}}}&lt;br /&gt;
 | {{if empty|{{{source|}}}|{{{4|}}}}}&lt;br /&gt;
 }}&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using Blockquote template with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Blockquote]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| 1 | 2 | 3 | 4 | 5 | author | by | char | character | cite | class | content | multiline | personquoted | publication | quote | quotesource | quotetext | sign | source | style | text | title | ts }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;!--Add categories to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Article_stub_box/styles.css&amp;diff=2206</id>
		<title>Module:Article stub box/styles.css</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Article_stub_box/styles.css&amp;diff=2206"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
/* Article stub message box styles */&lt;br /&gt;
.asbox {&lt;br /&gt;
	position: relative;&lt;br /&gt;
    overflow:hidden;&lt;br /&gt;
}&lt;br /&gt;
.asbox table {&lt;br /&gt;
	background: transparent;&lt;br /&gt;
}&lt;br /&gt;
.asbox p {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.asbox p + p {&lt;br /&gt;
	margin-top: 0.25em;&lt;br /&gt;
}&lt;br /&gt;
.asbox-body {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.asbox-note {&lt;br /&gt;
	font-size: smaller;&lt;br /&gt;
}&lt;br /&gt;
.asbox .navbar {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	top: -0.75em;&lt;br /&gt;
	right: 1em;&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
:not(p):not(.asbox) + style + .asbox,&lt;br /&gt;
:not(p):not(.asbox) + link + .asbox {&lt;br /&gt;
	margin-top: 3em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Article_stub_box&amp;diff=2204</id>
		<title>Module:Article stub box</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Article_stub_box&amp;diff=2204"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
This module was created by User:CodeHydro (Alexander Zhikun He).&lt;br /&gt;
User:Jackmcbarn and User:Mr._Stradivarius provided a great deal of assistance in writting p.main()&lt;br /&gt;
&lt;br /&gt;
p.main() draw heavily from the following version of Template:Asbox of the English Wikipedia, authored primarily by User:Rich_Farmbrough&lt;br /&gt;
https://en.wikipedia.org/w/index.php?title=Template:Asbox&amp;amp;oldid=619510287&lt;br /&gt;
&lt;br /&gt;
p.templatepage() is derived from the following revision of Template:Asbox/templatepage, authored primarily by User:MSGJ&lt;br /&gt;
https://en.wikipedia.org/w/index.php?title=Template:Asbox/templatepage&amp;amp;oldid=632914791&lt;br /&gt;
&lt;br /&gt;
Both templates had significant contributions from numerous others listed in the revision history tab of their respective pages.&lt;br /&gt;
--]]&lt;br /&gt;
local WRAPPER_TEMPLATE, args = &#039;Template:Article stub box&#039;&lt;br /&gt;
-- TODO: update this instance of Asbox to Article stub box eventually&lt;br /&gt;
local templatestyles = &#039;Module:Article stub box/styles.css&#039;&lt;br /&gt;
local p, Buffer, stubCats = {&lt;br /&gt;
	--Prevents dupli-cats... get it? Maybe not?&lt;br /&gt;
	cats = setmetatable({}, {__newindex = function(t, i, v)&lt;br /&gt;
		if not rawget(t, i) then&lt;br /&gt;
			rawset(t, i, v)&lt;br /&gt;
			table.insert(t, i)&lt;br /&gt;
		end&lt;br /&gt;
	end}),&lt;br /&gt;
	--initializes variables required by both p.main and p.templatepage&lt;br /&gt;
	init = function(self, frame, page)&lt;br /&gt;
		args, page = args or require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
			wrappers = WRAPPER_TEMPLATE&lt;br /&gt;
		}), page or mw.title.getCurrentTitle()&lt;br /&gt;
		--Ensures demo parameter will never affect category() output for articles&lt;br /&gt;
		self.demo = self.demo or page.namespace ~= 0 and args.demo&lt;br /&gt;
		return args, page&lt;br /&gt;
	end&lt;br /&gt;
}, require(&#039;Module:Buffer&#039;)&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Formats category links. Stores them until called with cat.done=true&lt;br /&gt;
Takes multiple or single categories in the form of &#039;cat&#039;&lt;br /&gt;
or a table of strings and/or tables containing parts. (See below)&lt;br /&gt;
]]&lt;br /&gt;
local attention, catTag, catKey = Buffer&#039;Stub message templates needing attention&#039;, &#039;[[Category:%s]]&#039;, &#039;%s|%s%s&#039;&lt;br /&gt;
local function category(cat)&lt;br /&gt;
	for _, v in ipairs((tostring(cat) == cat or cat.t) and {cat} or cat) do&lt;br /&gt;
		--[[&lt;br /&gt;
		If v is a table:&lt;br /&gt;
			[1] = full category name; defaults to local attention if blank&lt;br /&gt;
			k = Category sort key. Prefix before v.t&lt;br /&gt;
			t = page.text or args.tempsort#; appended after k (or in its place if omitted). Required if v is not a string&lt;br /&gt;
		Basically the same as v = (v[1] or attention) .. &#039; | &#039; .. (v.k or &#039;&#039;) .. v.t&lt;br /&gt;
		]]&lt;br /&gt;
		if v and v ~= true then--reject v = nil, false, or true&lt;br /&gt;
			p.cats[catTag:format(tostring(v) == v and&lt;br /&gt;
				v&lt;br /&gt;
				or (v[1] and Buffer(v[1]) or attention):_in(v.k):_(v.t):_str(2, nil, nil, &#039;|&#039;)&lt;br /&gt;
			)] = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return cat.done and table.concat(p.cats, p.demo and &#039; | &#039; or nil) or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Makes an ombox warning;&lt;br /&gt;
Takes table {ifNot = Boolean, text, {cat. sort key, cat. sort name}}&lt;br /&gt;
Will return an empty string instead when ifNot evaluates to true &lt;br /&gt;
]]&lt;br /&gt;
local function ombox(v)&lt;br /&gt;
	if v.ifNot then return end&lt;br /&gt;
	p.ombox = p.ombox or require(&#039;Module:Message box&#039;).ombox&lt;br /&gt;
	category{v[2]}&lt;br /&gt;
	return p.ombox{&lt;br /&gt;
		type = &#039;content&#039;,&lt;br /&gt;
		text = v[1]&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Unlike original template, module now takes unlimited cats! This function also performs&lt;br /&gt;
most stub category error checks except for the ombox for when main |category= is omitted (See p.template())&lt;br /&gt;
]]&lt;br /&gt;
local function catStub(page, pageDoc)&lt;br /&gt;
	stubCats = {missing = {}, v = {}}&lt;br /&gt;
	-- zwj and zwnj have semantical use in other other wikis, don&#039;t remove them&lt;br /&gt;
	local zwj = &#039;\226\128\141&#039;  -- U+200D, E2 80 8D&lt;br /&gt;
	local zwnj = &#039;\226\128\140&#039; -- U+200C, E2 80 8C&lt;br /&gt;
	local disallowedUnicodeChars = &#039;[^%w%p%s&#039; .. zwj .. zwnj .. &#039;]&#039; -- for i18n we make this a separate string&lt;br /&gt;
	local code&lt;br /&gt;
	for k, _ in pairs(args) do&lt;br /&gt;
		--Find category parameters and store the number (main cat = &#039;&#039;)&lt;br /&gt;
		table.insert(stubCats, string.match(k, &#039;^category(%d*)$&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(stubCats)&lt;br /&gt;
	for k, v in ipairs(stubCats) do&lt;br /&gt;
		--Get category names and, if called by p.templatepage, the optional sort key&lt;br /&gt;
		local tsort, cat = args[&#039;tempsort&#039; .. v], mw.ustring.gsub(args[&#039;category&#039; .. v], disallowedUnicodeChars, &#039;&#039;)--remove all hidden unicode chars &lt;br /&gt;
		--Do not place template in main category if |tempsort = &#039;no&#039;. However, DO place articles of that template in the main category.&lt;br /&gt;
		table.insert(stubCats.v,&lt;br /&gt;
			 page and (--p.templatepage passes page; p.main does not, i.e. articles are categorized without sort keys.&lt;br /&gt;
				v==&#039;&#039; and tsort == &#039;no&#039;--if true, inserts &#039;true&#039; in table, which category() will reject&lt;br /&gt;
				or tsort and {cat, k = &#039; &#039;, t = tsort}&lt;br /&gt;
				or {cat, k = &#039; *&#039;, t = page.text}--note space in front of sort key&lt;br /&gt;
			)&lt;br /&gt;
			or cat&lt;br /&gt;
		)&lt;br /&gt;
		--Check category existance only if on the template page (i.e. stub documentation)&lt;br /&gt;
		if page then&lt;br /&gt;
			if not mw.title.new(&#039;Category:&#039; .. cat).exists then&lt;br /&gt;
				code = code or mw.html.create&#039;code&#039;:wikitext&#039;|category&#039;&lt;br /&gt;
				table.insert(stubCats.missing, tostring(mw.clone(code):wikitext(v)))&lt;br /&gt;
			end&lt;br /&gt;
			--[[&lt;br /&gt;
			Checks non-demo stub template for documentation and flags if doc is present.&lt;br /&gt;
			All stub cats names are checked and flagged if it does not match &#039;Category: [] stub&#039;.&lt;br /&gt;
			The main stub cat is exempt from the name check if the stub template has its own doc&lt;br /&gt;
			(presumably, this doc would have an explanation as to why the main stub cat is non-conforming).&lt;br /&gt;
			]]&lt;br /&gt;
			table.insert(stubCats.v, v == &#039;&#039; and not p.demo and pageDoc.exists and&lt;br /&gt;
				&#039;Stub message templates with documentation subpages&#039;&lt;br /&gt;
				or not cat:match&#039; stubs$&#039; and {k = &#039;S&#039;, t = page.text}&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	--Add category names after loop is completed&lt;br /&gt;
	category(stubCats.v)&lt;br /&gt;
	return #stubCats.missing &amp;gt; 0 and ombox{&lt;br /&gt;
		--Changed, original msg:&lt;br /&gt;
		--One or more of the stub categories defined in this template do not seem to exist!&lt;br /&gt;
		--Please double-check the parameters {{para|category}}, {{para|category1}} and {{para|category2}}.&lt;br /&gt;
		&#039;The following parameter&#039;&lt;br /&gt;
			.. (#stubCats.missing == 1 and &#039; defines a stub category that does&#039; or &#039;s define stub categories that do&#039;)&lt;br /&gt;
			.. &#039; not exist: &#039; .. mw.text.listToText(stubCats.missing),&lt;br /&gt;
		{k = &#039;N&#039;, t = page.text}&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Shows population of categories found by catStub(). Outputs demo values if none&lt;br /&gt;
local function population()&lt;br /&gt;
	local wikitext, base = {}, &#039;* [[:Category:%s]] (population: %s)\n&#039;&lt;br /&gt;
	if not args.category and stubCats[1] ~= false then&lt;br /&gt;
		table.insert(stubCats, 1, false)&lt;br /&gt;
	end&lt;br /&gt;
	for _, v in ipairs(stubCats) do&lt;br /&gt;
		table.insert(wikitext, base:format(&lt;br /&gt;
			v and args[&#039;category&#039; .. v] or &#039;{{{category}}}&#039;,&lt;br /&gt;
			v and mw.site.stats.pagesInCategory(args[&#039;category&#039; .. v], &#039;all&#039;) or 0&lt;br /&gt;
		))&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(wikitext)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Includes standard stub documention and flags stub templates with bad parameter values.&lt;br /&gt;
function p.templatepage(frame, page)&lt;br /&gt;
	args, page = p:init(frame, page)&lt;br /&gt;
	local tStubDoc = mw.title.new&#039;Template:Stub documentation&#039;&lt;br /&gt;
	local pageDoc = page:subPageTitle(&#039;doc&#039;)&lt;br /&gt;
	--Reorganization note: Original Asbox alternates between outputting categories and checking on params |category#=.&lt;br /&gt;
	--Rather than checking multiple times and switching tasks, all stub category param operations have been rolled into catStub()&lt;br /&gt;
	return Buffer(&lt;br /&gt;
		ombox{--Show ombox warnings for missing args.&lt;br /&gt;
			ifNot = args.category,&lt;br /&gt;
			&#039;The &amp;lt;code&amp;gt;|category&amp;lt;/code&amp;gt; parameter is not set. Please add an appropriate stub category.&#039;,&lt;br /&gt;
			{k = &#039;C&#039;, t = page.text}&lt;br /&gt;
		})&lt;br /&gt;
		:_(ombox{&lt;br /&gt;
			ifNot = args.subject or args.article or args.qualifier,&lt;br /&gt;
			&#039;This stub template contains no description! At least one of the parameters &amp;lt;code&amp;gt;|subject&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;|article&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;|qualifier&amp;lt;/code&amp;gt; must be defined.&#039;,&lt;br /&gt;
			{k = &#039;D&#039;, t = page.text}&lt;br /&gt;
		})&lt;br /&gt;
		:_(catStub(page, pageDoc))--catStub() may also return an ombox if there are non-existing categories&lt;br /&gt;
		:_(category{&lt;br /&gt;
			done = p.demo ~= &#039;doc&#039;,--Outputs categories if not doc demo&lt;br /&gt;
			&#039;Stub message templates&#039;,&lt;br /&gt;
			args.icon and&lt;br /&gt;
				&#039;Stub message templates using icon parameter&#039;&lt;br /&gt;
				or args.image and (&lt;br /&gt;
					mw.title.new(&#039;Media:&#039; .. mw.text.split(args.image, &#039;|&#039;)[1]).exists--do nothing if exists. category() will reject true&lt;br /&gt;
					or {k = &#039;B&#039;, t = page.text}&lt;br /&gt;
				)&lt;br /&gt;
				or &#039;Stub message templates without images&#039;,&lt;br /&gt;
			args.imagealt and {k = &#039;I&#039;, t = page.text},&lt;br /&gt;
		})&lt;br /&gt;
		:_((not p.demo or p.demo == &#039;doc&#039;) and--Add standard stub template documentation&lt;br /&gt;
			require(&#039;Module:Documentation&#039;).main{&lt;br /&gt;
				content = Buffer(page.text ~= &#039;Stub&#039; and--This comparison performed in {{Asbox/stubtree}} before it invokes Module:Asbox stubtree&lt;br /&gt;
						-- TODO: update this instance of Asbox to Article stub box eventually&lt;br /&gt;
						require(&#039;Module:Asbox stubtree&#039;).subtree{args = {pagename = page.text}}&lt;br /&gt;
					)&lt;br /&gt;
					:_in&#039;\n== About this template ==\nThis template is used to identify a&#039;:_(args.subject):_&#039;stub&#039;:_(args.qualifier):_out&#039; &#039;--space&lt;br /&gt;
					:_&#039;. It uses {{[[Template:Article stub box|article stub box]]}}, which is a meta-template designed to ease the process of creating and maintaining stub templates.\n=== Usage ===\nTyping &#039;&lt;br /&gt;
					:_(mw.html.create&#039;code&#039;&lt;br /&gt;
						:wikitext( mw.text.nowiki( &#039;{{&#039; ), page.text == &#039;Stub&#039; and &#039;stub&#039; or page.text, &#039;}}&#039;)&lt;br /&gt;
					)&lt;br /&gt;
					:_&#039; produces the message shown at the beginning, and adds the article to the following categor&#039;&lt;br /&gt;
					:_(#stubCats &amp;gt; 1 and &#039;ies&#039; or &#039;y&#039;)&lt;br /&gt;
					:_&#039;:\n&#039;&lt;br /&gt;
					:_(population())&lt;br /&gt;
					:_(pageDoc.exists and--transclusion of /doc if it exists&lt;br /&gt;
						frame:expandTemplate{title = pageDoc.text}&lt;br /&gt;
					)&lt;br /&gt;
					:_&#039;\n== General information ==\n&#039;&lt;br /&gt;
					:_(frame:expandTemplate{title = tStubDoc.text})&lt;br /&gt;
					:_&#039;\n\n&#039;(),&lt;br /&gt;
				[&#039;link box&#039;] = Buffer&#039;This documentation is automatically generated by [[Module:Article stub box]].&#039;&lt;br /&gt;
					:_in&#039;The general information is transcluded from [[Template:Stub documentation]]. &#039;&lt;br /&gt;
						:_(mw.html.create&#039;span&#039;&lt;br /&gt;
							:cssText&#039;font-size:smaller;font-style:normal;line-height:130%&#039;&lt;br /&gt;
							:node((&#039;([%s edit] | [%s history])&#039;):format(&lt;br /&gt;
								tStubDoc:fullUrl(&#039;action=edit&#039;, &#039;relative&#039;),&lt;br /&gt;
								tStubDoc:fullUrl(&#039;action=history&#039;, &#039;relative&#039;)&lt;br /&gt;
							))&lt;br /&gt;
						)&lt;br /&gt;
						:_out()&lt;br /&gt;
					:_(page.protectionLevels.edit and page.protectionLevels.edit[1] == &#039;sysop&#039; and&lt;br /&gt;
						&amp;quot;This template is [[WP:PROTECT|fully protected]] and any [[WP:CAT|categories]] should be added to the template&#039;s [&amp;quot;&lt;br /&gt;
						.. pageDoc:fullUrl(&#039;action=edit&amp;amp;preload=Template:Category_interwiki/preload&#039;, &#039;relative&#039;)&lt;br /&gt;
						.. &#039;| /doc] subpage, which is not protected.&#039;&lt;br /&gt;
					)&#039; &amp;lt;br/&amp;gt;&#039;&lt;br /&gt;
			}&lt;br /&gt;
		)()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame, page)&lt;br /&gt;
	args, page = p:init(frame, page)&lt;br /&gt;
	local output = mw.html.create&#039;div&#039;&lt;br /&gt;
		:attr{role = &#039;note&#039;}&lt;br /&gt;
		:addClass&#039;metadata plainlinks asbox stub&#039;&lt;br /&gt;
		:tag&#039;table&#039;&lt;br /&gt;
			:attr{role = &#039;presentation&#039;}&lt;br /&gt;
			:tag&#039;tr&#039;&lt;br /&gt;
				:addClass&#039;noresize&#039;&lt;br /&gt;
				:node((args.icon or args.image) and&lt;br /&gt;
					mw.html.create&#039;td&#039;&lt;br /&gt;
						:wikitext(args.icon or (&#039;[[File:%s|%spx|alt=%s]]&#039;):format(&lt;br /&gt;
							args.image or &#039;&#039;,&lt;br /&gt;
							args.pix or &#039;40x30&#039;,&lt;br /&gt;
							args.imagealt or &#039;Stub icon&#039;&lt;br /&gt;
						))&lt;br /&gt;
				)&lt;br /&gt;
				:tag&#039;td&#039;&lt;br /&gt;
					:tag&#039;p&#039;&lt;br /&gt;
						:addClass&#039;asbox-body&#039;&lt;br /&gt;
						:wikitext(&lt;br /&gt;
							Buffer&#039;This&#039;:_(args.subject):_(args.article or &#039;article&#039;):_(args.qualifier)&#039; &#039;,--space&lt;br /&gt;
							&#039; is a [[Wikipedia:stub|stub]]. You can help Wikipedia by [&#039;,&lt;br /&gt;
							page:fullUrl(&#039;action=edit&#039;, &#039;relative&#039;),&lt;br /&gt;
							&#039; expanding it].&#039;&lt;br /&gt;
						)&lt;br /&gt;
					:done()&lt;br /&gt;
					:node(args.note and&lt;br /&gt;
						mw.html.create()&lt;br /&gt;
							:tag&#039;p&#039;&lt;br /&gt;
								:addClass&#039;asbox-note&#039;&lt;br /&gt;
								:wikitext(args.note)&lt;br /&gt;
							:done()&lt;br /&gt;
					)&lt;br /&gt;
		:allDone()&lt;br /&gt;
		:node(args.name and&lt;br /&gt;
			require&#039;Module:Navbar&#039;._navbar{&lt;br /&gt;
				args.name,&lt;br /&gt;
				mini = &#039;yes&#039;,&lt;br /&gt;
			}&lt;br /&gt;
			)&lt;br /&gt;
	--[[&lt;br /&gt;
	Stub categories for templates include a sort key; this ensures that all stub tags appear at the beginning of their respective categories.&lt;br /&gt;
	Articles using the template do not need a sort key since they have unique names.&lt;br /&gt;
	When p.demo equals &#039;doc&#039;, the demo stub categories will appear as those for a stub template.&lt;br /&gt;
	Otherwise, any non-nil p.demo will emulate article space categories (plus any error cats unless set to &#039;art&#039;)&lt;br /&gt;
	]]&lt;br /&gt;
	if page.namespace == 0 then -- Main namespace&lt;br /&gt;
		category&#039;All stub articles&#039;&lt;br /&gt;
		catStub()&lt;br /&gt;
	elseif p.demo then&lt;br /&gt;
		if p.demo ~= &#039;doc&#039; then catStub() end&lt;br /&gt;
		--Unless p.demo is set to &#039;art&#039;, it will also include error categories normally only shown on&lt;br /&gt;
		--the template but not in the article. The elseif after namespace == 0 means demo cats will never show in article space.&lt;br /&gt;
		p.demodoc = p.demo ~= &#039;art&#039; and p.templatepage(frame, page)&lt;br /&gt;
		output = mw.html.create()&lt;br /&gt;
			:node(output)&lt;br /&gt;
			:tag&#039;small&#039;:wikitext(&lt;br /&gt;
				&#039;Demo categories: &#039;,&lt;br /&gt;
				(category{done = true}:gsub(&#039;(%[%[)(Category:)([^|%]]-)(%|)&#039;, &#039;%1%2%3|%2%3%4&#039;):gsub(&#039;(%[%[)(Category:)&#039;, &#039;%1:%2&#039;))&lt;br /&gt;
			):done()&lt;br /&gt;
			:wikitext(p.demo == &#039;doc&#039; and p.demodoc or nil)&lt;br /&gt;
	else&lt;br /&gt;
		--Checks for valid name; emulates original template&#039;s check using {{FULLPAGENAME:{{{name|}}}}}&lt;br /&gt;
		local normalizedName = mw.title.new(args.name or &#039;&#039;)&lt;br /&gt;
		if normalizedName and normalizedName.fullText == page.fullText then&lt;br /&gt;
			output = mw.html.create():node(output):wikitext(p.templatepage(frame, page))&lt;br /&gt;
		elseif not page.isSubpage and page.namespace == 10 then-- Template namespace and not a subpage&lt;br /&gt;
			category{{k = args.name and &#039;E&#039; or &#039;W&#039;, t = page.text}}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return frame:extensionTag{ name = &#039;templatestyles&#039;, args = { src = templatestyles} } .. tostring(output:wikitext(not p.demo and category{done = true} or nil))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Article_stub_box&amp;diff=2202</id>
		<title>Template:Article stub box</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Article_stub_box&amp;diff=2202"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Article stub box|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis to Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:AncientEgypt-stub&amp;diff=2200</id>
		<title>Template:AncientEgypt-stub</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:AncientEgypt-stub&amp;diff=2200"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{asbox&lt;br /&gt;
| image     = Head of the Great Sphinx (icon).png&lt;br /&gt;
| pix       = 40&lt;br /&gt;
| subject   = &lt;br /&gt;
| qualifier = about subjects relating to [[ancient Egypt]] (ca. 3150 BC - 30 BC)&lt;br /&gt;
| category  = Ancient Egypt stubs&lt;br /&gt;
| tempsort  =  *&lt;br /&gt;
| name      = Template:AncientEgypt-stub&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Ancient Egypt stub templates|*]]&lt;br /&gt;
[[Category:WikiProject Ancient Egypt templates|{{PAGENAME}}]]&lt;br /&gt;
{{pp-semi-indef}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Infobox_pyramid&amp;diff=2198</id>
		<title>Template:Infobox pyramid</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Infobox_pyramid&amp;diff=2198"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
| bodyclass = vcard&lt;br /&gt;
| aboveclass = fn org&lt;br /&gt;
| child    = {{{child|}}}&lt;br /&gt;
| above       = {{{name|{{{Name}}}}}}&lt;br /&gt;
&lt;br /&gt;
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|{{{Image|}}}}}}|size={{{image_size|}}}|sizedefault=frameless|alt={{{alt|}}}}}&lt;br /&gt;
| caption = {{{caption|{{{Caption|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| header1 = {{{owner|{{{Owner|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label2 = Location&lt;br /&gt;
| data2  = {{{location|{{{Location|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label3 = Coordinates&lt;br /&gt;
| data3 = {{#if:{{{coordinates|{{{coords|{{{Coords|}}}}}}}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates|{{{coords|{{{Coords}}}}}}}}}|type:landmark}}}}&lt;br /&gt;
&lt;br /&gt;
| label4 = Ancient name&lt;br /&gt;
| class4 = nickname&lt;br /&gt;
| data4  = {{{ancient|{{{Ancient|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label5 = Architect&lt;br /&gt;
| data5 = {{{architect|{{{Architect|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label6 = Constructed&lt;br /&gt;
| data6  = {{{date|{{{Date|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label7 = Type&lt;br /&gt;
| class7 = category&lt;br /&gt;
| data7  = {{{type|{{{Type|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label8 = Material&lt;br /&gt;
| class8 = category&lt;br /&gt;
| data8  = {{{material|{{{Material|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label9 = Height&lt;br /&gt;
| data9  = {{{height|{{{Height|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label10 = Base&lt;br /&gt;
| data10  = {{{base|{{{Base|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label11 = Volume&lt;br /&gt;
| data11  = {{{volume|{{{Volume|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label12 = Slope&lt;br /&gt;
| data12  = {{{slope|{{{Slope|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| data13 = {{{embedded|}}}&lt;br /&gt;
&lt;br /&gt;
| data14  = {{#if: {{{map_type|}}}|{{Location map|{{{map_type|}}}&lt;br /&gt;
 |relief  = {{{relief|}}}&lt;br /&gt;
 |alt     = {{{map_alt|}}}&lt;br /&gt;
 |coordinates = {{{coordinates|{{{coords|{{{Coords|}}}}}}}}}&lt;br /&gt;
 |float   = center&lt;br /&gt;
 |mark    = Gfi-set01-pyramide.png&lt;br /&gt;
 |label   = {{{map dot label|{{{map_dot_label|}}}}}}&lt;br /&gt;
 |border  = infobox&lt;br /&gt;
 |caption = {{#if:{{{map_caption}}}|{{{map_caption|Location within {{#invoke:Location map|data|{{{map_type|Earth}}}|name}}}}}}}&lt;br /&gt;
 |width   = {{#if:{{{map_size|}}}|{{{map_size}}}|220}}&lt;br /&gt;
}}}}&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;includeonly&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|}}|preview=Page using [[Template:Infobox pyramid]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| alt | Ancient | ancient | Architect | architect | Base | base | Caption | caption | child | coordinates | Coords | coords | Date | date | embedded | fetchwikidata | Height | height | Image | image | image_alt | image size | image_size | image_upright | imagesize | map dot label | map_alt | map_caption | map_caption | map_dot_label | map_size | map_type | Material | material | Name | name | Owner | owner | qid | refs | relief | Slope | slope | suppressfields | type | Type | Volume | volume }}&lt;br /&gt;
{{main other|{{#if:{{safesubst:#invoke:Check for unknown parameters|check|unknown=1|preview=1|child|nocoord|noicon|nomap|locmapin}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&amp;lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Egyptian_pyramids&amp;diff=2196</id>
		<title>Template:Egyptian pyramids</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Egyptian_pyramids&amp;diff=2196"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
 | name = Egyptian pyramids&lt;br /&gt;
 | title = [[Egyptian pyramids]]&lt;br /&gt;
 | state = &amp;lt;includeonly&amp;gt;collapsed&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
 | bodyclass = hlist&lt;br /&gt;
&lt;br /&gt;
 | above =&lt;br /&gt;
* [[List of Egyptian pyramids]]&amp;amp;nbsp;([[Lepsius list of pyramids|Lepsius]])&lt;br /&gt;
* {{icon|Commons}} [[commons:Category:Pyramids of Egypt|Commons]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------(headers)---------&amp;gt;&lt;br /&gt;
 | list1 = {{Navbox|child|groupwidth = 10.9em&lt;br /&gt;
&lt;br /&gt;
   | group1 = [[History of ancient Egypt|Period]]&lt;br /&gt;
   | list1 = {{Navbox|child|groupwidth = 4.5em&lt;br /&gt;
     | listclass = navbox-group&lt;br /&gt;
     | groupstyle = text-align:center;&lt;br /&gt;
     | group1 = [[List of ancient Egyptian dynasties|Dynasty]]&lt;br /&gt;
     | list1 =&lt;br /&gt;
* &#039;&#039;&#039;Pyramids&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------- Old Kingdom ----------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | group2 = [[Old Kingdom of Egypt|Old Kingdom]]&amp;lt;br /&amp;gt;{{nobold|{{smaller|(2686–2181 BC)}}}}&lt;br /&gt;
 | list2 = {{Navbox|child |groupwidth = 4.5em&lt;br /&gt;
   | groupstyle = text-align:center;&lt;br /&gt;
&lt;br /&gt;
   | group1 = [[Third Dynasty of Egypt|III]]&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[Pyramid of Djoser|Djoser]]&lt;br /&gt;
* &#039;&#039;[[Buried Pyramid|Buried]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Layer Pyramid|Layer]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Lepsius I Pyramid|Lepsius I]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid of Athribis|Athribis]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid of Elephantine|Elephantine]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Edfu South Pyramid|Edfu South]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid of el-Kula|el-Kula]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid of Naqada|Naqada]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid of Zawyet el-Maiyitin|Zawyet el-Maiyitin]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid of Sinki|Sinki]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   | group2 = [[Fourth Dynasty of Egypt|IV]]&lt;br /&gt;
   | list2 =&lt;br /&gt;
* &#039;&#039;[[Pyramid of Seila|Seila]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Meidum]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Bent Pyramid|Bent]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Red Pyramid|Red]]&#039;&#039;&lt;br /&gt;
* [[Great Pyramid of Giza|Khufu]]&lt;br /&gt;
* [[Pyramid of Djedefre|Djedefre]]&lt;br /&gt;
* &#039;&#039;[[Unfinished Northern Pyramid of Zawyet el&#039;Aryan]]&#039;&#039;&lt;br /&gt;
* [[Pyramid of Khafre|Khafre]]&lt;br /&gt;
* [[Pyramid of Menkaure|Menkaure]]&lt;br /&gt;
* [[Pyramid of Khentkaus I|Khentkaus I]]&lt;br /&gt;
* &#039;&#039;[[Mastabat al-Fir&#039;aun|Mastabet el-Fara&#039;un]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G1-a|G1-a]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G1-b|G1-b]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G1-c|G1-c]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G1-d|G1-d]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G2-a|G2-a]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G3-a|G3-a]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G3-b|G3-b]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Pyramid G3-c|G3-c]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Lepsius L]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   | group3 = [[Fifth Dynasty of Egypt|V]]&lt;br /&gt;
   | list3 =&lt;br /&gt;
* [[Pyramid of Userkaf|Userkaf]]&lt;br /&gt;
* [[Pyramid of Neferhetepes|Neferhetepes]]&lt;br /&gt;
* [[Pyramid of Sahure|Sahure]]&lt;br /&gt;
* [[Pyramid of Neferirkare|Neferirkare]]&lt;br /&gt;
* [[Pyramid of Khentkaus II|Khentkaus II]]&lt;br /&gt;
* [[Pyramid of Neferefre|Neferefre]]&lt;br /&gt;
* &#039;&#039;[[Unfinished Pyramid of Abusir|Unfinished]]&#039;&#039;&lt;br /&gt;
* [[Pyramid of Nyuserre|Nyuserre]]&lt;br /&gt;
* &#039;&#039;[[Lepsius XXIV]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Double Pyramid|Double]]&#039;&#039;&lt;br /&gt;
* [[Headless Pyramid|&#039;&#039;Headless&#039;&#039;]]&lt;br /&gt;
* [[Pyramid of Djedkare Isesi|Djedkare-Isesi]]&lt;br /&gt;
* [[Pyramid of Unas|Unas]]&lt;br /&gt;
&lt;br /&gt;
   | group4 = [[Sixth Dynasty of Egypt|VI]]&lt;br /&gt;
   | list4 =&lt;br /&gt;
* [[Pyramid of Teti|Teti]]&lt;br /&gt;
* [[Pyramid of Pepi I|Pepi I]]&lt;br /&gt;
* [[Pyramid of Merenre|Merenre]]&lt;br /&gt;
* [[Pyramid of Pepi II|Pepi II]]&lt;br /&gt;
* [[Pyramid of Sesheshet|Sesheshet]]&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!------------------------ First Intermediate -----------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | group3 = [[First Intermediate Period of Egypt|1{{sup|st}} Intermediate Period]]&amp;lt;br /&amp;gt;{{nobold|{{smaller|(2181–2040 BC)}}}}&lt;br /&gt;
 | list3 = {{Navbox|child |groupwidth = 4.5em&lt;br /&gt;
   | groupstyle = text-align:center;&lt;br /&gt;
&lt;br /&gt;
   | group1 = {{hlist | [[Eighth Dynasty of Egypt| VIII]] }}&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[Pyramid of Ity|Ity]]&lt;br /&gt;
* [[Pyramid of Neferkare Neby|Neferkare Neby]]&lt;br /&gt;
* [[Qakare Ibi#Pyramid complex|Ibi]]&lt;br /&gt;
* [[Pyramid of Khui|Khui]]&lt;br /&gt;
&lt;br /&gt;
   | group2 = [[Tenth Dynasty of Egypt|X]]&lt;br /&gt;
   | list2 =&lt;br /&gt;
* [[Pyramid of Merikare|Merikare]]&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------- Middle Kingdom -------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | group4 = [[Middle Kingdom of Egypt|Middle Kingdom]]&amp;lt;br /&amp;gt;{{nobold|{{smaller|(2040–1650 BC)}}}}&lt;br /&gt;
 | list4 = {{Navbox|child |groupwidth = 4.5em&lt;br /&gt;
   | groupstyle = text-align:center;&lt;br /&gt;
&lt;br /&gt;
   | group1 = [[Eleventh Dynasty of Egypt|XI]]&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[Pyramid of Reherishefnakht|Reherishefnakht]]&lt;br /&gt;
&lt;br /&gt;
   | group2 = [[Twelfth Dynasty of Egypt|XII]]&lt;br /&gt;
   | list2 =&lt;br /&gt;
* [[Pyramid of Amenemhat I|Amenemhat I]]&lt;br /&gt;
* [[Pyramid of Senusret I|Senusret I]]&lt;br /&gt;
* &#039;&#039;[[White Pyramid|White]]&#039;&#039;&lt;br /&gt;
* [[Pyramid of Senusret II|Senusret II]]&lt;br /&gt;
* [[Pyramid of Senusret III|Senusret III]]&lt;br /&gt;
* &#039;&#039;[[Pyramid of Amenemhat III (Dahshur)|Black]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Hawara]]&#039;&#039;&lt;br /&gt;
* {{Interlanguage link|Pyramid of Neferuptah|de|3=Neferuptah-Pyramide|lt=Neferuptah}}&lt;br /&gt;
* &#039;&#039;{{Interlanguage link|Pyramid of Central Dahshur|de|3=Pyramide von Zentral-Dahschur|lt=Central Dahshur}}&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Southern Mazghuna pyramid|South Mazghuna]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Northern Mazghuna pyramid|North Mazghuna]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
   | group3 = [[Thirteenth Dynasty of Egypt|XIII]]&lt;br /&gt;
   | list3 =&lt;br /&gt;
* [[Pyramid of Ameny Qemau|Ameny Qemau]]&lt;br /&gt;
* [[Pyramid of Khendjer|Khendjer]]&lt;br /&gt;
* &#039;&#039;[[Southern South Saqqara pyramid|Southern South Saqqara]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[SAK S 3]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;{{Interlanguage link|SAK S 7|de}}&#039;&#039;&lt;br /&gt;
* &#039;&#039;{{Interlanguage link|South Dahshur Pyramid A|de|3=Süddahschur-A-Pyramide|lt=South Dahshur A}}&#039;&#039;&lt;br /&gt;
* &#039;&#039;{{Interlanguage link|South Dahshur Pyramid B|de|3=Süddahschur-B-Pyramide|lt=South Dahshur B}}&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[DAS 46]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[DAS 49]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[DAS 50]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[DAS 51]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;{{Interlanguage link|DAS 53|de}}&#039;&#039;&lt;br /&gt;
* [[S 9 (Abydos)|S 9]]&lt;br /&gt;
* [[S 10 (Abydos)|S 10]]&lt;br /&gt;
* [[Pyramid of Merneferre Ay|Merneferre Ay]]&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--------------------------- Second Intermediate ---------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | group5 = [[Second Intermediate Period|Second Intermediate]]&amp;lt;br /&amp;gt;{{nobold|{{smaller|(1650–1570 BC)}}}}&lt;br /&gt;
 | list5 = {{Navbox|child |groupwidth = 4.5em&lt;br /&gt;
   | groupstyle = text-align:center;&lt;br /&gt;
   | group1 = [[Seventeenth Dynasty of Egypt|XVII]]&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[Pyramid of Sobekemsaf I|Sobekemsaf I]]&lt;br /&gt;
* [[Pyramid of Sobekemsaf II|Sobekemsaf II]]&lt;br /&gt;
* [[Pyramid of Sekhemre-Wepmaat Intef|Sekhemre-Wepmaat Intef]]&lt;br /&gt;
* [[Dra&#039; Abu el-Naga&#039;#Other tombs|Nubkheperre Intef]]&lt;br /&gt;
* [[Pyramid of Senakhtenre Ahmose|Senakhtenre Ahmose]]&lt;br /&gt;
* [[Pyramid of Seqenenre Tao|Seqenenre Tao]]&lt;br /&gt;
* [[Pyramid of Kamose|Kamose]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--------------------------- New Kingdom ---------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | group6 = [[New Kingdom of Egypt|New Kingdom]]&amp;lt;br /&amp;gt;{{nobold|{{smaller|(1570–1070 BC)}}}}&lt;br /&gt;
 | list6 = {{Navbox|child |groupwidth = 4.5em&lt;br /&gt;
   | groupstyle = text-align:center;&lt;br /&gt;
&lt;br /&gt;
   | group1 = [[Eighteenth Dynasty of Egypt|XVIII]]&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[Pyramid of Ahmose|Ahmose]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
   | group2 = [[Nineteenth Dynasty of Egypt|XIX]]&lt;br /&gt;
   | list2 =&lt;br /&gt;
   &lt;br /&gt;
   | group3 = [[Twentieth Dynasty of Egypt|XX]]&lt;br /&gt;
   | list3 =&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | below =&lt;br /&gt;
* [[Step pyramid]]&lt;br /&gt;
* [[Egyptian pyramid construction techniques|Construction techniques]]&lt;br /&gt;
* [[Seked]]&lt;br /&gt;
* [[Pyramid Texts|Texts]]&lt;br /&gt;
* [[Pyramidion]]&lt;br /&gt;
* [[Pyramidology]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation | content =&lt;br /&gt;
* Although expanded here, this template is collapsed when [[Wikipedia:Transclusion|transcluded]].&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Ancient Egypt templates|Pyramids]]&lt;br /&gt;
[[Category:Egypt buildings and structures templates]]&lt;br /&gt;
[[Category:History and events navigational boxes]]&lt;br /&gt;
[[Category:WikiProject Ancient Egypt templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Buffer&amp;diff=2194</id>
		<title>Module:Buffer</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Buffer&amp;diff=2194"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[=============================&lt;br /&gt;
This Module was written by Alexander Zhikun He, also known as, User:Codehydro on the English Wikipedia&lt;br /&gt;
&lt;br /&gt;
All methods were developed independently and any resemblance to other string buffer libraries would be coincidental.&lt;br /&gt;
Furthermore, many methods will not work when compiled by standard Lua libraries as they depend on behaviors unique to&lt;br /&gt;
the MediaMiki Scribunto mod, which, for example, has a getmetatable() method that always returns nil on non-tables.&lt;br /&gt;
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual&lt;br /&gt;
&lt;br /&gt;
Source code comments may be thin at some points because they are intended to be supplemented by the documentation page:&lt;br /&gt;
https://en.wikipedia.org/wiki/Module:Buffer/doc&lt;br /&gt;
&lt;br /&gt;
Licensed under Creative Commons Attribution-ShareAlike 3.0 Unported License&lt;br /&gt;
https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Module:Buffer&lt;br /&gt;
https://en.wikipedia.org/wiki/User:Codehydro&lt;br /&gt;
=============================--]]&lt;br /&gt;
local function Valid(v)--type validation&lt;br /&gt;
	if v and v~=true then--reject nil/boolean; faster than 2 type() comparisons&lt;br /&gt;
		local str = tostring(v)--functions not filtered since unlikely passed by accident (Scribunto does not have userdata/thread types)&lt;br /&gt;
		if str~=v and str==&#039;table&#039; then return rawget(v, 1) and table.concat(v) end--tostring(string-type) returns same ref; same refs compare faster than type()&lt;br /&gt;
		if str~=&#039;&#039; then return str end--numbers are coerced to string per table.concat op; appending in string form saves ops on repeat concat&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
local noOp, MBpairs = function()end do local iMap, vMap, oMap, pIter, pOther, pFast, Next--Map&lt;br /&gt;
	local function init()--init = noOp after first run&lt;br /&gt;
		function Next(t) return next, t end--slightly faster to do this than to use select()&lt;br /&gt;
		function pIter(t, k) k = (iMap[t] or MBpairs(t, true) and iMap[t])[not k and 1 or vMap[t][k]] return k, t[k] end--don&#039;t use rawget; accepting unmapped tables does not measurably affect performance.&lt;br /&gt;
		function pOther(t, k) k = (oMap[t] or MBpairs(t, true) and oMap[t])[nil==k and 1 or vMap[t][k]] return k, t[k] end--comparison to nil because false is a valid key&lt;br /&gt;
		function pFast(t, k) k = not k and 1 or k &amp;lt; (vMap[t] or #t) and k + 1 or nil return k, t[k] end--mapless iterator; almost as fast as native ipairs; slight performance penalty when length not cached&lt;br /&gt;
							   --k and k &amp;lt; (vMap[t] or #t) and k + 1 or not k and 1 or nil return k, t[k] end--mapless iterator; almost as fast as native ipairs; slight performance penalty when length not cached&lt;br /&gt;
		local mk = {__mode = &#039;k&#039;}--use mode &#039;k&#039;; found that mode &#039;kv&#039; sometimes garbage collects maps mid-loop (may not error because iterators auto re-map, but that&#039;s expensive)&lt;br /&gt;
		init, iMap, vMap, oMap = noOp, setmetatable({}, mk), setmetatable({}, mk), setmetatable({}, mk)--iMap is numeric keys, oMap is non-numeric keys, and vMap points to next key&lt;br /&gt;
	end&lt;br /&gt;
	function MBpairs(t, ...)--pairs always iterates in order&lt;br /&gt;
		local iter, ex = ...&lt;br /&gt;
		iter = iter==init()--nil&lt;br /&gt;
		if iter and not oMap[t] and ex==nil and rawget(t, 1)~=nil and next(t, #t)==nil then--while possible to miss keys, more thorough check would negate the benefit of pFast&lt;br /&gt;
			vMap[t] = #t return pFast, t, nil&lt;br /&gt;
		elseif ... or not vMap[t] or select(&#039;#&#039;, ...)~=1 then&lt;br /&gt;
			local ti, tn, to, n = {}, {}, {}, #t--reduces table lookups&lt;br /&gt;
			iMap[t], vMap[t], oMap[t] = ti, tn, to&lt;br /&gt;
			for k = 1, n do ti[k], tn[k] = k, k + 1 end--stage one avoids number type checking op in stage two for most numeric keys&lt;br /&gt;
			for k in (ex or Next)(t) do&lt;br /&gt;
				if not tn[k] then table.insert(tonumber(k)~=k and to or ti, k) end&lt;br /&gt;
			end&lt;br /&gt;
			if #ti~=n then&lt;br /&gt;
				table.sort(ti)&lt;br /&gt;
				for k = 1, #ti do tn[ti[k]] = k + 1 end--somewhat wasteful, but trying to avoid overwriting can be even more expensive&lt;br /&gt;
			end&lt;br /&gt;
			for k = 1, #to do tn[to[k]] = k + 1 end&lt;br /&gt;
		end&lt;br /&gt;
		return iter and pIter or oMap[t] and pOther or noOp, t--noOp for mapless&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
local parent, rawkey, spec do--new scope for variables not reused outside (reduces number of var names that need to checked outside of scope)&lt;br /&gt;
	local mkv = {__mode=&#039;kv&#039;, __call=function(t,k,v)t[k]=v return k end}--shared meta for Buffer parent property, raw mode, and specialized functions&lt;br /&gt;
	parent, rawkey, spec = setmetatable({}, mkv), setmetatable({}, mkv), setmetatable({}, mkv)--shared meta less memory&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local MB, MBi, MBmix, buffHTML, gfuncs, noCache, Element do--minimize number of locals per scope to reduce time spent sifting through irrelevant variable names&lt;br /&gt;
	local _stream do local stream--keep stream near top of scope&lt;br /&gt;
		local function init(f)--init = noOp after first run&lt;br /&gt;
			local function each(self, ...)&lt;br /&gt;
				for k = 1, select(&#039;#&#039;, ...) do&lt;br /&gt;
					k = Valid(select(k, ...))--slightly faster than table.insert(self, (Valid(select(k, ...))))&lt;br /&gt;
					if k then table.insert(self, k) end&lt;br /&gt;
				end&lt;br /&gt;
				return self&lt;br /&gt;
			end&lt;br /&gt;
			init, stream, _stream = noOp, {&lt;br /&gt;
				__call = function(t, v) v = v and Valid(v) return v and table.insert(t, v) or t end,--last_concat cleared before entering stream mode&lt;br /&gt;
				__index = function(t, i) return i==&#039;each&#039; and each or MB.__index(t, i) and setmetatable(t, MB)[i] end,--no table look up minimizes resources to retrieve the only stream function&lt;br /&gt;
				__tostring = function(t) return setmetatable(t, MB)() end&lt;br /&gt;
			} for k, v in next, MB do stream[k] = stream[k] or v end&lt;br /&gt;
			setmetatable(stream, getmetatable(MB))&lt;br /&gt;
		end&lt;br /&gt;
		function _stream(self, ...) self.last_concat = init() return setmetatable(self, stream):each(...) end&lt;br /&gt;
	end&lt;br /&gt;
	local function isMBfunc(Buffer, s, ...)--helper for :getParent()-like methods (including getBuffer which does not return a parent)&lt;br /&gt;
		return s and (select(&#039;#&#039;, ...)==0 and--eventually should figure out to make this work for :getHTML which is very similar&lt;br /&gt;
				(not rawkey[s] and tostring(s):match&#039;^_.*&#039; and MB.__index(Buffer, s) and MB.__index(Buffer, s)(Buffer) or MBmix(Buffer, s))--unprefixed function names append as a string&lt;br /&gt;
				or assert(MB.__index(Buffer, s), (&#039;&amp;quot; %s &amp;quot; does not match any available Module:Buffer function&#039;):format(s))(Buffer, ...)--getParent is a one-way trip so one-time assert not expensive&lt;br /&gt;
			) or Buffer&lt;br /&gt;
	end&lt;br /&gt;
	local function MBselect(n, ...)--helper for :_out and :_str&lt;br /&gt;
		local n, seps = n - 1, {select(2, ...)}&lt;br /&gt;
		if type(seps[n])==&#039;table&#039; then &lt;br /&gt;
			if buffHTML and rawget(seps[n], buffHTML) then return ... end&lt;br /&gt;
			setmetatable(seps, {__index = setmetatable(seps[n], {__index = function(t) return rawget(t, 1) end})})[n] = nil&lt;br /&gt;
		end&lt;br /&gt;
		return ..., seps&lt;br /&gt;
	end&lt;br /&gt;
	local _inHTML do local lastBuffer, lastHTML&lt;br /&gt;
		local function init(...)--init replaced and new version called on return&lt;br /&gt;
			local create, mwFunc = mw.html.create do&lt;br /&gt;
				local mwHTMLmeta = getmetatable(create())&lt;br /&gt;
				buffHTML, mwFunc, _inHTML = setmetatable(mw.clone(mwHTMLmeta), getmetatable(MB)), mwHTMLmeta.__index--buffHTML declared near top of module; remove _inHTML from outer scope&lt;br /&gt;
				function init(nodes, ...)&lt;br /&gt;
					local name, args, tag = select(... and type(...)==&#039;table&#039; and 1 or 2, nil, ...)&lt;br /&gt;
					tag = create(Valid(name), args)&lt;br /&gt;
					if nodes then table.insert(nodes, tag.parent and tag or rawset(tag, &#039;parent&#039;, parent[nodes])) end&lt;br /&gt;
					if args then&lt;br /&gt;
						local a, b = args.selfClosing, args.parent&lt;br /&gt;
						args.selfClosing, args.parent = nil&lt;br /&gt;
						if next(args) then Element._add(parent(tag.nodes, tag), args) end&lt;br /&gt;
						args.selfClosing, args.parent = a, b--in case args is reused&lt;br /&gt;
					end&lt;br /&gt;
					return tag&lt;br /&gt;
				end&lt;br /&gt;
				for k, v in next, {[mw] = mwHTMLmeta,&lt;br /&gt;
					__call = function(h, v) return MBmix(spec[h.nodes] and h.nodes or spec(setmetatable(parent(h.nodes, h), MB), Element), v) end,&lt;br /&gt;
					__concat = false,--false means take from MB&lt;br /&gt;
					__eq = false&lt;br /&gt;
				} do buffHTML[k] = v or MB[k] end&lt;br /&gt;
			end&lt;br /&gt;
			local nonSelf, BHi = {tag=true,done=true,allDone=true}, buffHTML.__index do local g&lt;br /&gt;
				g = {__index = function(t, i)&lt;br /&gt;
					if gfuncs and gfuncs[i] then g.__index, gfuncs = gfuncs return g.__index[i] end&lt;br /&gt;
				end}&lt;br /&gt;
				setmetatable(nonSelf, g)&lt;br /&gt;
				setmetatable(BHi, g)&lt;br /&gt;
			end&lt;br /&gt;
			for k in next, nonSelf do--any HTML objects returned by these funcs will be granted Module:Buffer enhancements&lt;br /&gt;
				local func = mwFunc[k]&lt;br /&gt;
				BHi[k] = function(t, ...) local HTML = func(t, ...) return parent[HTML] and HTML or setmetatable(parent(HTML, t), buffHTML) end&lt;br /&gt;
			end&lt;br /&gt;
			do local function joinNode(HTML, sep)&lt;br /&gt;
					local nodes, join = HTML.nodes&lt;br /&gt;
					if noCache and rawkey[sep] or Valid(sep) then join, HTML.nodes = tostring(rawset(HTML, &#039;nodes&#039;, {MB.__call(nodes, sep)})), nodes end&lt;br /&gt;
					return join or tostring(HTML)&lt;br /&gt;
				end&lt;br /&gt;
				for k, v in next, {&lt;br /&gt;
					getParent = function(HTML, ...) lastHTML = HTML return MBi.getParent(HTML:allDone(), ...) end,--return to Buffer that created the HTML tree&lt;br /&gt;
					getBuffer = function(HTML, ...) lastHTML = HTML return isMBfunc(lastBuffer, ...) end,--return to last used&lt;br /&gt;
					killParent = function(HTML, ...) MBi.killParent(HTML:allDone(), ...) return HTML end,&lt;br /&gt;
					_out = function(HTML, ...)&lt;br /&gt;
						if ...==0 then MBi._out(HTML.nodes, ...) return HTML end&lt;br /&gt;
						lastHTML, HTML = HTML, HTML:allDone()&lt;br /&gt;
						local n, ops, seps = select(&#039;#&#039;, ...)&lt;br /&gt;
						if n &amp;gt; 1 then&lt;br /&gt;
							local ops, seps = MBselect(n, ...)&lt;br /&gt;
							return parent[HTML]:_in(joinNode(HTML, rawget(seps, 0))):_out(ops, rawset(seps, buffHTML, true))&lt;br /&gt;
						end&lt;br /&gt;
						return parent[HTML]:_(joinNode(HTML, ...))&lt;br /&gt;
					end,&lt;br /&gt;
					_str = function(HTML, ...)--does not set lastHTML&lt;br /&gt;
						if ...==0 then return joinNode(HTML, select(2, ...)) end--passing 0 strings without calling allDone()&lt;br /&gt;
						local HTML, n = HTML:allDone(), select(&#039;#&#039;, ...)&lt;br /&gt;
						if n &amp;gt; 1 then&lt;br /&gt;
							local ops, seps = MBselect(n, ...)&lt;br /&gt;
							return parent[HTML]:_in(joinNode(HTML, rawget(seps, 1))):_str(ops, rawset(seps, buffHTML, true))&lt;br /&gt;
						end&lt;br /&gt;
						return joinNode(HTML, ...)&lt;br /&gt;
					end,&lt;br /&gt;
					_parent = function(HTML, ...) table.insert(HTML.nodes, parent[HTML:allDone()]:_str(...)) return HTML end&lt;br /&gt;
				} do BHi[k] = v end&lt;br /&gt;
			end&lt;br /&gt;
			do local htmlArg, skip, outFuncs = {parent=true,selfClosing=true,tagName=true}, {}&lt;br /&gt;
				do local out local function func(nodes, ...) return out(parent[nodes], ...) end&lt;br /&gt;
					outFuncs = setmetatable({&lt;br /&gt;
						tag = function(nodes, ...) return parent(setmetatable(init(nodes, ...), buffHTML), parent[nodes]) end,&lt;br /&gt;
						done = function(b, ops)&lt;br /&gt;
							b = parent[b] &lt;br /&gt;
							while b.parent and ops~=0 do b, ops = b.parent, ops and ops - 1 or 0 end&lt;br /&gt;
							return b&lt;br /&gt;
						end&lt;br /&gt;
					}, {__index = function(nodes, i)&lt;br /&gt;
						if rawget(BHi, i) then out = BHi[i] return func end--rawget to exclude globals&lt;br /&gt;
					end})&lt;br /&gt;
				end&lt;br /&gt;
				Element = {&lt;br /&gt;
					_add = function(nodes, t)&lt;br /&gt;
						for k, v in MBpairs(t), t, skip[t] do (v~=true and MBmix or noOp)(nodes, v) end&lt;br /&gt;
						local HTML = parent[nodes] for k, v in MBpairs(t, false) do&lt;br /&gt;
							if htmlArg[k] then HTML[k] = v&lt;br /&gt;
							elseif v and v~=true then&lt;br /&gt;
								if nonSelf[k] then&lt;br /&gt;
									if k==&#039;tag&#039; then&lt;br /&gt;
										if type(v)==&#039;table&#039; then&lt;br /&gt;
											skip[v], k = 1, rawset(create(Valid(v[1])), &#039;parent&#039;, HTML)&lt;br /&gt;
											Element._add(spec(parent(k.nodes, k, table.insert(nodes, k)), Element), v)&lt;br /&gt;
											if k.selfClosing then k.nodes = nil else spec[k.nodes], parent[k.nodes] = nil end--free memory/reduce clutter; parent ref will auto-unset when k.nodes is nil&lt;br /&gt;
											if not k.tagName then k.styles, k.attributes = nil end&lt;br /&gt;
										else table.insert(nodes, create(v)) end&lt;br /&gt;
									elseif mwFunc[k] then&lt;br /&gt;
										if k==&#039;done&#039; and tonumber(v)~=v and v[1] and tonumber(v[1])==v[1] then skip[v] = 1 end&lt;br /&gt;
										MBmix(outFuncs[k](nodes, skip[v] and v[1]).nodes, v)&lt;br /&gt;
									elseif v[1] or v[2] then&lt;br /&gt;
										k = MBi[k](nodes, unpack(v, 1, rawset(skip, v, k==&#039;_B&#039; and 1 or 2)[v]))&lt;br /&gt;
										Element._add(getmetatable(k) and rawget(k, &#039;nodes&#039;) or k, v)--if k is not a table, then v should not contain any extra keys or this may error.&lt;br /&gt;
									else MBi[k](nodes, v) end--k probably == &#039;_G&#039; or &#039;_R&#039;&lt;br /&gt;
								elseif mwFunc[k] then&lt;br /&gt;
									if type(v)~=&#039;table&#039; or rawget(v, &#039;nodes&#039;) then mwFunc[k](HTML, v)&lt;br /&gt;
									else&lt;br /&gt;
										local css = k==&#039;css&#039;&lt;br /&gt;
										for x, y in MBpairs(v, true) do (y and y~=true and mwFunc[k] or noOp)(HTML, css and x:gsub(&#039;_&#039;, &#039;-&#039;) or x, y) end--iterate non-numbers first&lt;br /&gt;
										for _, y in MBpairs(v, nil) do (y and y~=true and mwFunc[k] or noOp)(HTML, y) end--don&#039;t bother with gsub since text must be quoted anyhow&lt;br /&gt;
									end&lt;br /&gt;
								elseif rawget(Element, k) or rawget(MBi, k) then&lt;br /&gt;
									if tonumber(v)==v or v[1]==nil or getmetatable(v) then (Element[k] or MBi[k])(nodes, v)--v is probably string-able object, or a table to be handled by :_all&lt;br /&gt;
									else (Element[k] or MBi[k])(nodes, unpack(v, 1, table.maxn(v))) end--v is definately a table&lt;br /&gt;
								else mwFunc.css(HTML, k:gsub(&#039;_&#039;, &#039;-&#039;, 1), tostring(v)) end--oddly enough, :_add clocked its fastest runtime after adding auto-gsub as a feature&lt;br /&gt;
								skip[v] = nil&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						return nodes&lt;br /&gt;
					end&lt;br /&gt;
				}&lt;br /&gt;
				local tempMeta = {mode=&#039;v&#039;, copy={styles=true,attributes=true}}&lt;br /&gt;
				function tempMeta.__index(t, i) return tempMeta.copy[i] and rawset(t, i, MBi._cc(false, 0, t.orig[i]))[i] or t.orig[i] end&lt;br /&gt;
				rawkey[setmetatable(Element, {__index = outFuncs, __concat=function(Element, v) return setmetatable({nodes=spec({}, Element),orig=parent[v]}, tempMeta) end})] = math.huge&lt;br /&gt;
			end&lt;br /&gt;
			function MBi:getHTML(...)&lt;br /&gt;
				lastBuffer = self&lt;br /&gt;
				if ... then&lt;br /&gt;
					if select(&#039;#&#039;, ...)==1 then return not rawkey[s] and tostring(...):match&#039;^_&#039; and BHi[...] and BHi[...](lastHTML) or lastHTML(...)&lt;br /&gt;
					else return assert(BHi[...], (&#039;&amp;quot; %s &amp;quot; does not match any mw.html or Buffer-mw.html function&#039;):format(tostring(...)))(lastHTML, select(2, ...)) end&lt;br /&gt;
				end&lt;br /&gt;
				return lastHTML&lt;br /&gt;
			end&lt;br /&gt;
			function MBi:_html(...) return MBi._(self, lastHTML, select(spec[self]==Element and select(&#039;#&#039;, ...)==0 and 1 or 2, true, ...)) end&lt;br /&gt;
			return init(...)&lt;br /&gt;
		end&lt;br /&gt;
		function _inHTML(self, ...)&lt;br /&gt;
			local HTML = init(nil, ...)&lt;br /&gt;
			if HTML.selfClosing and spec[self]==Element then self.last_concat = table.insert(self, HTML) return self end&lt;br /&gt;
			lastBuffer, lastHTML = self, setmetatable(parent(HTML, self), buffHTML)--set after &#039;args&#039; table processed by :_add&lt;br /&gt;
			return HTML&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local _var, unbuild do local prev, rebuild&lt;br /&gt;
		local function init(...)--init replaced before return&lt;br /&gt;
			local function pick(b, v) return b and table.insert(b, v) or v end&lt;br /&gt;
			local function c(a, num) return rawset(a.a or a, 0, a[0] and a[0] + a.c or num and a[1] or a[1]:byte())[0] end&lt;br /&gt;
			local same, build, alt = {__tostring = function(a, b) return a.a[0] and pick(b, a.a.string and string.char(a.a[0]) or a.a.table and a.a[1][a.a[0]] or a.a[0]) end}, {&lt;br /&gt;
				__index = {c = 1},&lt;br /&gt;
				__tostring = function(t) return t:_build() end,&lt;br /&gt;
				table = function(a, b) local i = next(a[1], a[0]) or a[0]==#a[1] and next(a[1]) return pick(b, rawset(a.a or a, 0, i)[1][i]) end,--change rate (a.c) ignored since users control the table&#039;s contents&lt;br /&gt;
				number = function(a, b) return pick(b, c(a, true)) end,&lt;br /&gt;
				string = function(a, b) return pick(b, string.char(c(a))) end&lt;br /&gt;
			}, {__index = function(a, i) return a.a[i] end, __tostring = function(a, b) return (rawget(a, 0) and a[0]==tostring(a[0]) and rawset(a, 0, a[0]:byte()) or a).a._build(a, b) end}&lt;br /&gt;
			local function shift(t, c)&lt;br /&gt;
				t[0] = t[0] and t[0] + c or t:_build() and t[0] - t.c + c&lt;br /&gt;
				if t.table then t[0] = (t[0] - 1) % #t[1] + 1 end&lt;br /&gt;
			end&lt;br /&gt;
			function rebuild(...)&lt;br /&gt;
				local v, c = ...&lt;br /&gt;
				if v or select(&#039;#&#039;, ...)==0 then&lt;br /&gt;
					if v and not c then return prev end&lt;br /&gt;
					local meta, c = select(v and 1 or 3, alt, c, same, 0)&lt;br /&gt;
					return setmetatable({a = prev, _build = meta.__tostring, c = c}, meta)&lt;br /&gt;
				elseif v==nil then--no-op&lt;br /&gt;
				elseif c then shift(prev, c)--v == false&lt;br /&gt;
				else prev:_build() end&lt;br /&gt;
			end&lt;br /&gt;
			init, noCache = function(v, c) prev = setmetatable({v, c = c, _build = build[type(v)] or v, [type(v)] = true, alt = {}}, build) return prev end, true&lt;br /&gt;
			return init(...)&lt;br /&gt;
		end&lt;br /&gt;
		function unbuild(sep)&lt;br /&gt;
			for k, v in MBpairs(sep, nil) do&lt;br /&gt;
				k = getmetatable(v) if k and (k==build or k==alt) then shift(v.a or v, -v.c) end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		function _var(self, ...)&lt;br /&gt;
			local obj if ... and ...~=true then obj = init(...)&lt;br /&gt;
			elseif prev then&lt;br /&gt;
				if ...~=false then obj = rebuild(...)&lt;br /&gt;
				else rebuild(...) end&lt;br /&gt;
			end&lt;br /&gt;
			return obj and MBi._(self, obj, nil, true) or self&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local lib; MBi = setmetatable({stream = _stream,&lt;br /&gt;
		_inHTML = _inHTML,&lt;br /&gt;
		_var = _var,&lt;br /&gt;
		_ = function(self, v, ...)&lt;br /&gt;
			local at, raw = select(select(&#039;#&#039;, ...)==1 and ...==true and 1 or 2, nil, ...)&lt;br /&gt;
			if raw then rawkey[self] = math.huge else v = Valid(v) end&lt;br /&gt;
			if v or raw then&lt;br /&gt;
				if at or rawkey[self] then raw = #self end--if length increases by more than one after table.insert, then set rawkey[self] = math.huge; rawkey[self] may be equal to a previous &#039;at&#039;&lt;br /&gt;
				at, self.last_concat = at and (tonumber(at)~=at and raw + at or at)&lt;br /&gt;
				table.insert(self, select(at and 1 or 2, at, v))&lt;br /&gt;
				if at and at &amp;lt; 0 or raw and #self - raw &amp;gt; 1 then rawkey[self] = math.huge elseif at and #self==raw then rawkey[self] = rawkey[self] and math.max(rawkey[self], at) or at end&lt;br /&gt;
			end--above line looks bizarre because one table.insert op may make length jump from 0 to 8: local wtf={[2]=2,[4]=4,[8]=8}mw.log(#wtf,table.insert(wtf,1),#wtf)&lt;br /&gt;
			return self&lt;br /&gt;
		end,&lt;br /&gt;
		_nil = function(self, at, ...)&lt;br /&gt;
			if ...~=true and ...~=false then--faster than type(...) ~= &#039;boolean&#039;&lt;br /&gt;
				if not at or at==&#039;0&#039; then&lt;br /&gt;
					self[#self] = ... if ... then rawkey[self] = math.huge end&lt;br /&gt;
				else&lt;br /&gt;
					local n, v = tonumber(at), ...&lt;br /&gt;
					if n~=at then &lt;br /&gt;
						if n then n = #self + at&lt;br /&gt;
						elseif at~=true and select(&#039;#&#039;, ...)==0 then v, n = at, #self end&lt;br /&gt;
					end&lt;br /&gt;
					if n then &lt;br /&gt;
						if v==nil and n &amp;gt; 0 then table.remove(self, n)&lt;br /&gt;
						else self[math.floor(n)], rawkey[self] = v, math.huge end--floor position for consistency with Table library&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				self.last_concat = nil&lt;br /&gt;
			end&lt;br /&gt;
			return self&lt;br /&gt;
		end,&lt;br /&gt;
		_all = function(self, t, valKey)&lt;br /&gt;
			for k, v in MBpairs(t) do MBmix(self, v, valKey) end&lt;br /&gt;
			for k, v in valKey and MBpairs(t, false) or noOp, t do&lt;br /&gt;
				if tonumber(v) then MBi._(self, k, v)--self not always a buffer&lt;br /&gt;
				elseif rawget(MBi, k) and v and v~=true then&lt;br /&gt;
					if v[1]==nil or getmetatable(v) then MBi[k](self, v)&lt;br /&gt;
					else MBi[k](self, unpack(v, 1, table.maxn(v))) end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return self&lt;br /&gt;
		end,&lt;br /&gt;
		_str = function(t, ...)&lt;br /&gt;
			local n = select(&#039;#&#039;, ...)&lt;br /&gt;
			if n &amp;gt; 1 then&lt;br /&gt;
				local k, ops, seps, r = 2, MBselect(n, ...)&lt;br /&gt;
				r = MB(t(seps[1]))&lt;br /&gt;
				while parent[t] and ops &amp;gt; 1 and r:_(parent[t](seps[k]), 1) do t, k, ops = parent[t], k + 1, ops - 1 end&lt;br /&gt;
				return table.concat(r, seps[k] or nil)&lt;br /&gt;
			end&lt;br /&gt;
			return MB.__call(t, ...)&lt;br /&gt;
		end,&lt;br /&gt;
		_in = function (self, ...) return parent(MB(...), self) end,&lt;br /&gt;
		_out = function(t, ...)&lt;br /&gt;
			if ...==0 then return parent(t, parent[t], MBi._cc(t, t, MB.__call(t, (select(2, ...))), getmetatable(t))) end--love how :_cc needed nothing new to implement this *self pat on back*&lt;br /&gt;
			local n = select(&#039;#&#039;, ...)&lt;br /&gt;
			if n &amp;gt; 1 then&lt;br /&gt;
				local k, ops, seps = 1, MBselect(n, ...)&lt;br /&gt;
				while parent[t] and ops &amp;gt; 0 do t, k, ops = parent[t]:_(t(seps[k])), k + 1, ops - 1 end&lt;br /&gt;
			elseif parent[t] then return parent[t]:_(t(...)) end&lt;br /&gt;
			return t&lt;br /&gt;
		end,&lt;br /&gt;
		_cc = function(self, clear, copy, meta)&lt;br /&gt;
			if clear then&lt;br /&gt;
				if rawequal(clear, copy) then return self, spec[MBi._cc] and setmetatable(spec[MBi._cc], MB)--rawequal to avoid re-string via __eq in case both are different Buffer objects&lt;br /&gt;
				elseif copy==true then copy = self end&lt;br /&gt;
				if clear~=0 then&lt;br /&gt;
					assert(type(clear)==&#039;table&#039;, debug.traceback(&#039;Buffer:_cc can only &amp;quot;clear&amp;quot; tables. Did you forget to call with a colon?&#039;, 2))--errors can be hard to trace without this&lt;br /&gt;
					for k in self and next or noOp, clear do rawset(clear, k, nil) end&lt;br /&gt;
				else return MBi._cc(false, {unpack(copy)}, copy) end--copy length w/o empty strings; recursion to avoid self = false causing garbage collection (non-weak child may exist)&lt;br /&gt;
				if self==false or copy and type(copy)==&#039;table&#039; then--self==false means copy is a table (saves a type op for recursive calls)&lt;br /&gt;
					meta = meta or getmetatable(copy)&lt;br /&gt;
					if self and #copy &amp;gt; 1 then--preserves length with empty strings; developed from studying http://www.lua.org/source/5.1/ltable.c.html		&lt;br /&gt;
						local n, null, i, e = #copy, {}, math.ldexp(2, select(2, math.frexp(#copy)) - 2)&lt;br /&gt;
						e, spec[MBi._cc], parent[null] = i - 1, null, clear&lt;br /&gt;
						for k = 1, e do table.insert(clear, false) end&lt;br /&gt;
						while i&amp;lt;=n do table.insert(clear, i, &#039;&#039;) i, null[i] = i + math.ldexp(2, select(2, math.frexp(n - i)) - 2), &#039;&#039; end&lt;br /&gt;
						for k = 1, e do rawset(clear, k, nil) end&lt;br /&gt;
					end&lt;br /&gt;
					for k, v in next, copy do rawset(clear, k, type(v)==&#039;table&#039; and MBi._cc(false, 0, v) or v) end&lt;br /&gt;
				elseif copy then rawset(clear, 1, (Valid(copy))) end&lt;br /&gt;
				rawkey[setmetatable(clear, meta)], parent[clear] = rawkey[copy], parent[copy]&lt;br /&gt;
			end&lt;br /&gt;
			return self and rawset(self, &#039;last_concat&#039;, nil) or clear&lt;br /&gt;
		end,&lt;br /&gt;
		_parent = function(self, ...) return parent[self] and MBi._(self, parent[self]:_str(...)) or self end,&lt;br /&gt;
		getParent = function(self, ...) return isMBfunc(parent[self] or parent[parent(self, setmetatable({}, MB))], ...) end,&lt;br /&gt;
		killParent = function(self, ...) return parent[self] and isMBfunc(parent[self], ...) and parent(self) or self end,&lt;br /&gt;
		_build = function(self, t) table.insert(t, self()) end,--for compatibility with mw.html:node()&lt;br /&gt;
		last_concat = false--prevent library check&lt;br /&gt;
	}, {__index = function(t, i)--import string, mw.text, and mw.ustring libraries on an as-needed basis&lt;br /&gt;
		local func = string[i] or mw.text[i] or mw.ustring[i] or type(i)==&#039;string&#039; and mw.ustring[i:match&#039;^u(.+)&#039;] if func then&lt;br /&gt;
			lib	= lib or function (s, f, ...)&lt;br /&gt;
				if parent[s] and next(s)==nil then return s:_((f(tostring(parent[Element and (spec[s]==Element and s:allDone() or spec[parent[s]]==Element and parent[s]) or s]), ...))) end&lt;br /&gt;
				return f(tostring(s), ...)--not using ternary/logical operators here to allow multiple return values&lt;br /&gt;
			end&lt;br /&gt;
			return rawset(t, i, i:match&#039;^u?gsub&#039; and function(self, p, r, ...)return lib(self, func, p, r or &#039;&#039;, ...)end--Why are ugsub/gsub special? because empty strings are against my religion!&lt;br /&gt;
				or function(self, ...)return lib(self, func, ...)end)[i]&lt;br /&gt;
		end&lt;br /&gt;
	end})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MBmix(t, v, ...) return v and ((type(v)~=&#039;table&#039; or getmetatable(v)) and MBi._(t, v) or (select(&#039;#&#039;, ...)==0 and spec[t] and spec[t]._add or MBi._all)(t, v, ...)) or t end--:_all always passes two args&lt;br /&gt;
&lt;br /&gt;
local _G, new_G = _G--localize _G for console testing (console _G ~= module _G)&lt;br /&gt;
return setmetatable({__index = function(t, i) return spec[t] and spec[t][i] or MBi[i] end,&lt;br /&gt;
	__call = function(t, ...)&lt;br /&gt;
		local rawsep, sep, i, j, raw = noCache and rawkey[...] and ..., ...&lt;br /&gt;
		if i or j or rawsep or Valid(sep) then&lt;br /&gt;
			raw, sep, i, j = rawkey[spec[t]] or rawkey[t], rawsep or Valid(sep), i and (i~=tonumber(i) and i + #t or i), j and (j~=tonumber(j) and j + #t or j)&lt;br /&gt;
			if rawsep or raw and (raw&amp;gt;=(j or #t) or i &amp;lt; 1) then&lt;br /&gt;
				raw, i, j = {}, i and math.floor(i), j and math.floor(j)--floor for consistency with table.concat(t, sep, i, j), which ignores decimals&lt;br /&gt;
				raw.lc, t.last_concat = t.last_concat--temporarily unset last_concat to prevent disqualification from mapless iteration&lt;br /&gt;
				for k, v in MBpairs(t) do&lt;br /&gt;
					if raw[1] or not i or k&amp;gt;=i then if j and k &amp;gt; j then break end&lt;br /&gt;
						if raw.s then raw.s = table.insert(raw, tostring(sep)) end--if sep contains v and v is a Buffer-variable, sep must be strung before v&lt;br /&gt;
						k = Valid(v) if k then&lt;br /&gt;
							raw.s = rawsep or sep and raw[1] and table.insert(raw, sep)&lt;br /&gt;
							table.insert(raw, k)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if rawsep and not raw.s then raw[#raw] = unbuild(sep) end--unbuild rawsep if final index in t was invalid&lt;br /&gt;
				t.last_concat = raw.lc return table.concat(raw)&lt;br /&gt;
			end&lt;br /&gt;
			return table.concat(t, sep, i and math.max(i, 1), j and math.min(j, #t))&lt;br /&gt;
		end&lt;br /&gt;
		return MB.__tostring(t)&lt;br /&gt;
	end,&lt;br /&gt;
	__tostring = function(t)&lt;br /&gt;
		if t.last_concat then return t.last_concat end&lt;br /&gt;
		local r = rawkey[spec[t]] or rawkey[t]&lt;br /&gt;
		r = table.concat(r and r&amp;gt;=#t and MBi._all({}, t) or t)&lt;br /&gt;
		return (noCache or rawset(t, &#039;last_concat&#039;, r)) and r&lt;br /&gt;
	end,&lt;br /&gt;
	__concat = function(a, b)&lt;br /&gt;
		if buffHTML then&lt;br /&gt;
			for k = 1, 2 do local v = select(k, a, b)--faster than for k, v in pairs{a, b} do&lt;br /&gt;
				if v and spec[v] and spec[v]==Element then&lt;br /&gt;
					if parent[v].selfClosing then&lt;br /&gt;
						if rawequal(a, b) then return (not noCache or parent[v].tagName) and v:_str(0):rep(2) or v:_str(0)..v:_str(0) end--rawequal avoids premature tostring of Buffer:_var objects;&lt;br /&gt;
						b, a = select(k, b, parent[v], a)&lt;br /&gt;
					else local temp = Element .. v --helper method; returns a mirror of parent[v]&lt;br /&gt;
						MBmix(MBmix(parent(temp.nodes, temp), a), k==1 and spec[b]==Element and parent[b] or b)&lt;br /&gt;
						return buffHTML.__tostring(setmetatable(temp, {__index=parent[v], __mode=&#039;v&#039;}))--switch from tempMeta to avoid MBi._cc op of styles/attributes&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return table.concat(MBmix(MBmix({}, a), b))&lt;br /&gt;
	end,&lt;br /&gt;
	__pairs = MBpairs,&lt;br /&gt;
	__ipairs = MBpairs,&lt;br /&gt;
	__eq = function(a, b) return tostring(a)==tostring(b) end--avoid a==b in this module; use rawequal(a,b) when they may be different Buffers (premature tostring waste ops and is bad for Buffer:_var)&lt;br /&gt;
}, {__tostring = function()return&#039;&#039;end,&lt;br /&gt;
	__call = function(self, ...) MB = MB or self&lt;br /&gt;
		if new_G then if ... and _G and ...==_G then new_G = ... end&lt;br /&gt;
		elseif ... and (...==_G or type(...)==&#039;table&#039; and (...)._G==...) then&lt;br /&gt;
			local Nil, mG = {}, (...):getmetatable() or (...):setmetatable{}:getmetatable()&lt;br /&gt;
			new_G, _G, gfuncs = ..., ..., {--gfuncs stored for Buffer:_inHTML; new_G is a is a Module:Buffer local declared just before the final return statement.&lt;br /&gt;
				_G = function(self, i, ...)&lt;br /&gt;
					local X, save = rawget(new_G, i), select(&#039;#&#039;, ...)==0 and self or ...&lt;br /&gt;
					if i and i~=true and not (X and save and rawequal(X, save)) and rawset(new_G, i, save) and (X~=nil or save==nil and new_G[i]~=nil) then--rawequal in case X is another buffer&lt;br /&gt;
						local mG = getmetatable(new_G) or {__call=mG.__call}&lt;br /&gt;
						if mG.__index then pcall(rawset, mG.__index, i, X)&lt;br /&gt;
						else mG.__index = setmetatable(new_G, mG) and {[i] = X} end&lt;br /&gt;
					end&lt;br /&gt;
					return self, ...--avoiding __eq with rawequal(self,save) is overkill since buffers can self-save without being passed as save&lt;br /&gt;
				end,&lt;br /&gt;
				_R = function(self, i, v, m)&lt;br /&gt;
					if i~=&#039;new_G&#039; then if i and i~=true then rawset(new_G, i , v) end&lt;br /&gt;
					elseif not v or v==true or v._G~=_G then new_G = setmetatable(v~=true and v or {}, {__call = mG.__call, __index = v~=true and m~=true and (m or new_G) or nil})&lt;br /&gt;
					else new_G, (not m and (m~=nil or v==new_G) and Nil or getmetatable(v)).__index = v, m~=true and (m or new_G) or nil end--setting Nil.__index is noOp&lt;br /&gt;
					return self&lt;br /&gt;
				end,&lt;br /&gt;
				_2 = function(self, ...)&lt;br /&gt;
					if new_G[...]~=nil then return new_G[...] end--higher priority so Buffer:_G(&#039;new_G&#039;, ...) can prevent an overwrite&lt;br /&gt;
					if ...==&#039;new_G&#039; then return rawset((select(&#039;#&#039;, ...)~=1 and MBi._R(new_G, ...) or new_G), &#039;_G&#039;, _G) end&lt;br /&gt;
					return select(select(&#039;#&#039;, ...)==1 and 1 or 2, self:_G(...))--return only one value; &#039;return select(2, self:_G(...)) or self&#039; doesn&#039;t work for returning nil&lt;br /&gt;
				end,&lt;br /&gt;
				_B = function(self, v) return v or v==nil and Nil end&lt;br /&gt;
			} for k, v in next, gfuncs do MBi[k] = v end &lt;br /&gt;
			setmetatable(Nil,{__concat=MB.__concat,__newindex=noOp,__call=noOp,__tostring=noOp,__metatable=MB,__index=setmetatable({_B=MBi._B,_=function()return Nil end,last_concat=&#039;&#039;},&lt;br /&gt;
				{__index=function(t,i)return (MBi[i] or i and not tonumber(i)) and t._ or nil end})})&lt;br /&gt;
			function mG.__call(G, k, ...) return (k._G or G.type(k)==&#039;table&#039;) and (G.select(&#039;#&#039;, ...)~=1 and G.rawset(k, ...) or G:rawset(..., k) and k) or G:rawset(k, (...)) and ... end&lt;br /&gt;
		end&lt;br /&gt;
		local new = setmetatable({}, self)&lt;br /&gt;
		if ... and (...)==new_G then return select(2, ...) and MBmix(new:_G((select(2, ...))), select(3, ...)) or new end&lt;br /&gt;
		return ... and MBi._(new, ...) or new&lt;br /&gt;
	end,&lt;br /&gt;
	__index = function(t, i)&lt;br /&gt;
		MB = MB or t return MBi[i] and function(...) return MBi[i](setmetatable({}, t), select(...==t and 2 or 1,...)) end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Asbox&amp;diff=2192</id>
		<title>Template:Asbox</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Asbox&amp;diff=2192"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Article stub box]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Separated_entries&amp;diff=2190</id>
		<title>Template:Separated entries</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Separated_entries&amp;diff=2190"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{{{|safesubst:}}}#invoke:Separated entries|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|Module:Separated entries/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Interlanguage_link&amp;diff=2188</id>
		<title>Template:Interlanguage link</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Interlanguage_link&amp;diff=2188"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{safesubst:#if:{{{quote|}}}{{{quotes|}}}|&amp;quot;}}{{safesubst:#if:{{{italic|}}}{{{italics|}}}|&#039;&#039;}}[[{{{1}}}{{safesubst:#if:{{{lt|}}}|{{safesubst:!}}{{{lt}}}}}]]{{safesubst:#if:{{{italic|}}}{{{italics|}}}|&amp;amp;#8202;&#039;&#039;}}{{safesubst:#if:{{{quote|}}}{{{quotes|}}}|&amp;quot;}}{{safesubst:#ifeq:{{subst:Substcheck}}|SUBST||&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{#if:{{{preserve|{{{display|}}}}}}|1|{{#ifexist:{{{1|}}}|{{#invoke:redirect|isRedirect|{{{1|}}}}}|1}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 |&amp;lt;{{#switch:{{{vertical-align|{{{valign|{{{v|}}}}}}}}}|sup|super=sup|sub=sub|span}} class=&amp;quot;noprint&amp;quot; style=&amp;quot;{{#switch:{{{vertical-align|{{{valign|{{{v|}}}}}}}}}|ib|font-size:100%;|sup|super|sub=|font-size:85%;}} font-style: normal; {{#if:{{{nobold|}}}|font-weight: normal;}}&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;#91;{{#if:{{{WD|{{{wd|{{{qid|}}}}}}}}}&lt;br /&gt;
  | [[d:Special:EntityPage/{{{WD|{{{wd|{{{qid}}}}}}}}}#sitelinks-wikipedia|&amp;lt;span title=&amp;quot;Wikidata list: &amp;amp;quot;{{{1}}}&amp;amp;quot; articles in other languages&amp;quot;&amp;gt;{{#if:{{{short|{{{s|}}}}}}|d|Wikidata}}&amp;lt;/span&amp;gt;]]&lt;br /&gt;
  | {{Separated entries|separator=;&amp;amp;#32;&lt;br /&gt;
    | {{#if:{{{2|}}}|[[:{{{2}}}:{{#if:{{{3|}}}|{{{3}}}|{{{1}}}}}|{{{2}}}]]}}&lt;br /&gt;
    | {{#if:{{{4|}}}|[[:{{{4}}}:{{#if:{{{5|}}}|{{{5}}}|{{{1}}}}}|{{{4}}}]]}}&lt;br /&gt;
    | {{#if:{{{6|}}}|[[:{{{6}}}:{{#if:{{{7|}}}|{{{7}}}|{{{1}}}}}|{{{6}}}]]}}&lt;br /&gt;
    | {{#if:{{{8|}}}{{{10|}}}{{{12|}}}|{{Separated entries|separator=;&amp;amp;#32;&lt;br /&gt;
      | {{#if:{{{8|}}}|[[:{{{8}}}:{{#if:{{{9|}}}|{{{9}}}|{{{1}}}}}|{{{8}}}]]}}&lt;br /&gt;
      | {{#if:{{{10|}}}|[[:{{{10}}}:{{#if:{{{11|}}}|{{{11}}}|{{{1}}}}}|{{{10}}}]]}}&lt;br /&gt;
      | {{#if:{{{12|}}}|[[:{{{12}}}:{{#if:{{{13|}}}|{{{13}}}|{{{1}}}}}|{{{12}}}]]}}&lt;br /&gt;
      | {{#if:{{{14|}}}|[[:{{{14}}}:{{#if:{{{15|}}}|{{{15}}}|{{{1}}}}}|{{{14}}}]]}}&lt;br /&gt;
      | {{#if:{{{16|}}}|[[:{{{16}}}:{{#if:{{{17|}}}|{{{17}}}|{{{1}}}}}|{{{16}}}]]}}&lt;br /&gt;
      | {{#if:{{{18|}}}|[[:{{{18}}}:{{#if:{{{19|}}}|{{{19}}}|{{{1}}}}}|{{{18}}}]]}}&lt;br /&gt;
      | {{#if:{{{20|}}}|[[:{{{20}}}:{{#if:{{{21|}}}|{{{21}}}|{{{1}}}}}|{{{20}}}]]}}&lt;br /&gt;
      | {{#if:{{{22|}}}|[[:{{{22}}}:{{#if:{{{23|}}}|{{{23}}}|{{{1}}}}}|{{{22}}}]]}}&lt;br /&gt;
      | {{#if:{{{24|}}}|[[:{{{24}}}:{{#if:{{{25|}}}|{{{25}}}|{{{1}}}}}|{{{24}}}]]}}&lt;br /&gt;
      }}}}&lt;br /&gt;
    }}}}&amp;amp;#93;&amp;lt;/{{#switch:{{{vertical-align|{{{valign|{{{v|}}}}}}}}}|sup|super=sup|sub=sub|span}}&amp;gt;&lt;br /&gt;
 | [[Category:Interlanguage link template existing link]]&amp;lt;nowiki /&amp;gt;&lt;br /&gt;
 }}}}&amp;lt;/includeonly&amp;gt;{{main other|{{#if:{{{preserve|{{{display|}}}}}}|[[Category:Interlanguage link template forcing interwiki links]]}}}}{{#if:{{{WD|}}}{{{wd|}}}|[[Category:Pages using interlanguage link with the wikidata parameter]]|{{#if:{{{reasonator|}}}|[[Category:Pages using interlanguage link with the reasonator parameter]]}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Smaller&amp;diff=2186</id>
		<title>Template:Smaller</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Smaller&amp;diff=2186"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Small]]&lt;br /&gt;
&lt;br /&gt;
{{r from merge}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Ancient_seafaring&amp;diff=2184</id>
		<title>Template:Ancient seafaring</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Ancient_seafaring&amp;diff=2184"/>
		<updated>2025-08-16T12:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox with collapsible groups&lt;br /&gt;
| name       = Ancient seafaring&lt;br /&gt;
| title      = [[Ancient seafaring]]&lt;br /&gt;
| listclass  = hlist&lt;br /&gt;
| state = {{{state&amp;lt;includeonly&amp;gt;|{{{1|collapsed}}}&amp;lt;/includeonly&amp;gt;}}}&lt;br /&gt;
| bodyclass = hlist&lt;br /&gt;
| groupstyle = vertical-align:center; text-align:center&lt;br /&gt;
| nowrapitems = yes&lt;br /&gt;
| titlestyle =&lt;br /&gt;
| selected = {{{1|}}}&lt;br /&gt;
| above      =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ============================= GROUP 1 – VESSELS ====================== --&amp;gt;&lt;br /&gt;
| group1     = [[Ancient navies and vessels|Vessels]]&lt;br /&gt;
| abbr1      = Vessels&lt;br /&gt;
| state1     = collapsed&lt;br /&gt;
| image1     = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
| list1      =&lt;br /&gt;
 {{Navbox|child&lt;br /&gt;
  | group1 = [[Watercraft|Types]] &amp;lt;!--1.1--&amp;gt;&lt;br /&gt;
  | list1  = &lt;br /&gt;
* [[Balangay]]&lt;br /&gt;
* [[Bangka (boat)|Bangka]]      &amp;lt;!-- 3000 – 1500 BCE --&amp;gt;&lt;br /&gt;
* [[Beden]]&lt;br /&gt;
* [[Coracle]]&lt;br /&gt;
* [[Dhow]]&lt;br /&gt;
* [[Dragon boat]]               &amp;lt;!-- 500 BCE --&amp;gt;&lt;br /&gt;
* [[Dugout canoe]]&lt;br /&gt;
* [[Fire ship]]                 &amp;lt;!-- 4th c. BCE --&amp;gt;&lt;br /&gt;
* [[Galley]]&lt;br /&gt;
** [[Penteconter]]&lt;br /&gt;
* [[K&#039;unlun po|Kunlun ship]]    &amp;lt;!-- 2nd c. CE--&amp;gt;&lt;br /&gt;
* [[Liburna]]&lt;br /&gt;
* [[Longship]]                  &amp;lt;!-- 4th c. BCE --&amp;gt;&lt;br /&gt;
* [[Multihull]]&lt;br /&gt;
* [[Navis lusoria]]&lt;br /&gt;
* [[Obelisk ship]]&lt;br /&gt;
* [[Outrigger boat|Outriggers]]&lt;br /&gt;
** [[Sakman]]                   &amp;lt;!-- 3300 BCE --&amp;gt;&lt;br /&gt;
** [[Single-outrigger]]&lt;br /&gt;
** [[Catamaran]]&lt;br /&gt;
** [[Trimaran]]&lt;br /&gt;
* Polyremes&lt;br /&gt;
** [[Bireme]]&lt;br /&gt;
** [[Hellenistic-era warships|Oared warships]]&lt;br /&gt;
** [[Trireme]]&lt;br /&gt;
** [[Quadrireme]]&lt;br /&gt;
** [[Quinquereme]]&lt;br /&gt;
** [[Hexareme]]&lt;br /&gt;
** [[Tessarakonteres]]&lt;br /&gt;
* [[Raft]]                                    &amp;lt;!-- 20,000 BCE --&amp;gt;&lt;br /&gt;
* [[Reed boat]]&lt;br /&gt;
* [[Sailing ship]]&lt;br /&gt;
* [[Ancient Egyptian royal ships|Solar ship]] &amp;lt;!-- 2500 BCE --&amp;gt;&lt;br /&gt;
* [[Tomol]]&lt;br /&gt;
* &#039;&#039;[[Tākitimu]]&#039;&#039;&lt;br /&gt;
* [[Uru (boat)|Uru]]&lt;br /&gt;
&lt;br /&gt;
  | group2 = [[Ancient navies and vessels|by region]] &amp;lt;!--1.2--&amp;gt;&lt;br /&gt;
  | list2  = &lt;br /&gt;
* [[Austronesian vessels#History|Austronesia]] &amp;lt;!-- 3000 BCE --&amp;gt;&lt;br /&gt;
* [[Ancient Egyptian navy|Egypt]]              &amp;lt;!-- 3rd millennium BCE --&amp;gt;&lt;br /&gt;
* [[Achaemenid navy|Persia]]                   &amp;lt;!-- 6th c. BCE --&amp;gt;&lt;br /&gt;
* [[Ships of ancient Rome|Rome]]               &amp;lt;!-- 3rd c. BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group3 = [[Marine propulsion|Propulsion]] &amp;lt;!--1.3--&amp;gt;&lt;br /&gt;
  | list3  = &lt;br /&gt;
* [[Paddling]]&lt;br /&gt;
* [[Sailing]]&lt;br /&gt;
* [[Towpath|Towing]]&lt;br /&gt;
* [[Poling (watercraft)|Poling ]]&lt;br /&gt;
&lt;br /&gt;
  | group4 = Components &amp;lt;!--1.4--&amp;gt;&lt;br /&gt;
  | list4  = &lt;br /&gt;
* [[Anchor]]&lt;br /&gt;
* [[Bow (watercraft)|Bow]] &lt;br /&gt;
* [[Cabin (ship)|Cabin]]&lt;br /&gt;
* [[Deck (ship)|Deck]]&lt;br /&gt;
* [[Figurehead (object)|Figurehead]]&lt;br /&gt;
* [[Hull (watercraft)|Hull]]             &amp;lt;!-- Egypt 3100 BCE --&amp;gt;&lt;br /&gt;
** [[Boat building#Construction materials and methods|Planking]]&lt;br /&gt;
* [[Keel]]                               &amp;lt;!-- before 315 BCE --&amp;gt;&lt;br /&gt;
* [[Mast (sailing)|Mast]]&lt;br /&gt;
* [[Oar]]&lt;br /&gt;
* [[Paddle]]&lt;br /&gt;
* [[Rope]]&lt;br /&gt;
* [[Rudder]] &amp;lt;!-- [[Rudder#Sternpost-mounted rudder]]: China 1st c. CE --&amp;gt;&lt;br /&gt;
* [[Rudder#History of the rudder|Steering oar]] &amp;lt;!-- Egypt 3100 BCE. [[Steering oar]] exists but is a stub. --&amp;gt;&lt;br /&gt;
* [[Sail]]&lt;br /&gt;
** [[Sail components]]&lt;br /&gt;
* [[Stem (ship)|Stem]]&lt;br /&gt;
* [[Sternpost]]&lt;br /&gt;
* [[Strake]]&lt;br /&gt;
* [[Nile boat#Boat design / steering|Tiller]] &amp;lt;!-- ~ 3200 BCE per [[Nile Boat]]. The article [[Tiller]] exists but says nothing about it. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group5 = [[Ancient shipbuilding techniques|Construction]] &amp;lt;!--1.5--&amp;gt;&lt;br /&gt;
  | list5  = &lt;br /&gt;
* [[Boat building]]&lt;br /&gt;
* [[Careening]]&lt;br /&gt;
* [[Carvel (boat building)|Carvel built]]&lt;br /&gt;
* [[Clinker (boat building)|Clinker built]]&lt;br /&gt;
* [[Dugout (boat)|Dugout]]&lt;br /&gt;
* [[Ancient shipbuilding techniques#Framed boat|Framing]]&lt;br /&gt;
** [[Ancient shipbuilding techniques#Frame-first|Frame-first]]&lt;br /&gt;
** [[Ancient shipbuilding techniques#Shell-first|Shell-first]]&lt;br /&gt;
* [[Joinery]]&lt;br /&gt;
** [[Lashed-lug boat|Lashed-lug]]&lt;br /&gt;
** [[Mortise and tenon]]&lt;br /&gt;
** [[Phoenician joints|Phoenician joint]]&lt;br /&gt;
** [[Scarf joint]]&lt;br /&gt;
** [[Sewn boat|Sewn-plank]]&lt;br /&gt;
* [[Shipbuilding]]&lt;br /&gt;
* By region:&lt;br /&gt;
** [[Ancient Egyptian technology#Navigation and ship building|Egypt]]&lt;br /&gt;
&lt;br /&gt;
  | group6 = [[Rigging]] &amp;lt;!--1.6--&amp;gt;&lt;br /&gt;
  | list6  = &lt;br /&gt;
* [[Crab claw sail|Crab claw]]              &amp;lt;!-- 2000 BCE --&amp;gt;&lt;br /&gt;
* [[Fore-and-aft rig|Fore-and-aft]]&lt;br /&gt;
** [[Lateen]]&lt;br /&gt;
** [[Settee (sail)|Settee]]&lt;br /&gt;
** [[Tanja sail|Tanja]]&lt;br /&gt;
** [[Triangular sail rig|Triangular sail]]&lt;br /&gt;
* [[Junk rig|Junk]]&lt;br /&gt;
* [[Mast-aft rig|Mast-aft]]&lt;br /&gt;
* [[Spritsail]]&lt;br /&gt;
* [[Square rig|Square]]&lt;br /&gt;
&lt;br /&gt;
  | group7 = Armaments &amp;lt;!--1.7--&amp;gt;&lt;br /&gt;
  | list7 =&lt;br /&gt;
* [[Ballista]]&lt;br /&gt;
* [[Catapult]]&lt;br /&gt;
* [[Corvus (boarding device)|Corvus]]&lt;br /&gt;
* [[Dolphin (weapon)|Dolphin]]&lt;br /&gt;
* [[Fire ship]]&lt;br /&gt;
* [[Harpax]]&lt;br /&gt;
* [[Naval ram|Ram]]&lt;br /&gt;
* [[Sambuca (siege engine)|Sambuca]]&lt;br /&gt;
&lt;br /&gt;
  | group8 = [[Archaeology of shipwrecks|Wrecks{{br}}and relics]] &amp;lt;!--1.8--&amp;gt;&lt;br /&gt;
  | list8  = &lt;br /&gt;
&lt;br /&gt;
 {{Navbox|child&lt;br /&gt;
    | group1 = [[List of shipwrecks before Anno Domini|Earliest]] &amp;lt;!--1.8.1--&amp;gt;&lt;br /&gt;
    | list1  = &lt;br /&gt;
&lt;br /&gt;
* [[Pesse canoe]]                                  &amp;lt;!-- 8000 – 7500 BCE --&amp;gt;&lt;br /&gt;
* [[Dufuna canoe]]                                 &amp;lt;!-- 6550 BCE --&amp;gt;&lt;br /&gt;
* [[Abydos boats|Abydos]]	                        &amp;lt;!-- 2600-2500 BCE --&amp;gt;&lt;br /&gt;
* [[Moor Sand site|Moor Sand]]	                    &amp;lt;!-- 2000-1600 BCE --&amp;gt;&lt;br /&gt;
* [[Dokos shipwreck|Dokos]]                        &amp;lt;!-- 2500 BCE --&amp;gt;&lt;br /&gt;
* [[Khufu ship]]                                   &amp;lt;!-- 2500 BCE --&amp;gt;&lt;br /&gt;
* [[Ferriby Boats]]                                &amp;lt;!-- 2020 (boat 3) – 1680 BCE (boat 1) --&amp;gt;&lt;br /&gt;
* [[Dover Bronze Age Boat]]                        &amp;lt;!-- 1550 BCE --&amp;gt;&lt;br /&gt;
* [[Uluburun shipwreck|Uluburun]]                  &amp;lt;!-- 1500 BCE --&amp;gt;&lt;br /&gt;
* [[Canaanite shipwreck|Canaanite]]                &amp;lt;!-- 1300 BCE --&amp;gt;&lt;br /&gt;
* [[Cape Gelidonya#Bronze Age shipwreck|Cape Gelidonya]] &amp;lt;!-- 1200 BCE --&amp;gt;&lt;br /&gt;
* [[Zambratija shipwreck|Zambratija]]              &amp;lt;!-- 1200 BCE --&amp;gt;&lt;br /&gt;
* [[Wreck of Rochelongue|Rochelongue]]	            &amp;lt;!-- 600 BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    | group2 = [[Austronesian peoples|Austronesia]] &amp;lt;!-- 1.8.2 --&amp;gt;&lt;br /&gt;
    | list2 =&lt;br /&gt;
&lt;br /&gt;
* [[Pontian boat]]                                 &amp;lt;!-- 260-430 CE --&amp;gt;&lt;br /&gt;
* [[Balangay#Butuan_boats|Butuan boats]]           &amp;lt;!-- 320-1250 CE;  r: [[Butuan boats]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    | group3 = [[Ancient Black Sea shipwrecks|Black Sea‎]] &amp;lt;!-- 1.8.3 --&amp;gt;&lt;br /&gt;
    | list3 =&lt;br /&gt;
&lt;br /&gt;
* [[Sinop D]]&lt;br /&gt;
&lt;br /&gt;
    | group4 = Greek &amp;lt;!-- 1.8.4 --&amp;gt;&lt;br /&gt;
    | list4 =&lt;br /&gt;
&lt;br /&gt;
* [[Kyrenia (ship)|Kyrenia]]                        &amp;lt;!-- 315 BCE --&amp;gt;&lt;br /&gt;
* [[Leontophoros]]                                  &amp;lt;!-- ~ 300 BCE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Syracusia]]&#039;&#039;                                 &amp;lt;!-- ~ 240 BCE --&amp;gt;&lt;br /&gt;
* [[Ashkelon shipwrecks|Ashkelon]]                  &amp;lt;!-- 2nd–1st c. BCE --&amp;gt;&lt;br /&gt;
* [[Antikythera wreck|Antikythera]]                 &amp;lt;!-- 75–50 BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    | group5 = Canaanite{{br}} and Phoenician &amp;lt;!-- 1.8.5 --&amp;gt;&lt;br /&gt;
    | list5 = &lt;br /&gt;
&lt;br /&gt;
* [[Bajo de la Campana Phoenician shipwreck|Bajo de la Campana]] &amp;lt;!-- 7th c. BCE --&amp;gt; &lt;br /&gt;
* [[Canaanite shipwreck]]&lt;br /&gt;
* [[Gozo Phoenician shipwreck|Gozo]]&lt;br /&gt;
* [[Ma&#039;agan Michael Ship|Ma&#039;agan Michael]]&lt;br /&gt;
* [[Phoenician shipwrecks of Mazarrón|Mazarrón]]    &amp;lt;!-- second half of 7th century BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    | group6 = Punic &amp;lt;!-- 1.8.6 --&amp;gt;&lt;br /&gt;
    | list6 = &lt;br /&gt;
&lt;br /&gt;
* [[Marsala Punic shipwreck]]&lt;br /&gt;
&lt;br /&gt;
    | group7 = Roman &amp;lt;!-- 1.8.7 --&amp;gt;&lt;br /&gt;
    | list7 =&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;[[Alkedo]]&#039;&#039;&lt;br /&gt;
* [[Arles Rhône 3]]&lt;br /&gt;
* [[Blackfriars shipwrecks|Blackfriars I]]&lt;br /&gt;
* [[Caligula&#039;s Giant Ship]]&lt;br /&gt;
* [[The Ships of De Meern|De Meern ships]]&lt;br /&gt;
* &#039;&#039;[[Isis (ship)|Isis]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Madrague de Giens (shipwreck)|Madrague de Giens]]&#039;&#039;&lt;br /&gt;
* [[Nemi ships]]&lt;br /&gt;
* [[Roman ship of Marausa|Marausa]]&lt;br /&gt;
* [[Yassi Ada]]&lt;br /&gt;
&lt;br /&gt;
    | group8 = Nordic &amp;lt;!-- 1.8.8 --&amp;gt;&lt;br /&gt;
    | list8 =&lt;br /&gt;
&lt;br /&gt;
* [[Hjortspring boat]]	                            &amp;lt;!-- 400-300 BCE --&amp;gt;&lt;br /&gt;
* [[Nydam Mose#Nydam boat|Nydam boat]]              &amp;lt;!-- 315 CE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    | group9 = Lists &amp;lt;!-- 1.8.9 --&amp;gt;&lt;br /&gt;
    | list9 =&lt;br /&gt;
&lt;br /&gt;
* [[List of oldest surviving ships|Oldest surviving]]&lt;br /&gt;
* [[List of museum ships|Museum ships]]&lt;br /&gt;
* [[List of surviving ancient ships|Surviving ancient ships]]&lt;br /&gt;
  }} &amp;lt;!-- end child template of 1.8 Vessels --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 }} &amp;lt;!--group 1 child box--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =========== GROUP 2 – NAVIGATION, AND PORTS AND HARBORS ============== --&amp;gt;&lt;br /&gt;
| group2     = Navigation, and ports and harbors&lt;br /&gt;
| abbr2      = Navigation&lt;br /&gt;
| state2     = collapsed&lt;br /&gt;
| image2     = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
| list2      = {{Navbox|child&lt;br /&gt;
&lt;br /&gt;
  | group1 = [[Marine navigation|Navigation]] &amp;lt;!--2.1--&amp;gt;&lt;br /&gt;
  | list1  = &lt;br /&gt;
&amp;lt;!-- Pilots and local knowledge - experienced pilots, oral trandition; what&#039;s that polynesian thing of stick and bead maps?--&amp;gt;&lt;br /&gt;
* [[Celestial navigation|Celestial]]&lt;br /&gt;
* [[History of cartography|Charts]]    &amp;lt;!-- [[Nautical chart]] exists, but has nothing historical --&amp;gt;&lt;br /&gt;
* [[Coastal navigation|Coastal]] &lt;br /&gt;
** [[Lighthouses]]&lt;br /&gt;
* [[History of navigation|History]]&lt;br /&gt;
* [[Swell (ocean)#Navigation|Ocean swell]]&lt;br /&gt;
** [[Marshall Islands stick chart|Stick chart]]&lt;br /&gt;
* [[Periplus]]&lt;br /&gt;
* [[Piloting]]&lt;br /&gt;
** [[Pilot boat]]&lt;br /&gt;
** [[Maritime pilot]]&lt;br /&gt;
* By region:&lt;br /&gt;
** [[Inuit navigation|Inuit]]&lt;br /&gt;
** [[Micronesian navigation|Micronesian]]&lt;br /&gt;
** [[Polynesian navigation|Polynesia]]&lt;br /&gt;
&lt;br /&gt;
  | group2 = [[Port#Historical ports|Ports]] and{{br}}harbors&amp;lt;!--2.2--&amp;gt;&lt;br /&gt;
  | list2  = &lt;br /&gt;
* [[Actium]]&lt;br /&gt;
* [[Aden]]                                        &amp;lt;!-- Yemen 100 BCE--&amp;gt;&lt;br /&gt;
* [[Adulis]]                                      &amp;lt;!-- Eritrea 200 CE--&amp;gt;&lt;br /&gt;
* [[Alexandria Port|Alexandria]]                  &amp;lt;!-- Egypt 331 CE--&amp;gt;&lt;br /&gt;
* [[Apollonia (Cyrenaica)|Apollonia]]&lt;br /&gt;
* [[Arwad|Aradus]]&lt;br /&gt;
* [[Arikamedu]]                                   &amp;lt;!-- India 200 BCE--&amp;gt;&lt;br /&gt;
* [[Arsinoe (Gulf of Suez)|Arsinoe]]              &amp;lt;!-- Egypt --&amp;gt;&lt;br /&gt;
* [[Avalites]]                                    &amp;lt;!-- Somalia --&amp;gt;&lt;br /&gt;
* [[Barbarikon]]                                  &amp;lt;!-- Pakistan--&amp;gt;&lt;br /&gt;
* [[Bharuch|Barygaza]]                            &amp;lt;!-- India --&amp;gt;&lt;br /&gt;
* [[Basra]]                                       &amp;lt;!-- Iraq 636 CE--&amp;gt;&lt;br /&gt;
* [[Berenice Troglodytica]]                       &amp;lt;!-- Egypt --&amp;gt;&lt;br /&gt;
* [[Bosphorus]]&lt;br /&gt;
* [[Byblos]]&lt;br /&gt;
* [[Caesarea Maritima]]&lt;br /&gt;
* [[Canopus, Egypt|Canopus]]                      &amp;lt;!-- Egypt 500 BCE? --&amp;gt;&lt;br /&gt;
* [[Carthage]]&lt;br /&gt;
* [[Civitavecchia#History|Centumcellae]]&lt;br /&gt;
* [[Charmutha]]&lt;br /&gt;
* [[Chittagong]]                                  &amp;lt;!-- Bangladesh --&amp;gt;&lt;br /&gt;
* [[Delos]]&lt;br /&gt;
* [[Essina]]                                      &amp;lt;!-- Somalia 100 CE --&amp;gt;&lt;br /&gt;
* [[Jiaozhi|Giao Chỉ]]                            &amp;lt;!-- Vietnam --&amp;gt;&lt;br /&gt;
* [[Godavaya]]                                    &amp;lt;!-- Sri Lanka--&amp;gt;&lt;br /&gt;
* [[Port of Guangzhou|Guangzhou]]                 &amp;lt;!-- China: Qin dynasty 700 – 200 BCE --&amp;gt;&lt;br /&gt;
* [[Port of Jambukola|Jambukola]]                 &amp;lt;!-- Sri Lanka --&amp;gt;&lt;br /&gt;
* [[Jeddah]]                                      &amp;lt;!-- Saudi Arabia, 647 CE--&amp;gt;&lt;br /&gt;
* [[Puhar, Mayiladuthurai|Kaveri Poompattinam]]   &amp;lt;!-- India --&amp;gt;&lt;br /&gt;
* [[Kedah]]                                       &amp;lt;!-- Malaysia 110 CE--&amp;gt;&lt;br /&gt;
* [[Korkai]]                                      &amp;lt;!-- India --&amp;gt;&lt;br /&gt;
* [[Leptis Magna]]&lt;br /&gt;
* [[Lothal#Dockyard|Lothal]]                      &amp;lt;!-- India 2200 BCE --&amp;gt;&lt;br /&gt;
* [[Manthai]]                                     &amp;lt;!-- Sri Lanka--&amp;gt;&lt;br /&gt;
* [[Madurai]]                                     &amp;lt;!-- India--&amp;gt;&lt;br /&gt;
* [[Malao]]                                       &amp;lt;!-- Somaliland 0 CE--&amp;gt;&lt;br /&gt;
* [[Mersa Gawasis]]                               &amp;lt;!-- Egypt 19th – 17th c. BCE --&amp;gt;&lt;br /&gt;
* [[Myos Hormos]]                                 &amp;lt;!-- Egypt 3rd c. BCE --&amp;gt;&lt;br /&gt;
* [[Mottama|Martaban]]                            &amp;lt;!-- Myanmar, 200 BCE --&amp;gt;&lt;br /&gt;
* [[Chonburi province|Mueang Phra Rot]]           &amp;lt;!-- Thailand 600 CE --&amp;gt;&lt;br /&gt;
* [[Muscat]]                                      &amp;lt;!-- Oman --&amp;gt;&lt;br /&gt;
* [[Muziris]]                                     &amp;lt;!-- India --&amp;gt;&lt;br /&gt;
* [[Narbonne]]&lt;br /&gt;
* [[Nisida|Nesis]]&lt;br /&gt;
* [[Óc Eo]] ([[Cattigara]])                       &amp;lt;!-- Cambodia 100 CE--&amp;gt;&lt;br /&gt;
* [[Opone]]                                       &amp;lt;!-- Somalia 1000 BCE --&amp;gt;&lt;br /&gt;
* [[Ostia Antica]]                                &amp;lt;!-- Rome ~ 7th - 4th c. BCE --&amp;gt;&lt;br /&gt;
* [[Palembang]]                                   &amp;lt;!-- Indonesia 682 CE --&amp;gt;&lt;br /&gt;
* [[Piraeus#Ancient and medieval times|Piraeus]]  &amp;lt;!-- Greece (Classical period) --&amp;gt;&lt;br /&gt;
* [[Portus|Portus Augusti]]&lt;br /&gt;
* [[Pisa#Ancient times|Portus Pisanus]]&lt;br /&gt;
* [[Prosphorion Harbour|Prosphorion]]             &amp;lt;!-- C&#039;nople 657 BCE --&amp;gt;&lt;br /&gt;
* [[Ptolemais Theron]]&lt;br /&gt;
* [[Pozzuoli|Puteoli]]&lt;br /&gt;
* [[Qal&#039;at al-Bahrain]]                           &amp;lt;!-- Bahrain 2300 BCE --&amp;gt;&lt;br /&gt;
* [[Qandala]]                                     &amp;lt;!-- Somalia--&amp;gt;&lt;br /&gt;
* [[Kollam|Quilon]]                               &amp;lt;!-- India 400 BCE--&amp;gt;&lt;br /&gt;
* [[Rhacotis]]                                    &amp;lt;!-- Egypt 3000 BCE? --&amp;gt;&lt;br /&gt;
* [[Sarapion]]                                    &amp;lt;!-- Somalia 0 CE --&amp;gt;   &lt;br /&gt;
* [[Sathing Phra district|Satingpra]]             &amp;lt;!-- Thailand, 200 BCE - 1200 CE --&amp;gt;&lt;br /&gt;
* [[Sidon]]&lt;br /&gt;
* [[Socotra]]&lt;br /&gt;
* [[Sonargaon|Sounagoura]]                        &amp;lt;!--Bangladesh--&amp;gt;&lt;br /&gt;
* [[Thapsus]]&lt;br /&gt;
* [[Trincomalee]]                                 &amp;lt;!-- Sri Lanka 400 BCE --&amp;gt;&lt;br /&gt;
* [[Tulum]]&lt;br /&gt;
* [[Tyndis]]                                      &amp;lt;!-- India --&amp;gt;&lt;br /&gt;
* [[Tyre, Lebanon|Tyre]]&lt;br /&gt;
* [[Wadi al-Jarf]]                                &amp;lt;!-- Egypt 4500 --&amp;gt;&lt;br /&gt;
* [[History of Zanzibar|Zanzibar]]                &amp;lt;!-- 2500 BCE --&amp;gt;&lt;br /&gt;
}} &amp;lt;!-- end child box &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ============================= GROUP 3 – HISTORY ====================== --&amp;gt;&lt;br /&gt;
| group3 = [[Ancient maritime history|History]]&lt;br /&gt;
| abbr3  = History&lt;br /&gt;
| state3     = collapsed&lt;br /&gt;
| image3     = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
| list3  = {{Navbox|child&lt;br /&gt;
  | group1 = [[Maritime prehistory|Prehistory]] &amp;lt;!--3.1--&amp;gt;&lt;br /&gt;
  | list1  = &lt;br /&gt;
* [[Maritime timeline#Prehistory|Timeline]]&lt;br /&gt;
* [[Prehistoric Britain|Britain]]&lt;br /&gt;
* [[Oceania#Prehistory of Oceania|Oceania]]  &amp;lt;!-- 70,000 BP --&amp;gt;&lt;br /&gt;
** [[Remote Oceania|Remote]]                 &amp;lt;!-- 33,000 BCE --&amp;gt;&lt;br /&gt;
** [[Near Oceania|Near]]                     &amp;lt;!-- 3500 BCE --&amp;gt;&lt;br /&gt;
* [[Ubaid period]]                           &amp;lt;!-- 5000 BCE (sailing) --&amp;gt;&lt;br /&gt;
* [[Indus Valley Civilisation|Indus Valley]] &amp;lt;!-- 3300 BCE – 1300 BCE --&amp;gt;                 &lt;br /&gt;
&lt;br /&gt;
  | group2 = Civilizations &amp;lt;!--3.2--&amp;gt;&lt;br /&gt;
  | list2  = &amp;lt;!-- hard to establish relevant dates; maybe better to just redo this alphabetically --&amp;gt;&lt;br /&gt;
* [[Ancient Egypt]]                          &amp;lt;!-- 3100 – 30 BCE --&amp;gt;&lt;br /&gt;
** [[Old Kingdom of Egypt|Old Kingdom]]      &amp;lt;!-- 2686 – 2181 BCE --&amp;gt;&lt;br /&gt;
* [[Austronesian peoples|Austronesia]]       &amp;lt;!-- 3000 –       --&amp;gt;&lt;br /&gt;
** [[Sa Huỳnh culture|Sa Huỳnh]]             &amp;lt;!-- 1000 BCE - 200 CE --&amp;gt;&lt;br /&gt;
** [[Lapita culture|Lapita]]                 &amp;lt;!-- 1600 - 1500 BCE --&amp;gt;&lt;br /&gt;
** [[Micronesians|Micronesia]]               &amp;lt;!-- 1500 BCE --&amp;gt;&lt;br /&gt;
** [[Langkasuka]]                            &amp;lt;!-- 100 CE --&amp;gt;&lt;br /&gt;
** [[Kedah]]                                 &amp;lt;!-- 110 CE --&amp;gt;&lt;br /&gt;
** [[Champa]]                                &amp;lt;!-- 200 CE --&amp;gt;&lt;br /&gt;
** [[Kutai]]                                 &amp;lt;!-- 399 CE --&amp;gt;&lt;br /&gt;
** [[Tarumanagara]]                          &amp;lt;!-- 450 CE --&amp;gt;&lt;br /&gt;
** [[Kalingga kingdom|Kalingga]]             &amp;lt;!-- 500 CE --&amp;gt;&lt;br /&gt;
** [[Srivijaya]]                             &amp;lt;!-- 600 CE --&amp;gt;&lt;br /&gt;
** [[Sunda Kingdom|Sunda]]                   &amp;lt;!-- 699 CE --&amp;gt;&lt;br /&gt;
** [[Polynesians|Polynesia]]                 &amp;lt;!-- 700 CE --&amp;gt;   &lt;br /&gt;
* [[Minoan Civilization|Minoan]]             &amp;lt;!-- 2600 – 1100 BCE --&amp;gt;&lt;br /&gt;
* [[Indus Valley Civilisation|Indus Valley]] &amp;lt;!-- 2600 – 1900 BCE --&amp;gt;&lt;br /&gt;
* [[Tamilakam]]&lt;br /&gt;
** [[Chola dynasty|Chola]]                   &amp;lt;!-- 300 BCE --&amp;gt;&lt;br /&gt;
** [[Chera dynasty|Chera]]                   &amp;lt;!-- 400 BCE --&amp;gt;&lt;br /&gt;
** [[Pandya dynasty|Pandya]]                 &amp;lt;!-- 400 BCE --&amp;gt;&lt;br /&gt;
* [[Maritime history of Somalia|Somalia]]    &amp;lt;!-- 0 CE? --&amp;gt;&lt;br /&gt;
* [[Dilmun]]                                 &amp;lt;!-- 2200 BCE – 1600 BCE (&#039;Golden age&#039;) --&amp;gt;&lt;br /&gt;
* [[Maya civilization|Maya]]                 &amp;lt;!-- 2000 BCE – 1700 CE --&amp;gt; &lt;br /&gt;
* [[Nuragic civilization|Nuragic]]           &amp;lt;!-- 2000 – 238 BCE; seagoing from 1200?? BCE --&amp;gt; &lt;br /&gt;
* [[Mycenaean Greece|Mycenaean]]             &amp;lt;!-- 1600 – 1100 BCE --&amp;gt;&lt;br /&gt;
* [[Phoenicia]]                              &amp;lt;!-- 1500 – 300 BCE --&amp;gt;&lt;br /&gt;
* [[Olmecs]]                                 &amp;lt;!-- 1500 – 400 BCE --&amp;gt;&lt;br /&gt;
* [[Carthaginian civilization|Carthage]]     &amp;lt;!-- 814 – 146 BCE --&amp;gt;&lt;br /&gt;
* [[Greek city-states|Greece]]               &amp;lt;!-- 800 – 146 BCE --&amp;gt;&lt;br /&gt;
** [[Archaic Greece|Archaic]]                &amp;lt;!-- 800 – 480 BCE --&amp;gt;&lt;br /&gt;
** [[Classical Greece|Classical]]            &amp;lt;!-- 510 – 323 BCE --&amp;gt;&lt;br /&gt;
* [[Ancient Rome|Rome]]                          &amp;lt;!-- 8th c. BCE – 476 CE --&amp;gt;&lt;br /&gt;
* [[Achaemenid Empire|Achaemenid]]           &amp;lt;!-- 550 – 330 BCE --&amp;gt;&lt;br /&gt;
* [[Nabataean Kingdom|Nabatea]]              &amp;lt;!-- 300 BCE - 106 CE--&amp;gt;&lt;br /&gt;
* [[Kingdom of Aksum|Aksum]]                 &amp;lt;!-- 0 -960 CE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group3 = [[Timeline of maritime migration and exploration|Migration and{{br}}exploration]] &amp;lt;!--3.3--&amp;gt;&lt;br /&gt;
  | list3  = &lt;br /&gt;
* [[Peopling of Australia]]                                             &amp;lt;!-- 65,000 – 50,000 BP --&amp;gt;&lt;br /&gt;
* [[Peopling of Micronesia]]                                            &amp;lt;!-- 3300 – 2800 BCE --&amp;gt;&lt;br /&gt;
* [[Austronesian peoples#Migration from Taiwan|Austronesian Expansion]] &amp;lt;!-- 3000 – 1500 BCE --&amp;gt;&lt;br /&gt;
* [[Greeks in pre-Roman Gaul]]                                          &amp;lt;!-- 600 BCE --&amp;gt;&lt;br /&gt;
* [[Ocean exploration]]&lt;br /&gt;
* [[Phoenician maritime expansion]]                                     &amp;lt;!-- 1200 – 300 BCE --&amp;gt;&lt;br /&gt;
** [[Phoenician–Punic Sardinia|Sardinia]]                               &amp;lt;!-- 900 – 200 BCE --&amp;gt;&lt;br /&gt;
** [[Necho II#Phoenician expedition|Circumnavigation of Africa]]        &amp;lt;!-- 600 BCE --&amp;gt;&lt;br /&gt;
* [[Pytheas#Voyage to Britain|Pytheas&#039; voyage to Britain]]              &amp;lt;!-- 325 BCE --&amp;gt;&lt;br /&gt;
* [[Gnaeus Julius Agricola|Roman circumnavigation of Britain]]          &amp;lt;!-- 80 CE --&amp;gt;&lt;br /&gt;
* [[Timeline of maritime migration and exploration|Timeline]]&lt;br /&gt;
&lt;br /&gt;
  | group4 = Mariners and{{br}}explorers &amp;lt;!--3.4--&amp;gt;&lt;br /&gt;
  | list4 = &lt;br /&gt;
* [[Henenu (high steward)|Henenu]] &amp;lt;!-- 20th c. BCE --&amp;gt;&lt;br /&gt;
* [[Euthymenes]]              &amp;lt;!-- 6th c.  CE --&amp;gt;&lt;br /&gt;
* [[Hanno the Navigator]]     &amp;lt;!-- 500 BCE --&amp;gt;&lt;br /&gt;
* [[Himilco]]                 &amp;lt;!-- 600-500 BCE --&amp;gt;&lt;br /&gt;
* [[Sataspes]]                &amp;lt;!-- 5th c.  CE --&amp;gt;&lt;br /&gt;
* [[Androsthenes of Thasos]]  &amp;lt;!-- 4th c.  CE --&amp;gt;&lt;br /&gt;
* [[Archias of Pella]]        &amp;lt;!-- 4th c.  CE --&amp;gt;&lt;br /&gt;
* [[Alexander the Great]]     &amp;lt;!-- 4th c.  CE --&amp;gt;&lt;br /&gt;
* [[Nearchus]]                &amp;lt;!-- 4th c.  CE --&amp;gt;&lt;br /&gt;
* [[Pytheas]]                 &amp;lt;!-- 320 BCE --&amp;gt;&lt;br /&gt;
* [[Megasthenes]]             &amp;lt;!-- 3rd c.  BCE --&amp;gt;&lt;br /&gt;
* [[Xu Fu]]                   &amp;lt;!-- 3rd c.  BCE --&amp;gt;&lt;br /&gt;
* [[Hippalus]]                &amp;lt;!-- 1st c. BCE --&amp;gt;&lt;br /&gt;
* [[Julius Caesar]]           &amp;lt;!-- 1st c. BCE --&amp;gt;&lt;br /&gt;
* [[Eudoxus of Cyzicus]]      &amp;lt;!-- 130 BCE --&amp;gt;&lt;br /&gt;
* [[Maes Titianus]]           &amp;lt;!-- 100 CE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group5 = Military &amp;lt;!--3.5--&amp;gt;&lt;br /&gt;
  | list5  =  {{Navbox|child&lt;br /&gt;
&lt;br /&gt;
    | group1 = [[Ancient navies and vessels|Navies]] &amp;lt;!--3.5.1--&amp;gt;&lt;br /&gt;
    | list1  = &lt;br /&gt;
*   [[Ancient Egyptian navy|Egyptian]]&lt;br /&gt;
*   [[Achaemenid navy|Achaemenid]]&lt;br /&gt;
*   [[Ancient Greek warfare#Naval tactics|Greek]]&lt;br /&gt;
*   [[Roman navy|Roman]]&lt;br /&gt;
&lt;br /&gt;
    | group2 = [[List of naval battles|Battles]] &amp;lt;!--3.5.2--&amp;gt;&lt;br /&gt;
    | list2  = &lt;br /&gt;
*   &#039;&#039;&#039;Mediterranean:&#039;&#039;&#039; &amp;amp;nbsp;&amp;lt;!--&lt;br /&gt;
--&amp;gt; [[Battles of Alashiya|Alashiya]]               &amp;lt;!-- 1275 – 1205 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of the Delta|Nile Delta]]             &amp;lt;!-- 1175 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Salamis|Salamis]]                  &amp;lt;!--  480 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Artemisium|Artemisium]]            &amp;lt;!--  480 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Eurymedon|Eurymedon]]              &amp;lt;!--  466 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Naupactus|Naupactus]]              &amp;lt;!--  429 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Olpae|Olpae]]                      &amp;lt;!--  426 BCE --&amp;gt;&lt;br /&gt;
*   [[Sicilian Expedition|Syracuse]]               &amp;lt;!--  414 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Cynossema|Cynossema]]              &amp;lt;!--  411 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Arginusae|Arginusae]]              &amp;lt;!--  406 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Mytilene (406 BC)|Mytilene]]       &amp;lt;!--  406 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Hellespont|Hellespont]]            &amp;lt;!--  323 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of the Echinades (322 BC)|Echinades]] &amp;lt;!--  322 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Salamis (306 BC)|Salamis II]]      &amp;lt;!--  306 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Mylae|Mylae]]                      &amp;lt;!--  260 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Cape Hermaeum|Cape Hermaeum]]      &amp;lt;!--  256 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Ecnomus|Ecnomus]]                  &amp;lt;!--  256 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Drepana|Drepana]]                  &amp;lt;!--  249 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of the Aegates|Aegates]]              &amp;lt;!--  241 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Lake Trasimene|Lake Trasimene]]    &amp;lt;!--  217 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Chios (201 BC)|Chios]]             &amp;lt;!--  201 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Myonessus|Myonessus]]              &amp;lt;!--  190 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of the Nile|Nile]]                    &amp;lt;!--   47 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Naulochus|Naulochus]]              &amp;lt;!--   36 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Mycale|Mycale]]                    &amp;lt;!--   31 BCE --&amp;gt;&lt;br /&gt;
*   [[Battle of Actium|Actium]]                    &amp;lt;!--   31 BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    | group3 = Tactics &amp;lt;!--3.5.3--&amp;gt;&lt;br /&gt;
    | list3  = &lt;br /&gt;
*   [[Naval boarding|Boarding]]&lt;br /&gt;
*   [[Grappling hook|Grappling]]                   &amp;lt;!--  260 BCE --&amp;gt;&lt;br /&gt;
*   [[Incendiary device|Incendiaries]]&lt;br /&gt;
*   [[Oared vessel tactics|Oared vessels]] &lt;br /&gt;
*   [[Sailing ship tactics|Sailing ships]]&lt;br /&gt;
*   [[Ancient Greek warfare#Naval tactics|Greek navy]]&lt;br /&gt;
*   [[Ramming]]&lt;br /&gt;
  }} &amp;lt;!--end child box 3.5 Military --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group6 = By region &amp;lt;!--3.6--&amp;gt;&lt;br /&gt;
  | list6  = &lt;br /&gt;
&lt;br /&gt;
* [[Chinese exploration|China]]&lt;br /&gt;
* [[Indian maritime history|India]]&lt;br /&gt;
** [[Maritime history of Odisha|Odisha]]&lt;br /&gt;
* [[Naval history of Japan|Japan]]&lt;br /&gt;
* [[Ships of ancient Rome|Rome]]&lt;br /&gt;
* [[Maritime history of South America|South America]]&lt;br /&gt;
** [[Pre-Columbian rafts|Rafts]]&lt;br /&gt;
 }} &amp;lt;!--end group 3 child box History--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ======================== GROUP 4 – ECONOMY AND TRADE ================= --&amp;gt;&lt;br /&gt;
| group4     = Economy and [[Trade#Ancient history|trade]]&lt;br /&gt;
| abbr4      = Economy&lt;br /&gt;
| state4     = collapsed&lt;br /&gt;
| image4     = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
| list4      =&lt;br /&gt;
* [[History of whaling|Whaling]]                                &amp;lt;!-- 6000 BCE --&amp;gt;&lt;br /&gt;
* [[History of fishing|Fishing]]                                &amp;lt;!-- 4000 BCE via reed boat --&amp;gt;&lt;br /&gt;
* [[Ancient Egyptian trade|Egypt]]                              &amp;lt;!-- 27th-22nd c. BCE --&amp;gt;&lt;br /&gt;
** [[Land of Punt]]                                             &amp;lt;!-- 27th-22nd c. BCE --&amp;gt;&lt;br /&gt;
* [[Indo–Mesopotamia relations]]                                &amp;lt;!-- 2500 BCE --&amp;gt;&lt;br /&gt;
* [[Meluhha]]                                                   &amp;lt;!-- 2300 BCE --&amp;gt;&lt;br /&gt;
* [[Tin sources and trade in ancient times#Trade|Tin]]          &amp;lt;!-- 2000 BCE --&amp;gt;&lt;br /&gt;
* [[Spice trade]]                                               &amp;lt;!-- 1500 BCE --&amp;gt;&lt;br /&gt;
* [[History of Southeast Asia#Early historical era|Austronesian network]] &amp;lt;!-- 1500 BCE --.&lt;br /&gt;
* [[British Iron Age#Economy of Iron Age Britain|Iron Age Britain]] &amp;lt;!-- 800 BCE - 43 CE --&amp;gt;&lt;br /&gt;
* [[Sa Huynh-Kalanay Interaction Sphere|Sa Huynh-Kalanay]]      &amp;lt;!-- 500 BCE --&amp;gt;&lt;br /&gt;
* [[Incense trade route|Incense trade]]                         &amp;lt;!-- 3rd c. BCE --&amp;gt;&lt;br /&gt;
* [[Maritime Silk Road]]                                        &amp;lt;!-- 2nd c. BCE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Periplus of the Erythraean Sea]]&#039;&#039;                        &amp;lt;!-- 1st c. CE --&amp;gt;&lt;br /&gt;
* [[Maritime trade in the Maya civilization|Maya]]              &amp;lt;!-- 250 – 900 CE --&amp;gt;&lt;br /&gt;
* [[Economy of ancient Greece#Trade|Greece]]&lt;br /&gt;
** [[Ancient Greece–Ancient India relations#Trade|Greco–Indian]] &amp;lt;!-- 1st c. BCE --&amp;gt;&lt;br /&gt;
** [[Greek shipping|shipping]]&lt;br /&gt;
* [[Roman commerce#Sea routes|Rome]]&lt;br /&gt;
** [[Indo-Roman trade relations|Indo–Roman]]                    &amp;lt;!-- 30 BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ========================= GROUP 5 – PIRACY =========================== --&amp;gt;&lt;br /&gt;
| group5     = Piracy&lt;br /&gt;
| abbr5      = Piracy&lt;br /&gt;
| state5     = collapsed&lt;br /&gt;
| image5     = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
| list5      =&lt;br /&gt;
* [[Piracy#History|History]]&lt;br /&gt;
* [[Ancient Mediterranean piracy|Mediterranean piracy]]        &amp;lt;!-- 1350 BCE --&amp;gt;&lt;br /&gt;
* [[Ameinias the Phocian]]                                     &amp;lt;!-- 275 BCE --&amp;gt;&lt;br /&gt;
* [[Cilician pirates]]                                         &amp;lt;!-- 2nd c. BCE --&amp;gt;&lt;br /&gt;
* [[Jewish pirates#Piracy in the ancient world: pirates of Joppa|Jewish pirates]] &amp;lt;!-- 150  BCE --&amp;gt;&lt;br /&gt;
* [[Early life and career of Julius Caesar#Kidnapping by pirates|Kidnapping of Julius Caesar]] &amp;lt;!-- 75  BCE --&amp;gt;&lt;br /&gt;
* [[Pompey&#039;s campaign against the pirates]]                    &amp;lt;!-- 67  BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ======================= GROUP 6 – RESEARCH AND EDUCATION ============= --&amp;gt;&lt;br /&gt;
| group6 = Research and education&lt;br /&gt;
| abbr6      = Research&lt;br /&gt;
| state6     = collapsed&lt;br /&gt;
| image6     = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
| list6 = {{Navbox|child&lt;br /&gt;
  | group1 = Scholars &amp;lt;!--6.1--&amp;gt;&lt;br /&gt;
  | list1  = {{Navbox|child&lt;br /&gt;
&lt;br /&gt;
    | group1 = Historians &amp;lt;!--6.1.1--&amp;gt;&lt;br /&gt;
    | list1 =&lt;br /&gt;
*     [[David Blackman]]&lt;br /&gt;
*     [[Lionel Casson]]&lt;br /&gt;
*     [[Fik Meijer]]&lt;br /&gt;
*     [[John Sinclair Morrison]]&lt;br /&gt;
*     [[William Ledyard Rodgers|William L. Rodgers]]&lt;br /&gt;
*     [[Chester G. Starr]]&lt;br /&gt;
&lt;br /&gt;
    | group2 = Archaeologists &amp;lt;!--6.1.2--&amp;gt;&lt;br /&gt;
    | list2 =&lt;br /&gt;
*     [[George Bass (archaeologist)|George Bass]]&lt;br /&gt;
*     [[Jean-Yves Empereur]]&lt;br /&gt;
*     [[Boris Rankov]]&lt;br /&gt;
*     [[J. Richard Steffy]]&lt;br /&gt;
*     [[Peter Throckmorton]]&lt;br /&gt;
*     [[Shelley Wachsmann]] &amp;lt;!-- [[d:Q113782065]] --&amp;gt;&lt;br /&gt;
    }}&amp;lt;!-- end child navbox Scholars --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group2 = Topics{{br}}and theories&amp;lt;!--6.2--&amp;gt;&lt;br /&gt;
  | list2  = &lt;br /&gt;
* [[Coastal defence and fortification]]&lt;br /&gt;
* [[Grave goods]]&lt;br /&gt;
* [[Lighthouse]]s&lt;br /&gt;
** [[Lighthouse of Alexandria|Alexandria]]&lt;br /&gt;
* [[Marine art]]&lt;br /&gt;
* [[Marine navigation]]&lt;br /&gt;
* [[Maritime archaeology]]&lt;br /&gt;
* [[Naval warfare#Mediterranean Sea|Naval warfare]]&lt;br /&gt;
* Maritime temples&lt;br /&gt;
** [[Temple of Isthmia]] &lt;br /&gt;
** [[Temple of Poseidon, Sounion]]&lt;br /&gt;
** [[Samothrace temple complex]]&lt;br /&gt;
* [[Nusantao Maritime Trading and Communication Network|Nusantao network]]&lt;br /&gt;
* [[Theory of Phoenician discovery of the Americas|Phoenician discovery of America]]&lt;br /&gt;
* [[Pre-Columbian transoceanic contact theories|Pre-Columbian theories]]&lt;br /&gt;
* [[Sea Peoples]]&lt;br /&gt;
* [[Shipbuilding]]&lt;br /&gt;
* [[Midden#Shells|Shell middens]] &amp;lt;!-- r: Shell middens--&amp;gt;&lt;br /&gt;
* [[Ship burial]]&lt;br /&gt;
* [[Tacking (sailing)|Tacking]]&lt;br /&gt;
* [[Thalassocracy]]&lt;br /&gt;
* [[Underwater archaeology]]  &lt;br /&gt;
* [[Underwater exploration]]&lt;br /&gt;
  &amp;lt;!-- There is no group 6.3 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group4 = Sites &amp;lt;!--6.4--&amp;gt;&lt;br /&gt;
  | list4  = &lt;br /&gt;
* [[H3 (Kuwait)|H3]]                                           &amp;lt;!-- 5520 BCE --&amp;gt;&lt;br /&gt;
* [[Qal&#039;at al-Bahrain]]       &amp;lt;!-- site of [[Dilmun]]               2300 BCE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | group5 = Experimental{{br}}archaeology &amp;lt;!--6.5--&amp;gt; &amp;lt;!-- Info-poor article at: [[Experimental archaeology]] --&amp;gt;&lt;br /&gt;
  | list5  = &lt;br /&gt;
* [[Ship replica]]&lt;br /&gt;
* [[Thor Heyerdahl|Heyerdahl expeditions]] &amp;lt;!-- Heyerdahl&#039;s voyages are regarded as pseudoscience. Should it be included here? --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Kon-Tiki expedition|Kon-Tiki]]&#039;&#039;                         &amp;lt;!-- 1947 --&amp;gt;&lt;br /&gt;
** [[Thor Heyerdahl#Boats Ra and Ra II|&#039;&#039;Ra&#039;&#039; and &#039;&#039;Ra II&#039;&#039;]]   &amp;lt;!-- 1969–1970--&amp;gt; &lt;br /&gt;
* Austronesian replicas               &lt;br /&gt;
** &#039;&#039;[[Hōkūleʻa]]&#039;&#039;                                            &amp;lt;!-- 1975 --&amp;gt;  &lt;br /&gt;
** &#039;&#039;[[Sarimanok (vinta)|Sarimanok]]&#039;&#039; &amp;lt;!-- 1985 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Te Au o Tonga]]&#039;&#039;                                       &amp;lt;!-- 1994 --&amp;gt;  &lt;br /&gt;
** &#039;&#039;[[Hawaiʻiloa#Canoe|Hawaiʻiloa canoe]]&#039;&#039;                   &amp;lt;!-- 1994 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Samudra Raksa]]&#039;&#039;                                       &amp;lt;!-- 2003 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Alingano Maisu]]&#039;&#039;                                      &amp;lt;!-- 2007 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Sakman|Saina]]&#039;&#039;                                        &amp;lt;!-- 2008 --&amp;gt;&lt;br /&gt;
** [[Balangay#Balangay Voyage|Balangay Voyage]]                &amp;lt;!-- 2009 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Faʻafaite]]&#039;&#039;                                           &amp;lt;!-- 2009 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Gaualofa]]&#039;&#039;                                            &amp;lt;!-- 2009 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Marumaru Atua]]&#039;&#039;                                       &amp;lt;!-- 2009 --&amp;gt;&lt;br /&gt;
* Mediterranean&lt;br /&gt;
** &#039;&#039;[[Olympias (trireme)|Olympias]]&#039;&#039;                          &amp;lt;!-- 1987 --&amp;gt;&lt;br /&gt;
** &#039;&#039;[[Navis lusoria#Other reconstructions|Regina]]&#039;&#039;           &amp;lt;!-- 2004 --&amp;gt;&lt;br /&gt;
** [[Phoenician Ship Expedition]]                               &amp;lt;!-- 2008 --&amp;gt;&lt;br /&gt;
* [[Viking ship replica|Viking replicas]]&lt;br /&gt;
** &#039;&#039;[[Viking (replica Viking longship)|Viking]]&#039;&#039;&lt;br /&gt;
* Others&lt;br /&gt;
** [[Vital Alsar Pacific raft expeditions|Vital Alsar]] &amp;lt;!-- 1966 (&#039;70, &#039;73) balsa sailing raft --&amp;gt;&lt;br /&gt;
** [[Ivlia (ship)|&#039;&#039;Ivlia&#039;&#039;]]                           &amp;lt;!-- 1989 bireme --&amp;gt;&lt;br /&gt;
** [[Abora (expeditions)|Abora]]                        &amp;lt;!-- 1996 reed sailing raft --&amp;gt;&lt;br /&gt;
** [[Viracocha expedition|Viracocha]]                   &amp;lt;!-- 2000 reed sailing raft  --&amp;gt;&lt;br /&gt;
** [[Tangaroa Expedition|Tangaroa]]                     &amp;lt;!-- 2006 reed sailing raft --&amp;gt;&lt;br /&gt;
** [[Ferriby Boats#Oakleaf|Oakleaf]]                    &amp;lt;!-- 2002 Ferriby boat --&amp;gt; &lt;br /&gt;
** [[Ferriby Boats#Morgawr|Morgawr]]                    &amp;lt;!-- 2012 Ferriby boat --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  | group6 = Institutes and {{br}}conferences&amp;lt;!--6.6--&amp;gt;&lt;br /&gt;
  | list6  = &lt;br /&gt;
* [[Advisory Council on Underwater Archaeology]]&lt;br /&gt;
* [[Archaeological Institute of America]]&lt;br /&gt;
* [[European Association of Archaeologists]]&lt;br /&gt;
* [[Institute of Nautical Archaeology]] &amp;lt;!-- US --&amp;gt;&lt;br /&gt;
* [[International Congress of Maritime Museums]]&lt;br /&gt;
* [[Nautical Archaeology Society]] &amp;lt;!-- UK --&amp;gt;&lt;br /&gt;
* [[RPM Nautical Foundation]]&lt;br /&gt;
* [[Sea Research Society]]&lt;br /&gt;
* [[Society for American Archaeology]]&lt;br /&gt;
&lt;br /&gt;
  | group7 = Museums and{{br}}memorials &amp;lt;!--6.7--&amp;gt;&lt;br /&gt;
  | list7  = &lt;br /&gt;
* [[Boat Museum, Kolkata]]&lt;br /&gt;
* [[Bodrum Castle#Museum of Underwater Archaeology|Bodrum Museum of Underwater Archaeology]]&lt;br /&gt;
* [[Giza Solar boat museum]]&lt;br /&gt;
* [[Grand Egyptian Museum]]&lt;br /&gt;
* [[Kyrenia Castle#Shipwreck museum|Ancient Shipwreck Museum at Kyrenia Castle]]&lt;br /&gt;
* [[Museum of Ancient Seafaring]]&lt;br /&gt;
* [[Museum of Ancient Ships, Pisa]]&lt;br /&gt;
* [[National Museum of Subaquatic Archaeology]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Ulsan Petroglyph Museum]] (red link)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Viking ship museums:&lt;br /&gt;
** [[Viking Ship Museum (Oslo)|Oslo]]&lt;br /&gt;
** [[Viking Ship Museum (Roskilde)|Roskilde]]&lt;br /&gt;
&lt;br /&gt;
 }} &amp;lt;!--group 6 child box--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ================= GROUP 7 – LEGEND AND LITERATURE ==================== --&amp;gt;&lt;br /&gt;
  | group7 = Legend and literature&lt;br /&gt;
  | abbr7  = Legend&lt;br /&gt;
  | state7 = collapsed&lt;br /&gt;
  | image7 = [[File:Galley - Layard - Ninive page 324 detail.png|120px|link=|alt=]]&lt;br /&gt;
  | list7  = &lt;br /&gt;
&lt;br /&gt;
 {{Navbox|child&lt;br /&gt;
  | group1 = [[Legend]] &amp;lt;!--7.1--&amp;gt;&lt;br /&gt;
  | list1  = &lt;br /&gt;
* [[Ark of bulrushes]]&lt;br /&gt;
* [[List of flood myths|Flood myths]]&lt;br /&gt;
** [[Genesis flood narrative|Genesis]]&lt;br /&gt;
** [[Gilgamesh flood myth|Gilgamesh]]&lt;br /&gt;
** [[Ancient Greek flood myths|Greek]]&lt;br /&gt;
&lt;br /&gt;
  | group2 = [[Literature]] &amp;lt;!--7.2--&amp;gt;&lt;br /&gt;
  | list2  = &lt;br /&gt;
* &#039;&#039;[[Odyssey]]&#039;&#039;                                           &amp;lt;!-- 8th – 7th c. BCE (written; events from 1194 BCE) --&amp;gt;&lt;br /&gt;
* [[Histories (Herodotus)|&#039;&#039;Histories&#039;&#039; (Herodotus)]]    &amp;lt;!-- 430 BCE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[On the Ocean (Pytheas)|On the Ocean]]&#039;&#039;               &amp;lt;!-- 315 BCE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Argonautica]]&#039;&#039;                                       &amp;lt;!-- 3rd c. BCE --&amp;gt;&lt;br /&gt;
* [[Histories (Polybius)|&#039;&#039;Histories&#039;&#039; (Polybius)]] &amp;lt;!-- 140 BCE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Metamorphoses]]&#039;&#039;                                     &amp;lt;!-- 8 CE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Geography (Ptolemy)|Geography]]&#039;&#039;                     &amp;lt;!-- 150 CE --&amp;gt;&lt;br /&gt;
* &#039;&#039;[[Aeneid]]&#039;&#039;                                            &amp;lt;!-- 29 BCE --&amp;gt;&lt;br /&gt;
 }} &amp;lt;!--group 7 child box--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| below      =&lt;br /&gt;
&amp;lt;!-- probably some categories here --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{navbox documentation|collapsed&lt;br /&gt;
|intro=&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
* {{para|1}} – group id of group to be expanded; no default, if omitted, nothing expanded. Possible values of &#039;group id&#039;:&lt;br /&gt;
** {{pval|Vessels}} ⟶ expand the &amp;quot;Vessels&amp;quot; section&lt;br /&gt;
** {{pval|Navigation}} ⟶ expand section &amp;quot;Navigation, and ports and harbors&amp;quot;&lt;br /&gt;
** {{pval|History}} ⟶ expand section &amp;quot;History&amp;quot; &lt;br /&gt;
** {{pval|Economy}} ⟶ expand section &amp;quot;Economy and trade&amp;quot; &lt;br /&gt;
** {{pval|Piracy}} ⟶ expand section &amp;quot;Piracy&amp;quot;&lt;br /&gt;
** {{pval|Research}} ⟶ expand section &amp;quot;Research and education&amp;quot;&lt;br /&gt;
** {{pval|Legend}} ⟶ expand section &amp;quot;Legend and literature&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|3=&lt;br /&gt;
== See also ==&lt;br /&gt;
{{Navboxes |list1= &amp;lt;!--Alphabetized per title on title bar, not template filename--&amp;gt;&lt;br /&gt;
  {{Ancient Egypt topics}}&lt;br /&gt;
  {{Ancient Greece topics}}&lt;br /&gt;
  {{Ancient Rome topics}}&lt;br /&gt;
  {{Archaeology}}&lt;br /&gt;
  {{Austronesian ships}}&lt;br /&gt;
  {{Centuries and millennia}}&lt;br /&gt;
  {{Early human migrations}}&lt;br /&gt;
  {{Fishing history|state=collapsed}}&lt;br /&gt;
  {{Illyrians}}&lt;br /&gt;
  {{World&#039;s largest wooden ships}}&amp;lt;!--Largest wooden ships--&amp;gt;&lt;br /&gt;
  {{Prehistoric technology}}&lt;br /&gt;
  {{Sail types}}&lt;br /&gt;
  {{Seamanship}}&lt;br /&gt;
  {{Oldest surviving ships (pre-1919)}}&amp;lt;!--Surviving ships launched before 1919--&amp;gt;&lt;br /&gt;
  {{Trade route 2}}&lt;br /&gt;
  {{Sailing vessels and rigs}}&amp;lt;!--Types of Sailing vessels and rigs--&amp;gt;&lt;br /&gt;
}}&amp;lt;!--end navboxes--&amp;gt;&lt;br /&gt;
}}&amp;lt;!--end navbox documentation--&amp;gt;&lt;br /&gt;
{{Sandbox other||&lt;br /&gt;
[[Category:Ancient history navigational boxes|Seafaring]]&lt;br /&gt;
[[Category:Water transport templates]]&lt;br /&gt;
}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Museums_in_Egypt&amp;diff=2182</id>
		<title>Template:Museums in Egypt</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Museums_in_Egypt&amp;diff=2182"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
|name = Museums in Egypt&lt;br /&gt;
|state= {{{state|autocollapse}}}&lt;br /&gt;
|title = [[List of museums in Egypt|Museums in Egypt]]&lt;br /&gt;
|image = {{portal|Egypt}}&lt;br /&gt;
|listclass = hlist&lt;br /&gt;
|list1=  &lt;br /&gt;
* [[Egyptian National Military Museum]]&lt;br /&gt;
* [[Abdeen Palace|Abdeen Palace Museum]]&lt;br /&gt;
*[[Agricultural Museum, Egypt|Agricultural Museum]]&lt;br /&gt;
*[[Ahmed Shawki Museum]]&lt;br /&gt;
*[[Alexandria National Museum]]&lt;br /&gt;
*[[Alexandria Aquarium Museum]]&lt;br /&gt;
*[[Al Minya Museum]]&lt;br /&gt;
*[[Al-Alemein War Museum]]&lt;br /&gt;
*[[Ashmunein open air museum]]&lt;br /&gt;
*[[Aswan Museum]]&lt;br /&gt;
*[[Bayt Al-Suhaymi]]&lt;br /&gt;
*[[Beit El-Umma (House of the People)]]&lt;br /&gt;
*[[Beni Suef Museum]]&lt;br /&gt;
*[[Beshtak Palace]]&lt;br /&gt;
*[[Cairo Aquarium Museum]]&lt;br /&gt;
*[[Cairo Zoologica Museum]]&lt;br /&gt;
*[[Carriage Museum (Egypt)|Carriage Museum]]&lt;br /&gt;
*[[Child Museum (Cairo)|Child Museum]]&lt;br /&gt;
*[[Cavafy Museum|Constantine P. Cavafy museum in Alexandria]]&lt;br /&gt;
*[[Coptic Museum]]&lt;br /&gt;
*[[Denshway Museum]]&lt;br /&gt;
*[[Egyptian Geological Museum]]&lt;br /&gt;
*[[Gamal Abdel Nasser Museum]]&lt;br /&gt;
*[[Gayer-Anderson Museum]]&lt;br /&gt;
*[[Gezira Center for Modern Art]]&lt;br /&gt;
*[[Graeco-Roman Museum]]&lt;br /&gt;
*[[Grand Egyptian Museum]]&lt;br /&gt;
*[[Imhotep Museum]]&lt;br /&gt;
*[[Ismaïlia Museum]]&lt;br /&gt;
*[[Karanis Site Museum]]&lt;br /&gt;
*[[Karnak]] open air museum&lt;br /&gt;
*[[Kasr (Qasr) El-Gawhara (Jewel Palace)]]&lt;br /&gt;
*[[Kharga Museum]]&lt;br /&gt;
*[[Bibliotheca Alexandrina|Library of Alexandria Museum]]&lt;br /&gt;
*[[Luxor Museum]]&lt;br /&gt;
*[[Manyal Palace]]&lt;br /&gt;
*[[Marine Museum]]&lt;br /&gt;
*[[Mallawi Museum]]&lt;br /&gt;
*[[Matrouh Archaeology Museum]]&lt;br /&gt;
*[[Memphis, Egypt|Memphis open air museum]]&lt;br /&gt;
*[[Military Museum (Port Said)|Military Museum]]&lt;br /&gt;
*[[Mohamed Mahmoud Khalil Museum]]&lt;br /&gt;
*[[Mohamed Nagy Museum]]&lt;br /&gt;
*[[Mukhtar Museum]]&lt;br /&gt;
*[[Mummification Museum]]&lt;br /&gt;
*[[Egyptian Museum]]&lt;br /&gt;
*[[Museum of Egyptian Railways]]&lt;br /&gt;
*[[Museum of Islamic Art, Cairo]]&lt;br /&gt;
*[[Museum of Islamic Ceramics]]&lt;br /&gt;
*[[Museum of Modern Art in Egypt]]&lt;br /&gt;
*[[National Museum of Egyptian Civilization]]&lt;br /&gt;
*[[Museum of Tal Basta Antiquities]]&lt;br /&gt;
*[[Nubian Museum]]&lt;br /&gt;
*[[Oceanographic museum in Alexandria]]&lt;br /&gt;
*[[Om Kalthoum Museum]]&lt;br /&gt;
*[[Pharaonic Village]]&lt;br /&gt;
*[[Postal Museum (Cairo)|Postal Museum]]&lt;br /&gt;
*[[Prince Amr Ibrahim Palace]]&lt;br /&gt;
*[[Princess Fatma Al-Zahra&#039; Palace museum]]&lt;br /&gt;
*[[Qasr Al-Eini Museum]]&lt;br /&gt;
*[[Ramses Wessa Wassef Art Center]]&lt;br /&gt;
*[[Adam Henein|Adam Henein Museum]]&lt;br /&gt;
*[[Royal Jewelry Museum]]&lt;br /&gt;
*[[Taha Hussein Museum]]&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{collapsible option}}&lt;br /&gt;
[[Category:Egypt buildings and structures templates]]&lt;br /&gt;
[[Category:Museum navigational boxes|Egypt]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Br&amp;diff=2180</id>
		<title>Template:Br</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Br&amp;diff=2180"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Break]]&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:MultiReplace&amp;diff=2178</id>
		<title>Template:MultiReplace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:MultiReplace&amp;diff=2178"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{safesubst:&amp;lt;noinclude/&amp;gt;#invoke:MultiReplace|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Infobox_building&amp;diff=2176</id>
		<title>Template:Infobox building</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Infobox_building&amp;diff=2176"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{main other|{{#if:{{#invoke:Is infobox in lead|main|[Ii]nfobox [Bb]uilding}}|{{#if:{{Has short description}} |&amp;lt;!--Do nothing--&amp;gt; |{{#invoke:Type in location|main|{{{building_type|Building}}}|{{comma separated entries&lt;br /&gt;
 |1= {{if empty|{{{location|}}}|{{{address|}}}}}&lt;br /&gt;
 |2= {{if empty|{{{location_town|}}}|{{{location_city|}}}}}&lt;br /&gt;
 |3= {{{location_country|}}}&lt;br /&gt;
}}}}}}}}}}{{Infobox&lt;br /&gt;
| child = {{#ifeq:{{{embed|}}}|yes|yes}}&lt;br /&gt;
| bodyclass   = vcard&lt;br /&gt;
| aboveclass  = fn org&lt;br /&gt;
| headerstyle = {{#ifeq:{{{embed|}}}|yes||background-color:#ededed;color:#000;}}&lt;br /&gt;
| title       = {{#ifeq:{{{embed|}}}|yes|&amp;lt;div style=&amp;quot;font-weight:bold; text-align:center;&amp;quot;&amp;gt;Building details&amp;lt;/div&amp;gt;}}&lt;br /&gt;
| above       = {{{building_name|{{{hotel_name|{{{name|&amp;lt;includeonly&amp;gt;{{PAGENAMEBASE}}&amp;lt;/includeonly&amp;gt;}}}}}}}}}&lt;br /&gt;
| subheader   = {{#if:{{{native_building_name|{{{native_name|}}}}}}|&amp;lt;div class=&amp;quot;nickname&amp;quot; {{#if:{{{native_name_lang|}}}| lang=&amp;quot;{{{native_name_lang}}}&amp;quot;}}&amp;gt;{{{native_building_name|{{{native_name}}}}}}&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
| imagestyle = text-align: center&lt;br /&gt;
| captionstyle = text-align: center&lt;br /&gt;
| image1     = {{#invoke:InfoboxImage|InfoboxImage|image={{{logo|}}}|size={{{logo_size|{{{logo_width|}}}}}}|sizedefault=250px|upright={{{logo_upright|1.1}}}|alt={{{logo_alt|}}}}}&lt;br /&gt;
| caption1   = {{{logo_caption|}}}&lt;br /&gt;
&lt;br /&gt;
| image2     = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|{{{image_width|}}}}}}|sizedefault=250px|upright={{{image_upright|1.1}}}|alt={{{image_alt|{{{alt|}}}}}}}}&lt;br /&gt;
| caption2   = {{{caption|{{{image_caption|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| image3     = {{#if:{{{pushpin_map|{{{map_type|}}}}}}|{{Location map|{{{pushpin_map|{{{map_type|}}}}}}&lt;br /&gt;
 |alt     = {{{pushpin_map_alt|{{{map_alt|}}}}}}&lt;br /&gt;
 |coordinates = {{{coordinates|}}}&lt;br /&gt;
 |float   = center&lt;br /&gt;
 |mark    = {{{map_dot_mark|Red pog.svg}}}&lt;br /&gt;
 |marksize= 7&lt;br /&gt;
 |label   = {{{pushpin_label|{{{map_dot_label|}}}}}}&lt;br /&gt;
 |relief  = {{{pushpin_relief|{{{relief|}}}}}}&lt;br /&gt;
 |border  = infobox&lt;br /&gt;
 |caption = {{{pushpin_map_caption|{{{map_caption|Location within {{#invoke:Location map|data|{{{pushpin_map|{{{map_type}}}}}}|name}}}}}}}}&lt;br /&gt;
 |width   = {{{pushpin_mapsize|{{{map_size|}}}}}}&lt;br /&gt;
}} |&amp;lt;!-- else if map_type is blank&lt;br /&gt;
--&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=250px|alt={{{map_alt|}}}}}&amp;lt;!-- end if map_type&lt;br /&gt;
--&amp;gt;}}&lt;br /&gt;
| caption3   = {{#if:{{{pushpin_map|{{{map_type|}}}}}} |&amp;lt;!-- leave blank --&amp;gt;| {{{map_caption|}}} }}&lt;br /&gt;
&lt;br /&gt;
| image4      = {{#invoke:Infobox mapframe&lt;br /&gt;
  | auto&lt;br /&gt;
  | onByDefault = {{#if:{{{pushpin_map|}}}{{{map_type|}}}{{{image_map|}}}|no|yes}}&lt;br /&gt;
  | mapframe-frame-width = 250&lt;br /&gt;
  | mapframe-wikidata = yes&lt;br /&gt;
  | mapframe-type = landmark&lt;br /&gt;
  | mapframe-marker = building&lt;br /&gt;
  | mapframe-marker-color = #919090&lt;br /&gt;
  | mapframe-stroke-color = #525252&lt;br /&gt;
  | mapframe-stroke-width = 3&lt;br /&gt;
  | mapframe-shape-fill = #dbdbdb&lt;br /&gt;
}}&lt;br /&gt;
| caption4    = {{#invoke:Infobox mapframe|autocaption|onByDefault={{#if:{{{pushpin_map|}}}{{{map_type|}}}{{{image_map|}}}|no|yes}}}}&lt;br /&gt;
&lt;br /&gt;
| label1    = Former names&lt;br /&gt;
|  data1    = {{{former_names|{{{former_name|}}}}}}&lt;br /&gt;
| class1    = nickname&lt;br /&gt;
&lt;br /&gt;
| label2    = Alternative names&lt;br /&gt;
|  data2    = {{{alternate_names|{{{alternate_name|}}}}}}&lt;br /&gt;
| class2    = nickname&lt;br /&gt;
&lt;br /&gt;
| label3    = Etymology&lt;br /&gt;
|  data3    = {{{etymology|}}}&lt;br /&gt;
&lt;br /&gt;
| label4    = Hotel chain&lt;br /&gt;
|  data4    = {{{hotel_chain|{{{chain|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| header5   = {{#if:{{{highest_prev|}}}{{{highest_next|}}}{{{highest_start|}}}{{{highest_end|}}}{{{highest_region|}}}|Record height}}&lt;br /&gt;
&lt;br /&gt;
|  data6    = {{#if:{{{highest_start|}}}{{{highest_end|}}}&lt;br /&gt;
    |Tallest in {{#if:{{{highest_region|}}}|{{{highest_region}}}|the world}}&amp;lt;!--&lt;br /&gt;
   --&amp;gt; {{#if:{{both|{{{highest_start|}}}|{{{highest_end|}}}}} &lt;br /&gt;
        |from {{{highest_start|}}} to {{{highest_end|}}}&lt;br /&gt;
        |{{#if:{{{highest_start|}}}|since {{{highest_start}}} }}&amp;lt;!--&lt;br /&gt;
     --&amp;gt;{{#if:{{{highest_end|}}}|until {{{highest_end}}} }}&amp;lt;!--&lt;br /&gt;
   --&amp;gt;}}{{ref label|{{{highest_reflabel|talleststatus}}}|I|}}&lt;br /&gt;
    }}&lt;br /&gt;
&lt;br /&gt;
| label7    = Preceded by&lt;br /&gt;
|  data7    = {{{highest_prev|}}}&lt;br /&gt;
&lt;br /&gt;
| label8    = Surpassed by&lt;br /&gt;
|  data8    = {{{highest_next|}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| header9   = {{#if:{{{status|}}}{{{building_type|}}}{{{architectural_style|}}}{{{style|}}}{{{classification|}}}{{{location|}}}{{{location_town|}}}{{{location_city|}}}{{{location_country|}}}{{{address|}}}{{{coordinates|}}}{{{altitude|}}}{{{start_date|}}}{{{construction_start_date|}}}{{{topped_out_date|}}}{{{est_completion|}}}{{{completion_date|}}}{{{inauguration_date|}}}{{{groundbreaking_date|}}}{{{opening_date|}}}{{{opening|}}}{{{opened|}}}{{{opened_date|}}}{{{renovation_date|}}}{{{closing_date|}}}{{{demolition_date|}}}{{{date_demolished|}}}{{{demolished_date|}}}{{{destruction_date|}}}{{{destroyed|}}}{{{cost|}}}{{{ren_cost|}}}{{{client|}}}{{{owner|}}}{{{governing_body|}}}{{{landlord|}}}{{{management|{{{operator|}}}}}}{{{affiliation|}}}|General information}}&lt;br /&gt;
&lt;br /&gt;
| label10   = Status&lt;br /&gt;
| class10   = category&lt;br /&gt;
|  data10   = {{#if:{{{status|}}}|{{#switch:{{lc:{{{status|}}}}}&lt;br /&gt;
| built | completed | finished&lt;br /&gt;
| complete = Completed&lt;br /&gt;
| destroyed  = Destroyed&lt;br /&gt;
| demolished = Demolished&lt;br /&gt;
| on hold    = On hold&lt;br /&gt;
| incomplete | unfinished&lt;br /&gt;
| under construction = Under construction&lt;br /&gt;
| cancelled | canceled&lt;br /&gt;
| never built = Never built&lt;br /&gt;
| topped out&lt;br /&gt;
| topped-out  = [[Topping out|Topped-out]]&lt;br /&gt;
| planned&lt;br /&gt;
| proposed    = Proposed&lt;br /&gt;
| approved    = Approved&lt;br /&gt;
| #default    = {{{status|}}}&lt;br /&gt;
}}|{{#if:{{{cancelled|}}}{{{canceled|}}}|Never built|{{#if:{{{topped_out|}}}|[[Topping out|Topped-out]]}} }} }}&lt;br /&gt;
&lt;br /&gt;
| label11   = Type&lt;br /&gt;
|  data11   = {{{building_type|}}}&lt;br /&gt;
| class11   = category&lt;br /&gt;
&lt;br /&gt;
| label12   = Architectural style&lt;br /&gt;
|  data12   = {{{architectural_style|{{{style|}}}}}}&lt;br /&gt;
| class12   = category&lt;br /&gt;
&lt;br /&gt;
| label13   = Classification&lt;br /&gt;
|  data13   = {{{classification|}}}&lt;br /&gt;
| class13   = category&lt;br /&gt;
&lt;br /&gt;
| class14   = label&lt;br /&gt;
| label14   = Location&lt;br /&gt;
|  data14   = {{{location|}}}&lt;br /&gt;
&lt;br /&gt;
| label15   = Address&lt;br /&gt;
|  data15   = {{{address|}}}&lt;br /&gt;
&lt;br /&gt;
| label16   = Town or city&lt;br /&gt;
|  data16   = {{if empty|{{{location_town|}}}|{{{location_city|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label17   = Country&lt;br /&gt;
|  data17   = {{{location_country|}}}&lt;br /&gt;
&lt;br /&gt;
| label18   = [[Geographic coordinate system|Coordinates]]&lt;br /&gt;
|  data18   = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates|}}}|type:landmark|{{#if:{{{location_country|}}}|region:{{Country abbreviation|{{{location_country}}}}}}}}}|}}&lt;br /&gt;
&lt;br /&gt;
| label19   = {{if empty|{{{grid_name|}}}|Grid&amp;amp;nbsp;position}}&lt;br /&gt;
|  data19   = {{{grid_position|}}}&lt;br /&gt;
&lt;br /&gt;
| label20   = Elevation&lt;br /&gt;
|  data20   = {{{altitude|}}}&lt;br /&gt;
&lt;br /&gt;
| label21   = Current tenants&lt;br /&gt;
|  data21   = {{{current_tenants|}}}&lt;br /&gt;
&lt;br /&gt;
| label22   = Named for&lt;br /&gt;
|  data22   = {{{namesake|}}}&lt;br /&gt;
&lt;br /&gt;
| label23   = Year(s) built&lt;br /&gt;
|  data23   = {{{years_built|}}}&lt;br /&gt;
&lt;br /&gt;
| label24   = Groundbreaking&lt;br /&gt;
|  data24   = {{{groundbreaking_date|}}}&lt;br /&gt;
&lt;br /&gt;
| label25   = Construction started&lt;br /&gt;
|  data25   = {{{start_date|{{{construction_start_date|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label26   = Construction stopped&lt;br /&gt;
|  data26   = {{{stop_date|{{{construction_stop_date|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label27   = Topped-out&lt;br /&gt;
|  data27   = {{{topped_out_date|}}}&lt;br /&gt;
&lt;br /&gt;
| rowclass28= note&lt;br /&gt;
| label28   = {{#if:{{{est_completion|}}}|Estimated completion|{{#if:{{{completion_date|}}}|Completed}} }}&lt;br /&gt;
|  data28   = {{if empty|{{{est_completion|}}}|{{{completion_date|}}} }}&lt;br /&gt;
&lt;br /&gt;
| label29   = {{#if:{{{opened|{{{opened_date|}}}}}}|{{#iferror:{{#ifexpr: {{#time:U|{{Plain text|1={{MultiReplace|1={{{opened|{{{opened_date}}}}}}|2=%&amp;lt;.*%&amp;gt;|3=|4=%s|5=}}}}}}&amp;gt;{{#time:U}} |Opening|Opened}}|Opened}}|Opening}}&lt;br /&gt;
|  data29   = {{if empty|{{{opened_date|}}}|{{{opened|}}}|{{{opening_date|}}}|{{{opening|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label30   = Inaugurated&lt;br /&gt;
|  data30   = {{{inauguration_date|}}}&lt;br /&gt;
&lt;br /&gt;
| label31   = Relocated&lt;br /&gt;
|  data31   = {{{relocated_date|}}}&lt;br /&gt;
&lt;br /&gt;
| label32   = Renovated&lt;br /&gt;
|  data32   = {{{renovation_date|}}}&lt;br /&gt;
&lt;br /&gt;
| label33   = Closed&lt;br /&gt;
|  data33   = {{{closing_date|}}}&lt;br /&gt;
&lt;br /&gt;
| rowclass34= note&lt;br /&gt;
| label34   = {{#if:{{{demolition_date|}}}{{{date_demolished|}}}{{{demolished_date|}}}|Demolished|Destroyed}}&lt;br /&gt;
|  data34   = {{if empty|{{{demolition_date|}}}|{{{date_demolished|}}}|{{{demolished_date|}}}|{{{destruction_date|}}}|{{{destroyed|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label35   = Cost&lt;br /&gt;
|  data35   = {{{cost|}}}&lt;br /&gt;
&lt;br /&gt;
| label36   = Renovation cost&lt;br /&gt;
|  data36   = {{{ren_cost|}}}&lt;br /&gt;
&lt;br /&gt;
| label37   = Client&lt;br /&gt;
|  data37   = {{{client|}}}&lt;br /&gt;
&lt;br /&gt;
| label38   = Owner&lt;br /&gt;
|  data38   = {{{owner|}}}&lt;br /&gt;
&lt;br /&gt;
| label39   = {{#if:{{{governing_body|}}}|Governing body|{{#if:{{{landlord|}}}|Landlord|Management}}}}&lt;br /&gt;
|  data39   = {{#if:{{{governing_body|}}}|{{{governing_body|}}}|{{#if:{{{landlord|}}}|{{{landlord}}}|{{{management|{{{operator|}}}}}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label40   = Affiliation&lt;br /&gt;
|  data40   = {{{affiliation|}}}&lt;br /&gt;
&lt;br /&gt;
| header41  = {{#if:{{{architectural|}}}{{{tip|}}}{{{antenna_spire|}}}{{{roof|}}}{{{top_floor|}}}{{{observatory|}}}|Height}}&lt;br /&gt;
&lt;br /&gt;
| label42   = Height&lt;br /&gt;
|  data42   = {{{height|}}}&lt;br /&gt;
&lt;br /&gt;
| label43   = Architectural&lt;br /&gt;
|  data43   = {{{architectural|}}}&lt;br /&gt;
&lt;br /&gt;
| label44   = Tip&lt;br /&gt;
|  data44   = {{{tip|}}}&lt;br /&gt;
&lt;br /&gt;
| label45   = Antenna spire&lt;br /&gt;
|  data45   = {{{antenna_spire|}}}&lt;br /&gt;
&lt;br /&gt;
| label46   = Roof&lt;br /&gt;
|  data46   = {{{roof|}}}&lt;br /&gt;
&lt;br /&gt;
| label47   = Top floor&lt;br /&gt;
|  data47   = {{{top_floor|}}}&lt;br /&gt;
&lt;br /&gt;
| label48   = Observatory&lt;br /&gt;
|  data48   = {{{observatory|}}}&lt;br /&gt;
&lt;br /&gt;
| header49  = {{#if:{{{diameter|}}}{{{circumference|}}}{{{weight|}}}{{{other_dimensions|}}}|Dimensions}}&lt;br /&gt;
&lt;br /&gt;
| label50   = Diameter&lt;br /&gt;
|  data50   = {{{diameter|}}}&lt;br /&gt;
&lt;br /&gt;
| label51   = Circumference&lt;br /&gt;
|  data51   = {{{circumference|}}}&lt;br /&gt;
&lt;br /&gt;
| label52   = Weight&lt;br /&gt;
|  data52   = {{{weight|}}}&lt;br /&gt;
&lt;br /&gt;
| label53   = Other dimensions&lt;br /&gt;
|  data53   = {{{other_dimensions|}}}&lt;br /&gt;
&lt;br /&gt;
| header54  = {{#if:{{{structural_system|}}}{{{material|}}}{{{size|}}}{{{floor_count|{{{floors|}}}}}}{{{floor_area|}}}{{{elevator_count|}}}|Technical details}}&lt;br /&gt;
&lt;br /&gt;
| label55   = Structural system&lt;br /&gt;
|  data55   = {{{structural_system|}}}&lt;br /&gt;
| class55   = category&lt;br /&gt;
&lt;br /&gt;
| label56   = Material&lt;br /&gt;
|  data56   = {{{material|}}}&lt;br /&gt;
| class56   = category&lt;br /&gt;
&lt;br /&gt;
| label57   = Size&lt;br /&gt;
|  data57   = {{{size|}}}&lt;br /&gt;
&lt;br /&gt;
| label58   = Floor count&lt;br /&gt;
|  data58   = {{{floor_count|{{{floors|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label59   = Floor area&lt;br /&gt;
|  data59   = {{{floor_area|}}}&lt;br /&gt;
&lt;br /&gt;
| label60   = Lifts/elevators&lt;br /&gt;
|  data60   = {{{elevator_count|}}}&lt;br /&gt;
&lt;br /&gt;
| label61   = Grounds&lt;br /&gt;
|  data61   = {{{grounds_area|}}}&lt;br /&gt;
&lt;br /&gt;
| header62  = {{#if:{{{architect|}}}{{{architecture_firm|}}}{{{developer|}}}{{{engineer|}}}{{{structural_engineer|}}}{{{civil_engineer|}}}{{{other_designers|}}}{{{quantity_surveyor|}}}{{{main_contractor|}}}{{{main_contractors|}}}|Design and construction}}&lt;br /&gt;
&lt;br /&gt;
| label63   = Architect(s)&lt;br /&gt;
|  data63   = {{{architect|}}}&lt;br /&gt;
&lt;br /&gt;
| label64   = Architecture firm&lt;br /&gt;
|  data64   = {{{architecture_firm|}}}&lt;br /&gt;
&lt;br /&gt;
| label65   = Developer&lt;br /&gt;
|  data65   = {{{developer|}}}&lt;br /&gt;
&lt;br /&gt;
| label66   = Engineer&lt;br /&gt;
|  data66   = {{{engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label67   = Structural engineer&lt;br /&gt;
|  data67   = {{{structural_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label68   = Services engineer&lt;br /&gt;
|  data68   = {{{services_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label69   = Civil engineer&lt;br /&gt;
|  data69   = {{{civil_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label70   = Other designers&lt;br /&gt;
|  data70   = {{{other_designers|}}}&lt;br /&gt;
&lt;br /&gt;
| label71   = Quantity surveyor&lt;br /&gt;
|  data71   = {{{quantity_surveyor|}}}&lt;br /&gt;
&lt;br /&gt;
| label72   = Main contractor&lt;br /&gt;
|  data72   = {{{main_contractor|{{{main_contractors|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| rowclass73 = note&lt;br /&gt;
| label73    = Awards and prizes&lt;br /&gt;
|  data73    = {{{awards|}}}&lt;br /&gt;
&lt;br /&gt;
| label74    = Designations&lt;br /&gt;
|  data74    = {{{designations|}}}&lt;br /&gt;
&lt;br /&gt;
| label75    = Known for&lt;br /&gt;
|  data75    = {{{known_for|}}}&lt;br /&gt;
&lt;br /&gt;
| header76  = {{#if:{{{ren_architect|}}}{{{ren_firm|}}}{{{ren_engineer|}}}{{{ren_str_engineer|}}}{{{ren_serv_engineer|}}}{{{ren_civ_engineer|}}}{{{ren_oth_designers|}}}{{{ren_qty_surveyor|}}}{{{ren_contractor|}}}{{{ren_awards|}}}|Renovating team}}&lt;br /&gt;
&lt;br /&gt;
| rowclass77 = note&lt;br /&gt;
| label77   = Architect(s)&lt;br /&gt;
|  data77   = {{{ren_architect|}}}&lt;br /&gt;
&lt;br /&gt;
| label78   = Renovating firm&lt;br /&gt;
|  data78   = {{{ren_firm|}}}&lt;br /&gt;
&lt;br /&gt;
| label79   = Engineer&lt;br /&gt;
|  data79   = {{{ren_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label80   = Structural engineer&lt;br /&gt;
|  data80   = {{{ren_str_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label81   = Services engineer&lt;br /&gt;
|  data81   = {{{ren_serv_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label82   = Civil engineer&lt;br /&gt;
|  data82   = {{{ren_civ_engineer|}}}&lt;br /&gt;
&lt;br /&gt;
| label83   = Other designers&lt;br /&gt;
|  data83   = {{{ren_oth_designers|}}}&lt;br /&gt;
&lt;br /&gt;
| label84   = Quantity surveyor&lt;br /&gt;
|  data84   = {{{ren_qty_surveyor|}}}&lt;br /&gt;
&lt;br /&gt;
| label85   = Main contractor&lt;br /&gt;
|  data85   = {{{ren_contractor|}}}&lt;br /&gt;
&lt;br /&gt;
| rowclass86 = note&lt;br /&gt;
| label86   = Awards and prizes&lt;br /&gt;
|  data86   = {{{ren_awards|}}}&lt;br /&gt;
&lt;br /&gt;
| header87  = {{#if:{{{seating_type|}}}{{{capacity|{{{seating_capacity|}}}}}}{{{number_of_stores|}}}{{{number_of_anchors|}}}{{{unit_count|}}}{{{number_of_units|}}}{{{number_of_rooms|}}}{{{room_count|}}}{{{rooms|}}}{{{number_of_suites|}}}{{{suite_count|}}}{{{suites|}}}{{{number_of_restaurants|}}}{{{number_of_bars|}}}{{{facilities|}}}{{{parking|}}}{{{public_transit|}}}|Other information}}&lt;br /&gt;
&lt;br /&gt;
| label88   = Seating type&lt;br /&gt;
|  data88   = {{{seating_type|}}}&lt;br /&gt;
&lt;br /&gt;
| label89   = Seating capacity&lt;br /&gt;
|  data89   = {{{capacity|{{{seating_capacity|}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label90   = Number of stores&lt;br /&gt;
|  data90   = {{{number_of_stores|}}}&lt;br /&gt;
&lt;br /&gt;
| label91   = Number of anchors&lt;br /&gt;
|  data91   = {{{number_of_anchors|}}}&lt;br /&gt;
&lt;br /&gt;
| label92   = Number of {{#if:{{{unit_count|}}}{{{number_of_units|}}}|units|rooms}}&lt;br /&gt;
|  data92   = {{if empty|{{{unit_count|}}}|{{{number_of_units|}}}|{{{number_of_rooms|}}}|{{{room_count|}}}|{{{rooms|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label93   = Number of suites&lt;br /&gt;
|  data93   = {{if empty|{{{number_of_suites|}}}|{{{suite_count|}}}|{{{suites|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label94   = Number of restaurants&lt;br /&gt;
|  data94   = {{{number_of_restaurants|}}}&lt;br /&gt;
&lt;br /&gt;
| label95   = Number of bars&lt;br /&gt;
|  data95   = {{{number_of_bars|}}}&lt;br /&gt;
&lt;br /&gt;
| label96   = Facilities&lt;br /&gt;
|  data96   = {{{facilities|}}}&lt;br /&gt;
&lt;br /&gt;
| label97   = Parking&lt;br /&gt;
|  data97   = {{{parking|}}}&lt;br /&gt;
&lt;br /&gt;
| label98   = Public transit access&lt;br /&gt;
|  data98   = {{{public_transit|}}}&lt;br /&gt;
&lt;br /&gt;
| header99  = {{#if:{{{website|}}}|Website}}&lt;br /&gt;
&lt;br /&gt;
|  data100   = {{{website|}}}&lt;br /&gt;
&lt;br /&gt;
| header101  = {{{nrhp|{{{embedded|{{{module|}}}}}}}}}&lt;br /&gt;
&lt;br /&gt;
| header102 = {{#if:{{{references|}}}|References}}&lt;br /&gt;
| data103   = {{{references|}}}&lt;br /&gt;
&lt;br /&gt;
| belowstyle = {{{belowstyle|}}}&lt;br /&gt;
| below     = {{{footnotes|}}}&lt;br /&gt;
}}&amp;lt;!-- end of infobox&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox building with unsupported parameters|_VALUE_{{PAGENAME}}]]}}|preview = Page using [[Template:Infobox building]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y&lt;br /&gt;
| address | affiliation | alt | alternate_name | alternate_names | altitude | antenna_spire | architect | architectural | architectural_style | architecture_firm | awards | belowstyle | building_name | building_type | canceled | cancelled | capacity | caption | chain | circumference | civil_engineer | classification | client | closing_date | completion_date | construction_start_date | construction_stop_date | coordinates | cost | current_tenants | date_demolished | demolished_date | demolition_date | designations | destroyed | destruction_date | developer | diameter | elevator_count | embedded | engineer | est_completion | etymology | facilities | floor_area | floor_count | floors | footnotes | former_name | former_names | governing_body | grid_name | grid_position | years_built | groundbreaking_date | grounds_area | height | highest_end | highest_next | highest_prev | highest_reflabel | highest_region | highest_start | hotel_chain | hotel_name | image | image_alt | image_caption | image_map | image_size | image_upright | image_width | inauguration_date | known_for | landlord | location | location_city | location_country | location_town | logo | logo_alt | logo_caption | logo_size | logo_upright | logo_width | main_contractor | main_contractors | management | map_caption | map_dot_label | map_dot_mark | map_size | map_type | material | module | name | namesake | native_building_name | native_name | native_name_lang | nrhp | number_of_anchors | number_of_bars | number_of_restaurants | number_of_rooms | number_of_stores | number_of_suites | number_of_units | observatory | opened | opened_date | opening | opening_date | operator | other_designers | other_dimensions | owner | parking | public_transit | pushpin_label | pushpin_map | pushpin_map_alt | pushpin_map_caption | pushpin_mapsize | pushpin_relief | qid | quantity_surveyor | references | relief | relocated_date | ren_architect | ren_awards | ren_civ_engineer | ren_contractor | ren_cost | ren_engineer | ren_firm | ren_oth_designers | ren_qty_surveyor | ren_serv_engineer | ren_str_engineer | renovation_date | roof | room_count | rooms | seating_capacity | seating_type | services_engineer | size | start_date | status | stop_date | structural_engineer | structural_system | style | suite_count | suites | tip | top_floor | topped_out | topped_out_date | unit_count | website | weight | embed | map_alt | mapframe | mapframe-caption | mapframe-custom | mapframe-id | mapframe-coord | mapframe-wikidata | mapframe-point | mapframe-shape | mapframe-line | mapframe-frame-width | mapframe-frame-height | mapframe-shape-fill | mapframe-shape-fill-opacity | mapframe-stroke-color | mapframe-stroke-colour | mapframe-stroke-width | mapframe-marker | mapframe-marker-color | mapframe-marker-colour | mapframe-geomask | mapframe-geomask-stroke-color | mapframe-geomask-stroke-colour | mapframe-geomask-stroke-width | mapframe-geomask-fill | mapframe-geomask-fill-opacity | mapframe-zoom | mapframe-length_km | mapframe-length_mi | mapframe-area_km2 | mapframe-area_mi2 | mapframe-frame-coordinates | mapframe-frame-coord | mapframe-switcher | mapframe-height | mapframe-width }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{main other|1={{#if:{{{topped_out|}}}|[[Category:Pages using infobox building with topped out]]}}{{#if:{{{canceled|}}}{{{cancelled|}}}|[[Category:Pages using infobox building with cancelled]]}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{both|{{{height|}}}|{{{architectural|}}}{{{tip|}}}{{{antenna_spire|}}}{{{roof|}}}{{{top_floor|}}}{{{observatory|}}}}}|[[Category:Pages using infobox building with parameter errors]]}} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Country_abbreviation&amp;diff=2174</id>
		<title>Template:Country abbreviation</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Country_abbreviation&amp;diff=2174"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:ISO 3166 code]]&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Plain_text&amp;diff=2172</id>
		<title>Template:Plain text</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Plain_text&amp;diff=2172"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{pp-template|small=yes}}&amp;lt;/noinclude&amp;gt;{{#invoke:Plain text|main|{{{1|}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:ISO_3166_code&amp;diff=2170</id>
		<title>Template:ISO 3166 code</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:ISO_3166_code&amp;diff=2170"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{safesubst&amp;lt;noinclude/&amp;gt;:#invoke:ISO 3166|code|{{{1}}}|{{{2|}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content={{ISO 3166 conversion template doc}}}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:If_then_show&amp;diff=2168</id>
		<title>Template:If then show</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:If_then_show&amp;diff=2168"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{1|}}}|{{{3|}}}{{{1|}}}{{{4|}}}|{{{2|}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Is_infobox_in_lead&amp;diff=2166</id>
		<title>Module:Is infobox in lead</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Is_infobox_in_lead&amp;diff=2166"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main (frame)&lt;br /&gt;
	return p._main (frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main (searchString)&lt;br /&gt;
	local content = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	local offset = string.find(content, &amp;quot;==&amp;quot;, 1 , true)&lt;br /&gt;
	if offset then&lt;br /&gt;
		local lead = string.sub(content, 1, offset-1)&lt;br /&gt;
		if (string.find(lead, searchString)) then&lt;br /&gt;
			lead = lead&lt;br /&gt;
				:gsub( &amp;quot;{{%s-[Ii]nfobox%s-mapframe&amp;quot;, &amp;quot;&amp;quot;) --don&#039;t check for infobox mapframe&lt;br /&gt;
				:gsub( &amp;quot;{{%s-[Ii]nfobo[^}]-%|%s-embed%s-=%s-yes&amp;quot;, &amp;quot;&amp;quot;) --don&#039;t check for embeded infoboxes&lt;br /&gt;
				:gsub( &amp;quot;{{%s-[Ii]nfobo[^}]-%|%s-child%s-=%s-yes&amp;quot;, &amp;quot;&amp;quot;) --don&#039;t check for child infoboxes&lt;br /&gt;
			local iter = string.gmatch(lead, &amp;quot;{{%s-[Ii]nfobox&amp;quot;)&lt;br /&gt;
			iter()&lt;br /&gt;
			if not iter() then --if able to find two infoboxes in the lead, then don&#039;t return true&lt;br /&gt;
				local iter2 = string.gmatch(content, searchString)&lt;br /&gt;
				iter2()&lt;br /&gt;
				if not iter2() then --if able to find two of the specific infobox in the article, then don&#039;t return true&lt;br /&gt;
					return true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:URL&amp;diff=2164</id>
		<title>Module:URL</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:URL&amp;diff=2164"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{URL}}&lt;br /&gt;
--&lt;br /&gt;
-- See unit tests at [[Module:URL/testcases]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
local function safeUri(s)&lt;br /&gt;
	local success, uri = pcall(function()&lt;br /&gt;
		return mw.uri.new(s)&lt;br /&gt;
	end)&lt;br /&gt;
	if success then&lt;br /&gt;
		return uri&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractUrl(args)&lt;br /&gt;
	for name, val in pairs(args) do&lt;br /&gt;
		if name ~= 2 and name ~= &amp;quot;msg&amp;quot; then&lt;br /&gt;
			local url = name .. &amp;quot;=&amp;quot; .. val;&lt;br /&gt;
			url = mw.ustring.gsub(url, &#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&#039;, &#039;http%1://%3&#039;)&lt;br /&gt;
			local uri = safeUri(url);&lt;br /&gt;
			if uri and uri.host then&lt;br /&gt;
				return url&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._url(url, text, msg)&lt;br /&gt;
	url = mw.text.trim(url or &#039;&#039;)&lt;br /&gt;
	text = mw.text.trim(text or &#039;&#039;)&lt;br /&gt;
	local nomsg = (msg or &#039;&#039;):sub(1,1):lower() == &amp;quot;n&amp;quot; or msg == &#039;false&#039; -- boolean: true if msg is &amp;quot;false&amp;quot; or starts with n or N&lt;br /&gt;
&lt;br /&gt;
	if url == &#039;&#039; then&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			if nomsg then&lt;br /&gt;
				return nil&lt;br /&gt;
			else&lt;br /&gt;
				return mw.getCurrentFrame():expandTemplate{ title = &#039;tlx&#039;, args = { &#039;URL&#039;, &amp;quot;&#039;&#039;example.com&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;optional display text&#039;&#039;&amp;quot; } }&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;%s&#039;, function(s) return mw.uri.encode(s, &#039;PATH&#039;) end)&lt;br /&gt;
&lt;br /&gt;
	-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;#$&#039;, &#039;&#039;)&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;%?$&#039;, &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
	-- If it&#039;s an HTTP[S] URL without the double slash, fix it.&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&#039;, &#039;http%1://%3&#039;)&lt;br /&gt;
&lt;br /&gt;
	local uri = safeUri(url)&lt;br /&gt;
&lt;br /&gt;
	-- Handle URL&#039;s without a protocol and URL&#039;s that are protocol-relative, &lt;br /&gt;
	-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo&lt;br /&gt;
	if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= &#039;//&#039; then&lt;br /&gt;
		url = &#039;http://&#039; .. url&lt;br /&gt;
		uri = safeUri(url)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if text == &#039;&#039; then&lt;br /&gt;
		if uri then&lt;br /&gt;
			if uri.path == &#039;/&#039; then uri.path = &#039;&#039; end&lt;br /&gt;
&lt;br /&gt;
			local port = &#039;&#039;&lt;br /&gt;
			if uri.port then port = &#039;:&#039; .. uri.port end&lt;br /&gt;
&lt;br /&gt;
			text = mw.ustring.lower(uri.host or &#039;&#039;) .. port .. (uri.relativePath or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
			-- Add &amp;lt;wbr&amp;gt; before _/.-# sequences&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(/+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)      -- This entry MUST be the first. &amp;quot;&amp;lt;wbr/&amp;gt;&amp;quot; has a &amp;quot;/&amp;quot; in it, you know.&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%.+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			-- text = mw.ustring.gsub(text,&amp;quot;(%-+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;) 	-- DISABLED for now&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%#+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(_+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
		else -- URL is badly-formed, so just display whatever was passed in&lt;br /&gt;
			text = url&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.format(&#039;&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&#039;, url, text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The main entry point for calling from Template:URL.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1]&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2] or &#039;&#039;&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &#039;&#039;&lt;br /&gt;
	url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or &#039;&#039;&lt;br /&gt;
	return p._url(url, text, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The entry point for calling from the forked Template:URL2.&lt;br /&gt;
This function returns no message by default.&lt;br /&gt;
It strips out wiki-link markup, html tags, and everything after a space.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url2(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1]&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2] or &#039;&#039;&lt;br /&gt;
	-- default to no message&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &#039;no&#039;&lt;br /&gt;
	url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or &#039;&#039;&lt;br /&gt;
	-- if the url came from a Wikidata call, it might have a pen icon appended&lt;br /&gt;
	-- we want to keep that and add it back at the end.&lt;br /&gt;
	local u1, penicon = mw.ustring.match( url, &amp;quot;(.*)(&amp;amp;nbsp;&amp;lt;span class=&#039;penicon.*)&amp;quot; )&lt;br /&gt;
	if penicon then url = u1 end&lt;br /&gt;
	-- strip out html tags and [ ] from url&lt;br /&gt;
	url = (url or &#039;&#039;):gsub(&amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;[%[%]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	-- truncate anything after a space&lt;br /&gt;
	url = url:gsub(&amp;quot;%%20&amp;quot;, &amp;quot; &amp;quot;):gsub(&amp;quot; .*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return (p._url(url, text, msg) or &amp;quot;&amp;quot;) .. (penicon or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Module:Official_website&amp;diff=2162</id>
		<title>Module:Official website</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Module:Official_website&amp;diff=2162"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&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;
&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()&lt;br /&gt;
	-- Get objects for all official sites on Wikidata.&lt;br /&gt;
	local websites = quickPcall(function ()&lt;br /&gt;
		return mw.wikibase.getAllStatements(mw.wikibase.getEntityIdForCurrentPage(), &#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;
		local qid = mw.wikibase.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 = mw.wikibase.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()&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;
	}&lt;br /&gt;
	return formattedUrl .. renderTrackingCategory(url, wikidataurl)&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;
return p&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:URL&amp;diff=2160</id>
		<title>Template:URL</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:URL&amp;diff=2160"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:URL|url}}&amp;lt;/includeonly&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using URL template with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:URL]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y | 1 | 2 }}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Official_website&amp;diff=2158</id>
		<title>Template:Official website</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Official_website&amp;diff=2158"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Official website|main}}{{#invoke:Check for unknown parameters|check|showblankpositional=1|unknown={{main other|1=[[Category:Pages using Official website with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Official website]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|1|2|URL|url|name}}&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Cn&amp;diff=2156</id>
		<title>Template:Cn</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Cn&amp;diff=2156"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Citation needed]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Break&amp;diff=2154</id>
		<title>Template:Break</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Break&amp;diff=2154"/>
		<updated>2025-08-16T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:string|rep|&amp;lt;br/&amp;gt;|{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#iferror:{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#expr:1*{{{1|1}}}}}|1}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
	<entry>
		<id>https://mediawiki3d.org/index.php?title=Template:Dead_link&amp;diff=2152</id>
		<title>Template:Dead link</title>
		<link rel="alternate" type="text/html" href="https://mediawiki3d.org/index.php?title=Template:Dead_link&amp;diff=2152"/>
		<updated>2025-08-16T12:13:05Z</updated>

		<summary type="html">&lt;p&gt;Admin3d: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
&amp;lt;!--{{Dead link}} begin--&amp;gt;{{Fix&lt;br /&gt;
| special  = &amp;lt;sup class=&amp;quot;noprint Inline-Template&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if: {{{url|}}}|[https://web.archive.org/web/*/{{{url|}}} &amp;lt;span title=&amp;quot;{{{title|}}}{{#if:{{{date|}}}|&amp;amp;nbsp;tagged {{{date}}}}}&amp;quot;&amp;gt;dead link&amp;lt;/span&amp;gt;]|[[Wikipedia:Link rot|&amp;lt;span title=&amp;quot;{{{title|}}}{{#if:{{{date|}}}|&amp;amp;nbsp;Dead link tagged {{{date}}}}}&amp;quot;&amp;gt;{{#if:{{{fix-attempted|}}}|permanent dead link|dead link}}&amp;lt;/span&amp;gt;]]}}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| date     = {{{date|}}}&lt;br /&gt;
| cat      = {{main other|[[Category:All articles with dead external links]]}}&lt;br /&gt;
| cat-date = Category:Articles with dead external links&lt;br /&gt;
| cat2     = {{main other|{{#if:{{{fix-attempted|}}}|[[Category:Articles with permanently dead external links]]}}}}&lt;br /&gt;
}}&amp;lt;!--{{Dead link}} end--&amp;gt;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE; INTERWIKIS GO TO WIKIDATA, THANK YOU! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin3d</name></author>
	</entry>
</feed>