<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rpiwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>RPI Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://rpiwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php/Special:Contributions/Admin"/>
	<updated>2026-06-30T14:01:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Main_Page&amp;diff=1122</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Main_Page&amp;diff=1122"/>
		<updated>2026-06-29T22:03:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Attention&#039;&#039;&#039;&#039;&#039;: The RPI Wiki is under construction. Considerable parts of it may be unmade, incomplete, or not fit for public viewing. Do not treat any content as final.&lt;br /&gt;
&lt;br /&gt;
Welcome to the &#039;&#039;&#039;RPI Wiki&#039;&#039;&#039;, an in-progress project to catalog [[Rensselaer Polytechnic Institute]]&#039;s rich history and provide lasting resources for new and returning RPI students.&lt;br /&gt;
&lt;br /&gt;
RPI is the oldest engineering school in the Western Hemisphere, with 200 years of history. Its student life has evolved immensely in that time, and throughout its history it has been the &#039;&#039;alma mater&#039;&#039; of countless leading engineers and a flashpoint for political activism and student rights. It has the oldest continously-existing student government in the United States in the [[Rensselaer Union]], and its model for polytechnic education informed the American engineering schools that came after it. &lt;br /&gt;
&lt;br /&gt;
The RPI Wiki is a project intending to write this history down, from the Institute&#039;s proudest moments to its darkest, while also providing a resource for students akin to the various &amp;quot;Student Handbooks&amp;quot; or &amp;quot;Student Guides&amp;quot; of prior years. In this way, the RPI Wiki can serve as a resource to students, faculty, alumni, and prospective students, and make our Institute&#039;s history last forever.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:inherit; display:flex; flex-direction:row; justify-content:center; align-items:stretch; gap:4px;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;color1&amp;quot;&amp;gt; Featured campus articles:&lt;br /&gt;
*[[Rensselaer Polytechnic Institute]]&lt;br /&gt;
*[[President of the Institute]]&lt;br /&gt;
*[[Board of Trustees]]&lt;br /&gt;
*[[Big Red Freakout]]&lt;br /&gt;
*[[Freshman Hill]]&lt;br /&gt;
** [[Freshman Five]]&lt;br /&gt;
*The [[Tunnels]]&lt;br /&gt;
*[[Rensselaer Drop Squad]]&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#fccffc; border-style: solid; border-color:#ec70ff; padding:4px 10px 4px; margin-top: 4px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; flex-grow:1;&amp;quot;&amp;gt; Featured Union history articles:&lt;br /&gt;
* {{symbol|gm hat red white.png}} [[Grand Marshal]]&lt;br /&gt;
* {{symbol|pu hat red white.png}} [[President of the Union]]&lt;br /&gt;
* [[Grand Marshal Week]]&lt;br /&gt;
* [[Student Senate]]&lt;br /&gt;
* [[Executive Board]]&lt;br /&gt;
* [[Judicial Board]]&lt;br /&gt;
* [[Graduate Council]]&lt;br /&gt;
* [[Undergraduate Council]]&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#ffca75; border-style: solid; border-color:#de8900; padding:4px 10px 4px; margin-top: 4px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; flex-grow:1;&amp;quot;&amp;gt; Check out some of our student guides!&lt;br /&gt;
* [[Registration]]&lt;br /&gt;
* [[The Student Discount]]&lt;br /&gt;
* [[Accessing Syllabi via Heliocampus]]&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#abffab; border-style: solid; border-color:#30ff30; padding:4px 10px 4px; margin-top: 4px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;&amp;quot;&amp;gt; The RPI Wiki is a venture of the Rensselaer Union Student Government, and is maintained by the Student Senate&#039;s [[Web Technologies Group]] and the Wiki Subcommittee of its [[Rules and Administration Committee]]. Please contact [[Vice Grand Marshal for Internal Affairs]] Griffin Oliver (oliveg2@rpi.edu) or [[Web Technologies Group|WTG]] Chair Aaron Niyazov (niyaza@rpi.edu) for questions, comments, or concerns.&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;The RPI Wiki is a strictly student-run and nonprofit project, and is not affiliated with the Institute or its administration in any way. The Wiki may use Institute logos or insignia in a way inconsistent with official RPI branding guidelines. This is compliant with fair use doctrine and it supports the Wiki&#039;s aim to research, report on, and comment on RPI as an institution and its history.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=The_Student_Discount&amp;diff=1121</id>
		<title>The Student Discount</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=The_Student_Discount&amp;diff=1121"/>
		<updated>2026-06-29T22:00:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many companies offer discounts to students on a variety of products and services. This article lists many useful discounts you can access with your rpi.edu email address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Licensing Tool ==&lt;br /&gt;
The following products are available via RPI’s [https://itssc.rpi.edu/hc/en-us/articles/360001212511-Available-Licensed-Software Software Licensing Tool].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| ABB RobotStudio || Free || https://itssc.rpi.edu/hc/en-us/articles/10025986244365&lt;br /&gt;
|-&lt;br /&gt;
| Adobe Creative Cloud || $110 from $779.88 (87%) || https://itssc.rpi.edu/hc/en-us/articles/8805056376973-Adobe-Creative-Cloud-for-Students&lt;br /&gt;
|-&lt;br /&gt;
| Altair CAE Suite || Free || https://itssc.rpi.edu/hc/en-us/articles/360018934571&lt;br /&gt;
|-&lt;br /&gt;
| Aspen || Free || https://itssc.rpi.edu/hc/en-us/articles/360031038812&lt;br /&gt;
|-&lt;br /&gt;
| Bentley || Free || https://itssc.rpi.edu/hc/en-us/articles/360019958351&lt;br /&gt;
|-&lt;br /&gt;
| Electron_Guns_Optics || Free || https://itssc.rpi.edu/hc/en-us/articles/360018686392&lt;br /&gt;
|-&lt;br /&gt;
| GeoStudio || Free || https://itssc.rpi.edu/hc/en-us/articles/360018687412&lt;br /&gt;
|-&lt;br /&gt;
| LabView || Free || https://itssc.rpi.edu/hc/en-us/articles/360014415652&lt;br /&gt;
|-&lt;br /&gt;
| LoggerPro || Free || https://itssc.rpi.edu/hc/en-us/articles/360019617312&lt;br /&gt;
|-&lt;br /&gt;
| MapInfo || Free || https://itssc.rpi.edu/hc/en-us/articles/360019031551&lt;br /&gt;
|-&lt;br /&gt;
| Maple || Free || https://itssc.rpi.edu/hc/en-us/articles/360019037311&lt;br /&gt;
|-&lt;br /&gt;
| Mathematica || Free || https://itssc.rpi.edu/hc/en-us/articles/360018784392&lt;br /&gt;
|-&lt;br /&gt;
| MATLAB || Free || https://itssc.rpi.edu/hc/en-us/articles/360004815472&lt;br /&gt;
|-&lt;br /&gt;
| Minitab || Free || https://itssc.rpi.edu/hc/en-us/articles/360008816352&lt;br /&gt;
|-&lt;br /&gt;
| Pasco || Free || https://itssc.rpi.edu/hc/en-us/articles/360015340392&lt;br /&gt;
|-&lt;br /&gt;
| SAS JMP || Free || https://itssc.rpi.edu/hc/en-us/articles/9719363139853-SAS-JMP&lt;br /&gt;
|-&lt;br /&gt;
| SecureCRT || Free || https://itssc.rpi.edu/hc/en-us/articles/360004896671&lt;br /&gt;
|-&lt;br /&gt;
| Siemens NX || Free || https://itssc.rpi.edu/hc/en-us/articles/15868428572045&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other RPI Deals ==&lt;br /&gt;
The following products are available through RPI via various means.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| New York Times Subscription || Free || https://library.rpi.edu/announcements/new-york-times-site-license-through-rpi-libraries&lt;br /&gt;
|-&lt;br /&gt;
|Bloomberg ||Free || https://library.rpi.edu/announcements/claim-your-bloombergcom-account-courtesy-rpi-libraries&lt;br /&gt;
|-&lt;br /&gt;
| CDTA Buses || Free || https://www.cdta.org/routes-and-schedules&lt;br /&gt;
Use your RPI ID when boarding&lt;br /&gt;
|-&lt;br /&gt;
| RPI Hockey Tickets || $6 from $17 (65%) || https://rpiathletics.com/sports/2010/7/9/GEN_0709104100.aspx&lt;br /&gt;
Log in with your RCSID or bring your RPI ID to the box office&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unaffiliated ==&lt;br /&gt;
The following products offer general discounts to students.&lt;br /&gt;
&lt;br /&gt;
=== Engineering Software ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Altium || PCB design || Free || https://www.altium.com/education/students&lt;br /&gt;
|-&lt;br /&gt;
| ANSYS || Engineering simulation || Free || https://www.ansys.com/academic/students&lt;br /&gt;
|-&lt;br /&gt;
| Autodesk Suite || CAD, CAM, design, modeling || Free || https://www.autodesk.com/education/edu-software/overview&lt;br /&gt;
|-&lt;br /&gt;
| Mathcad || Engineering mathematics || $69 from $859 (92%) || https://www.ansys.com/academic/students&lt;br /&gt;
|-&lt;br /&gt;
| Onshape || CAD || Free || https://www.onshape.com/en/education/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Computer Science and Website Building ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Axure RP || UX Designer || Free || https://ulysses.app/students/&lt;br /&gt;
|-&lt;br /&gt;
| Bootstrap Studio || IDE || Free || https://www.ansys.com/academic/students&lt;br /&gt;
|-&lt;br /&gt;
| Framer || Website design, hosting, domains || Free || https://www.framer.com/education/students/&lt;br /&gt;
|-&lt;br /&gt;
| Github Student Developer Pack || AI, website domains, Microsoft Azure, Github Pro, and others || Free || https://education.github.com/pack&lt;br /&gt;
|-&lt;br /&gt;
| JetBrains || IDEs, includes PyCharm, CLion, and others || Free || https://www.jetbrains.com/academy/student-pack/&lt;br /&gt;
|-&lt;br /&gt;
| Kiro || IDE, AI || Free&amp;lt;br&amp;gt;1000 credits per month from 50 || https://kiro.dev/students/&lt;br /&gt;
|-&lt;br /&gt;
| Sketch || Website design || Free || https://www.sketch.com/education/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Productivity Tools and AI ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Evernote || Notes || Starter: Free&amp;lt;br&amp;gt;Advanced: 40% off || https://evernote.com/unidays&lt;br /&gt;
|-&lt;br /&gt;
| LucidChart || Charts and diagrams || Free || https://www.lucidchart.com/pages/usecase/education&lt;br /&gt;
|-&lt;br /&gt;
| Notion || Notes || Free || https://www.notion.com/help/notion-for-education&lt;br /&gt;
|-&lt;br /&gt;
| Perplexity || AI || Monthly: $10 from $20 (50%)&amp;lt;br&amp;gt;Annually: $108 from $204 (47%) || https://www.perplexity.ai/students&lt;br /&gt;
|-&lt;br /&gt;
| Ulysses || Notes || Semiannually: $10.99 from $20 (45%) || https://ulysses.app/students/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entertainment and Streaming Services ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Apple Music || Music streaming || $5.99 from $10.99 (45%), one month free || https://offers.applemusic.apple/student-offer&lt;br /&gt;
|-&lt;br /&gt;
| HBO Max || Streaming || $5.49 from $10.99 (50%) || https://www.hbomax.com/student&lt;br /&gt;
|-&lt;br /&gt;
| Peacock || Streaming || $5.99 from $10.99 (45%) || https://www.peacocktv.com/student&lt;br /&gt;
|-&lt;br /&gt;
| Spotify || Music streaming || $6.99 from $12.99 (46%), one month free&amp;lt;br&amp;gt;Also comes with Hulu with ads || https://support.spotify.com/us/article/premium-student/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local Businesses ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Business !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Kebab Zone || Restaurant || 15% || 126 College Ave&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Amazon Prime || Shopping || 6 months free, $7.49 from $14.99 after (50%) || https://www.amazon.com/Amazon-Student/b?ie=UTF8&amp;amp;node=668781011&lt;br /&gt;
|-&lt;br /&gt;
| Amtrak || Choo choos || 15% || https://www.amtrak.com/student-discounts&lt;br /&gt;
|-&lt;br /&gt;
| Avid ProTools || Digital audio workstation || Studio: $99 per year from $299 (67%)&amp;lt;br&amp;gt;Ultimate: $299 per year from $599 (50%) || https://www.avid.com/pro-tools/students&lt;br /&gt;
|-&lt;br /&gt;
| Doordash || Food delivery || Monthly: $4.99 from $9.99 (50%) || https://help.doordash.com/en-us/consumers/article/dashpass-for-students&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=The_Student_Discount&amp;diff=1120</id>
		<title>The Student Discount</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=The_Student_Discount&amp;diff=1120"/>
		<updated>2026-06-29T21:58:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: Add bloomberg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many companies offer discounts to students on a variety of products and services. This article lists many useful discounts you can access with your rpi.edu email address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Licensing Tool ==&lt;br /&gt;
The following products are available via RPI’s [https://itssc.rpi.edu/hc/en-us/articles/360001212511-Available-Licensed-Software Software Licensing Tool].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| ABB RobotStudio || Free || https://itssc.rpi.edu/hc/en-us/articles/10025986244365&lt;br /&gt;
|-&lt;br /&gt;
| Adobe Creative Cloud || $110 from $779.88 (87%) || https://itssc.rpi.edu/hc/en-us/articles/8805056376973-Adobe-Creative-Cloud-for-Students&lt;br /&gt;
|-&lt;br /&gt;
| Altair CAE Suite || Free || https://itssc.rpi.edu/hc/en-us/articles/360018934571&lt;br /&gt;
|-&lt;br /&gt;
| Aspen || Free || https://itssc.rpi.edu/hc/en-us/articles/360031038812&lt;br /&gt;
|-&lt;br /&gt;
| Bentley || Free || https://itssc.rpi.edu/hc/en-us/articles/360019958351&lt;br /&gt;
|-&lt;br /&gt;
| Electron_Guns_Optics || Free || https://itssc.rpi.edu/hc/en-us/articles/360018686392&lt;br /&gt;
|-&lt;br /&gt;
| GeoStudio || Free || https://itssc.rpi.edu/hc/en-us/articles/360018687412&lt;br /&gt;
|-&lt;br /&gt;
| LabView || Free || https://itssc.rpi.edu/hc/en-us/articles/360014415652&lt;br /&gt;
|-&lt;br /&gt;
| LoggerPro || Free || https://itssc.rpi.edu/hc/en-us/articles/360019617312&lt;br /&gt;
|-&lt;br /&gt;
| MapInfo || Free || https://itssc.rpi.edu/hc/en-us/articles/360019031551&lt;br /&gt;
|-&lt;br /&gt;
| Maple || Free || https://itssc.rpi.edu/hc/en-us/articles/360019037311&lt;br /&gt;
|-&lt;br /&gt;
| Mathematica || Free || https://itssc.rpi.edu/hc/en-us/articles/360018784392&lt;br /&gt;
|-&lt;br /&gt;
| MATLAB || Free || https://itssc.rpi.edu/hc/en-us/articles/360004815472&lt;br /&gt;
|-&lt;br /&gt;
| Minitab || Free || https://itssc.rpi.edu/hc/en-us/articles/360008816352&lt;br /&gt;
|-&lt;br /&gt;
| Pasco || Free || https://itssc.rpi.edu/hc/en-us/articles/360015340392&lt;br /&gt;
|-&lt;br /&gt;
| SAS JMP || Free || https://itssc.rpi.edu/hc/en-us/articles/9719363139853-SAS-JMP&lt;br /&gt;
|-&lt;br /&gt;
| SecureCRT || Free || https://itssc.rpi.edu/hc/en-us/articles/360004896671&lt;br /&gt;
|-&lt;br /&gt;
| Siemens NX || Free || https://itssc.rpi.edu/hc/en-us/articles/15868428572045&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other RPI Deals ==&lt;br /&gt;
The following products are available through RPI via various means.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| New York Times Subscription || Free || https://library.rpi.edu/announcements/new-york-times-site-license-through-rpi-libraries&lt;br /&gt;
|-&lt;br /&gt;
|Bloomberg ||Free || https://www.bloomberg.com/&lt;br /&gt;
Sign in with your RCS-login&lt;br /&gt;
|-&lt;br /&gt;
| CDTA Buses || Free || https://www.cdta.org/routes-and-schedules&lt;br /&gt;
Use your RPI ID when boarding&lt;br /&gt;
|-&lt;br /&gt;
| RPI Hockey Tickets || $6 from $17 (65%) || https://rpiathletics.com/sports/2010/7/9/GEN_0709104100.aspx&lt;br /&gt;
Log in with your RCSID or bring your RPI ID to the box office&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unaffiliated ==&lt;br /&gt;
The following products offer general discounts to students.&lt;br /&gt;
&lt;br /&gt;
=== Engineering Software ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Altium || PCB design || Free || https://www.altium.com/education/students&lt;br /&gt;
|-&lt;br /&gt;
| ANSYS || Engineering simulation || Free || https://www.ansys.com/academic/students&lt;br /&gt;
|-&lt;br /&gt;
| Autodesk Suite || CAD, CAM, design, modeling || Free || https://www.autodesk.com/education/edu-software/overview&lt;br /&gt;
|-&lt;br /&gt;
| Mathcad || Engineering mathematics || $69 from $859 (92%) || https://www.ansys.com/academic/students&lt;br /&gt;
|-&lt;br /&gt;
| Onshape || CAD || Free || https://www.onshape.com/en/education/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Computer Science and Website Building ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Axure RP || UX Designer || Free || https://ulysses.app/students/&lt;br /&gt;
|-&lt;br /&gt;
| Bootstrap Studio || IDE || Free || https://www.ansys.com/academic/students&lt;br /&gt;
|-&lt;br /&gt;
| Framer || Website design, hosting, domains || Free || https://www.framer.com/education/students/&lt;br /&gt;
|-&lt;br /&gt;
| Github Student Developer Pack || AI, website domains, Microsoft Azure, Github Pro, and others || Free || https://education.github.com/pack&lt;br /&gt;
|-&lt;br /&gt;
| JetBrains || IDEs, includes PyCharm, CLion, and others || Free || https://www.jetbrains.com/academy/student-pack/&lt;br /&gt;
|-&lt;br /&gt;
| Kiro || IDE, AI || Free&amp;lt;br&amp;gt;1000 credits per month from 50 || https://kiro.dev/students/&lt;br /&gt;
|-&lt;br /&gt;
| Sketch || Website design || Free || https://www.sketch.com/education/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Productivity Tools and AI ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Evernote || Notes || Starter: Free&amp;lt;br&amp;gt;Advanced: 40% off || https://evernote.com/unidays&lt;br /&gt;
|-&lt;br /&gt;
| LucidChart || Charts and diagrams || Free || https://www.lucidchart.com/pages/usecase/education&lt;br /&gt;
|-&lt;br /&gt;
| Notion || Notes || Free || https://www.notion.com/help/notion-for-education&lt;br /&gt;
|-&lt;br /&gt;
| Perplexity || AI || Monthly: $10 from $20 (50%)&amp;lt;br&amp;gt;Annually: $108 from $204 (47%) || https://www.perplexity.ai/students&lt;br /&gt;
|-&lt;br /&gt;
| Ulysses || Notes || Semiannually: $10.99 from $20 (45%) || https://ulysses.app/students/&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Entertainment and Streaming Services ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Apple Music || Music streaming || $5.99 from $10.99 (45%), one month free || https://offers.applemusic.apple/student-offer&lt;br /&gt;
|-&lt;br /&gt;
| HBO Max || Streaming || $5.49 from $10.99 (50%) || https://www.hbomax.com/student&lt;br /&gt;
|-&lt;br /&gt;
| Peacock || Streaming || $5.99 from $10.99 (45%) || https://www.peacocktv.com/student&lt;br /&gt;
|-&lt;br /&gt;
| Spotify || Music streaming || $6.99 from $12.99 (46%), one month free&amp;lt;br&amp;gt;Also comes with Hulu with ads || https://support.spotify.com/us/article/premium-student/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Local Businesses ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Business !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Kebab Zone || Restaurant || 15% || 126 College Ave&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Product !! Type !! Discount !! Availability&lt;br /&gt;
|-&lt;br /&gt;
| Amazon Prime || Shopping || 6 months free, $7.49 from $14.99 after (50%) || https://www.amazon.com/Amazon-Student/b?ie=UTF8&amp;amp;node=668781011&lt;br /&gt;
|-&lt;br /&gt;
| Amtrak || Choo choos || 15% || https://www.amtrak.com/student-discounts&lt;br /&gt;
|-&lt;br /&gt;
| Avid ProTools || Digital audio workstation || Studio: $99 per year from $299 (67%)&amp;lt;br&amp;gt;Ultimate: $299 per year from $599 (50%) || https://www.avid.com/pro-tools/students&lt;br /&gt;
|-&lt;br /&gt;
| Doordash || Food delivery || Monthly: $4.99 from $9.99 (50%) || https://help.doordash.com/en-us/consumers/article/dashpass-for-students&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Web_Technologies_Group&amp;diff=1119</id>
		<title>Web Technologies Group</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Web_Technologies_Group&amp;diff=1119"/>
		<updated>2026-06-29T21:42:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: Updated logo, corrected DotCIO reference, added RCOS relation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Senate Committee&lt;br /&gt;
|branch = [[Student Senate]]&lt;br /&gt;
|name = Web Technologies Group&lt;br /&gt;
|type = standing&lt;br /&gt;
|status = active&lt;br /&gt;
|formed = 2005?&lt;br /&gt;
|chair = Aaron Niyazov&lt;br /&gt;
|interests = Union and Institute technological infrastructure&lt;br /&gt;
|image = wtg_logo.png&lt;br /&gt;
|image_size = 200px&lt;br /&gt;
|interacts = Union Systems Administrators, Division of the Chief Information Officer, Rensselaer Center for Open Source&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Web Technologies Group&#039;&#039;&#039; (WTG or WebTech) is a standing committee of the [[Rensselaer Union Student Senate]] tasked with oversight over the Union&#039;s digital infrastructure and Union-led projects involving web infrastructure.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=File:Wtg_logo.png&amp;diff=1117</id>
		<title>File:Wtg logo.png</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=File:Wtg_logo.png&amp;diff=1117"/>
		<updated>2026-06-29T21:39:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module_talk:Navbar&amp;diff=199</id>
		<title>Module talk:Navbar</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module_talk:Navbar&amp;diff=199"/>
		<updated>2026-05-26T02:13:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template talk:Navbar]]&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from remote talk page}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template_talk:Navbar&amp;diff=197</id>
		<title>Template talk:Navbar</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template_talk:Navbar&amp;diff=197"/>
		<updated>2026-05-26T02:13:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{permprot}}&lt;br /&gt;
{{tfd end|date=2014 July 27|merge=Template:V|result=no consensus}}&lt;br /&gt;
{{tfd end|date=2017 March 5|merge=Template:V|more_merge= and [[Template:View]]|result=merge, assuming there are no technical problems}}&lt;br /&gt;
{{User:MiszaBot/config&lt;br /&gt;
| algo=old(180d)&lt;br /&gt;
| archive=Template talk:Navbar/Archive %(counter)d&lt;br /&gt;
| counter=4&lt;br /&gt;
| maxarchivesize=75K&lt;br /&gt;
| archiveheader={{Automatic archive navigator}}&lt;br /&gt;
| minthreadsleft=5&lt;br /&gt;
| minthreadstoarchive=2&lt;br /&gt;
}}&lt;br /&gt;
{{copied|from=Module:Navbar|from_oldid=780167786|to=:incubator:Module:Wp/nod/Navbar|to_diff=4243076}}&lt;br /&gt;
{{Archives|auto=yes|search=yes}}&lt;br /&gt;
{{Lua sidebar}}&lt;br /&gt;
&lt;br /&gt;
== Bug in move option ==&lt;br /&gt;
&lt;br /&gt;
Further to the section above, the move option does not work correctly when the template name includes a space - using {{nowrap|1={{tlx|view|Example template|m}}}} produces {{view|Example template|m}} note that the second link displays as &amp;quot;template&amp;lt;span title=&amp;quot;Move this template&amp;quot;&amp;gt;move&amp;lt;/span&amp;gt;&amp;quot; and the link goes to https://en.wikipedia.org/w/index.php?title=Special:Movepage&amp;amp;amp;target=Template:Example which is not what is intended - the link should display as &amp;quot;&amp;lt;span title=&amp;quot;Move this template&amp;quot;&amp;gt;move&amp;lt;/span&amp;gt;&amp;quot; and the link should be https://en.wikipedia.org/w/index.php?title=Special:Movepage&amp;amp;amp;target=Template:Example_template&lt;br /&gt;
&lt;br /&gt;
It makes no difference if the space is replaced by an underscore, nor if the first parameter is named - that is, {{tlx|view|Example template|m}}, {{tlx|view|Example_template|m}}, {{tlx|view|2=template=Example template|3=m}} and {{tlx|view|2=template=Example_template|3=m}} all yield identical results.&lt;br /&gt;
&lt;br /&gt;
However, if the space is replaced by a plus sign, as in {{tlx|view|Example+template|m}} the move link is now correct, but the view link is broken: {{view|Example+template|m}} It seems that there is no way to have both the view and move links correct. --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1f339; ([[User talk:Redrose64|talk]]) 12:20, 7 January 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
This bug is presumably in [[Module:Navbar]]. Curiously, [[Module talk:Navbar]] redirects here, but [[Template talk:View]] redirects to [[Template talk:VTE]]. --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1f339; ([[User talk:Redrose64|talk]]) 12:25, 7 January 2023 (UTC)&lt;br /&gt;
:Same with {{tl|v}}:&lt;br /&gt;
:{{tlx|v|Example template|m}}}} produces {{v|Example template|m}}. -[[User:DePiep|DePiep]] ([[User talk:DePiep|talk]]) 12:29, 7 January 2023 (UTC)&lt;br /&gt;
::Yes, so I&#039;ve set up some testcases at [[Template:Navbar/testcases#Demonstrating bug in move option]]. --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1f339; ([[User talk:Redrose64|talk]]) 13:20, 7 January 2023 (UTC)&lt;br /&gt;
:::So, for the time being remove from documentation, or add a heavy warning? [[User:DePiep|DePiep]] ([[User talk:DePiep|talk]]) 07:46, 8 January 2023 (UTC)&lt;br /&gt;
::::I highly doubt it&#039;s even in use, and the failure point is a small subset of potential template names, so I think &amp;quot;fix the issue&amp;quot; is preferable. That being said I, I haven&#039;t looked at it in too much detail but I suspect it has to do with how the module is creating the URLs for the links (much like how elink templates need to use {{t|urlencode}} to properly format URLs). [[User:Primefac|Primefac]] ([[User talk:Primefac|talk]]) 08:07, 8 January 2023 (UTC)&lt;br /&gt;
:::::I edited [[Module:Navbar/sandbox]] with what I suspect will fix the problem. I would want to think about the change much more, and test it, before updating the main module. One of my edit summaries says [[Module:Navbar/sandbox]] was the same as [[Module:Navbar]] before I started. That is not quite correct—the sandbox has &amp;lt;code&amp;gt;local cfg = mw.loadData(&#039;Module:Navbar/configuration/sandbox&#039;)&amp;lt;/code&amp;gt; whereas the main module omits &amp;lt;code&amp;gt;/sandbox&amp;lt;/code&amp;gt;. That should be fixed before updating. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 10:07, 8 January 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Custom css to display navigation templates on mobile? ==&lt;br /&gt;
&lt;br /&gt;
Is there some custom css I can add to force unhiding navigation templates on mobile? I&#039;m not concerned if they are ugly or affect the overall formatting of the articles they appear in. I just miss them. [[User:Folly Mox|Folly Mox]] ([[User talk:Folly Mox|talk]]) 12:47, 16 August 2023 (UTC)&lt;br /&gt;
:This is the page for nav&#039;&#039;bar&#039;&#039; (the v-t-e links) not nav&#039;&#039;box&#039;&#039;. Regardless of that, I don&#039;t think it&#039;s possible: the navbox HTML doesn&#039;t seem to be present in the HTML source for pages on mobile, so it&#039;s been suppressed by the MediaWiki software. --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1f339; ([[User talk:Redrose64|talk]]) 21:32, 16 August 2023 (UTC)&lt;br /&gt;
::Oops! Well, thanks for the info 😔 [[User:Folly Mox|Folly Mox]] ([[User talk:Folly Mox|talk]]) 22:16, 16 August 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Protected edit request on 10 October 2023 ==&lt;br /&gt;
&lt;br /&gt;
{{edit fully-protected|Module:Navbar|answered=yes}}&lt;br /&gt;
Please change the links to use [[Special:EditPage]] and [[Special:PageHistory]], as I have done [[Special:Diff/1179420038|here]]. We don&#039;t need to use the fullurl for those two links. [[User:SWinxy|SWinxy]] ([[User talk:SWinxy|talk]]) 00:55, 10 October 2023 (UTC)&lt;br /&gt;
: {{done}} [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 22:35, 10 October 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inaccessible links in navbar ==&lt;br /&gt;
Moved to [[Template talk:Navbox#Inaccessible links in navbar]]. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 02:05, 23 February 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Urgent: Please fix this template for printed content [[Module:Navbar/styles.css]]. ==&lt;br /&gt;
{{Moved from|Module talk:Navbar}}&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
Firstly, apologies for writing in English if this is not your first language (this is an automated message).&lt;br /&gt;
&lt;br /&gt;
This template has been detected as one of 436 pages using styles that break the page when printed when the user is using dark mode. The fix is very straightforward - all your styles relating to dark mode must be scoped to. Since there is a high risk of this templates being copied to other wikis it is important this notice is acted on ASAP.&lt;br /&gt;
&lt;br /&gt;
To fix this:&lt;br /&gt;
# Update `@media (prefers-color-scheme: dark` to `@media screen and (prefers-color-scheme: dark`&lt;br /&gt;
# Wrap any styles relating to `html.skin-theme-clientpref-night` in `@media screen`&lt;br /&gt;
&lt;br /&gt;
If this message has not been acted on in 7 days, this will be fixed by an automated script. Thank you for your help fixing this important issue.&lt;br /&gt;
&lt;br /&gt;
For any questions feel free to ask them at [[phab:T369874]].&lt;br /&gt;
&lt;br /&gt;
[[User:Jon (WMF)|Jon (WMF)]] ([[User talk:Jon (WMF)|talk]]) 18:21, 2 August 2024 (UTC) on behalf of the web team.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Navbar/doc&amp;diff=195</id>
		<title>Module:Navbar/doc</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Navbar/doc&amp;diff=195"/>
		<updated>2026-05-26T02:13:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{used in system}}&lt;br /&gt;
{{module rating|protected}}&lt;br /&gt;
{{Lua|Module:Navbar/configuration|Module:Arguments|Module:TableTools}}&lt;br /&gt;
{{Uses TemplateStyles|Module:Navbar/styles.css|Template:Hlist/styles.css}}&lt;br /&gt;
This is a [[WP:Lua|Lua]] implementation of {{tl|Navbar}}. It is used in [[Module:Navbox]].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/N&amp;diff=193</id>
		<title>Module:Transclusion count/data/N</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/N&amp;diff=193"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
[&amp;quot;N&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;N.b.&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;N/A&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;N/a&amp;quot;] = 65000,&lt;br /&gt;
[&amp;quot;NA&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;NA-Class&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;NASCAR_next_race&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;NASTRO_comment&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;NBA_Draft_template_list&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;NBA_Year&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;NBA_color&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;NBA_color_cell&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;NBA_color_cell2&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;NBA_player_statistics_legend&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;NBA_player_statistics_start&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;NBA_roster_footer&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;NBA_roster_header&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;NCAA_color_cell&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;NCAA_secondary_color_cell&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;NCES_District_ID&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;NED&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;NEXTYEAR&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;NFLAltPrimaryStyle&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;NFLPrimaryStyle&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;NFLSecondaryColor&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;NFL_Year&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;NFL_predraft&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;NFL_predraft/check&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;NFL_predraft/ftin&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;NFLplayer&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;NFT&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;NFT_player&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;NGA&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;NGR&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;NHLE&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;NHLS_url&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;NLD&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;NLM_content&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;NOINDEX&amp;quot;] = 512000,&lt;br /&gt;
[&amp;quot;NOMIS2011&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;NOR&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;NPG_name&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;NRDB_species&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;NRHPGoogleMapFootnote&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;NRHP_Focus&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;NRHP_color&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;NRHP_date_for_lists&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;NRHP_date_for_lists/dates&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;NRHP_header&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;NRHP_navigation_box&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;NRHP_row&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;NRHP_style&amp;quot;] = 72000,&lt;br /&gt;
[&amp;quot;NRHP_url&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;NRHP_url/core&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;NRISref&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;NRT&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;NSWcity&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;NSWcity/core&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;NUMBEROFSECTIONS&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;NYCS_br&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;NYCS_time_2&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;NZL&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;NZ_electorate_link&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Na&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Nac&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Namespace_detect&amp;quot;] = 476000,&lt;br /&gt;
[&amp;quot;Namespace_detect_showall&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Nastaliq&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Nat_fs_end&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;NationalArchivesNote&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;National_Film_Awards/style&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;National_Heritage_List_for_England&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;National_Register_of_Historic_Places&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;National_Register_of_Historic_Places_in_New_York&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;National_Register_of_Historic_Places_in_Pennsylvania&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;National_Register_of_Historic_Places_in_Virginia&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;National_basketball_squad&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;National_field_hockey_squad&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;National_football_squad_start/styles.css&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;National_men&#039;s_basketball_team&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;National_men&#039;s_cricket_team&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;National_men&#039;s_cricket_team_right&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;National_men&#039;s_ice_hockey_team&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;National_men&#039;s_volleyball_team&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;National_rugby_union_team&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;National_squad&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;National_squad_no_numbers&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;National_women&#039;s_volleyball_team&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Native_name&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Native_name_checker&amp;quot;] = 86000,&lt;br /&gt;
[&amp;quot;Native_name_list&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Nav_year_links&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Naval&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Naval/core&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Navbar&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Navbar-collapsible&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Navbar-header&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Navbar-header/styles.css&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Navbox&amp;quot;] = 3050000,&lt;br /&gt;
[&amp;quot;Navbox_GR_munic&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Navbox_Musical_artist&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;Navbox_Ukraine_district&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Navbox_bottom&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Navbox_decade_list&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Navbox_documentation&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;Navbox_ice_hockey&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Navbox_musical_artist&amp;quot;] = 245000,&lt;br /&gt;
[&amp;quot;Navbox_musical_artist/styles.css&amp;quot;] = 245000,&lt;br /&gt;
[&amp;quot;Navbox_rugby_league_squad&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Navbox_season_by_team&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Navbox_top&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Navbox_visibility&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;Navbox_with_collapsible_groups&amp;quot;] = 150000,&lt;br /&gt;
[&amp;quot;Navbox_with_collapsible_sections&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Navbox_with_columns&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Navboxes&amp;quot;] = 67000,&lt;br /&gt;
[&amp;quot;Navboxes_colour&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Navseasoncats&amp;quot;] = 124000,&lt;br /&gt;
[&amp;quot;Navseasoncats_with_centuries_below_decade&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Navseasoncats_with_decades_below_year&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Navsource&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Navy&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Navy/core&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Nay&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Nbay&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Nbh&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Nbnd&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Nbs&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Nbsp&amp;quot;] = 547000,&lt;br /&gt;
[&amp;quot;Nbsp_to_space&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Ndash&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Nee&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;NeilBrownPlayers&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Net_register_tonnage&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Netflix_title&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;New_user_bar&amp;quot;] = 57000,&lt;br /&gt;
[&amp;quot;Newbot&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Next_period&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Nfly&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Nihongo&amp;quot;] = 108000,&lt;br /&gt;
[&amp;quot;Nihongo2&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Nihongo_foot&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;No&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;No.&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;No2&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;NoSpam&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;NoSpamEmail&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;No_bold&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;No_col_break&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;No_col_break/styles.css&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;No_documentation&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;No_footnotes&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;No_ping&amp;quot;] = 413000,&lt;br /&gt;
[&amp;quot;No_ping2&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;No_plot&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;No_redirect&amp;quot;] = 727000,&lt;br /&gt;
[&amp;quot;No_significant_coverage_(sports)&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;No_spam&amp;quot;] = 325000,&lt;br /&gt;
[&amp;quot;No_wrap&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Nobold&amp;quot;] = 472000,&lt;br /&gt;
[&amp;quot;Nobold/styles.css&amp;quot;] = 473000,&lt;br /&gt;
[&amp;quot;Nobr&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Nobreak&amp;quot;] = 949000,&lt;br /&gt;
[&amp;quot;Nochange&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Noindex&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Noitalic&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Noitalic/styles.css&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Nom&amp;quot;] = 47000,&lt;br /&gt;
[&amp;quot;Nominated&amp;quot;] = 53000,&lt;br /&gt;
[&amp;quot;Non-English-language_text_category&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Non-admin_closure&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Non-admin_closure_(requested_moves)&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Non-admin_comment&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Non-album_single&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Non-album_singles&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Non-diffusing&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Non-diffusing_parent_category&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Non-diffusing_subcategory&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Non-free_2D_art&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Non-free_3D_art&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Non-free_album_cover&amp;quot;] = 221000,&lt;br /&gt;
[&amp;quot;Non-free_audio_sample&amp;quot;] = 8900,&lt;br /&gt;
[&amp;quot;Non-free_biog-pic&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;Non-free_book_cover&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Non-free_character&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Non-free_comic&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Non-free_fair_use&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Non-free_fair_use_in&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Non-free_file_with_no_commercial_use_license&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Non-free_film_poster&amp;quot;] = 104000,&lt;br /&gt;
[&amp;quot;Non-free_film_screenshot&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Non-free_game_cover&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;Non-free_game_screenshot&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Non-free_historic_image&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Non-free_image_data&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Non-free_image_rationale&amp;quot;] = 9000,&lt;br /&gt;
[&amp;quot;Non-free_logo&amp;quot;] = 160000,&lt;br /&gt;
[&amp;quot;Non-free_magazine_cover&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Non-free_media&amp;quot;] = 817000,&lt;br /&gt;
[&amp;quot;Non-free_media_data&amp;quot;] = 9500,&lt;br /&gt;
[&amp;quot;Non-free_media_rationale&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Non-free_music_video_screenshot&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Non-free_newspaper_image&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Non-free_poster&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Non-free_promotional&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Non-free_school_logo&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Non-free_seal&amp;quot;] = 9200,&lt;br /&gt;
[&amp;quot;Non-free_symbol&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Non-free_television_screenshot&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Non-free_title-card&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale&amp;quot;] = 762000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale/styles.css&amp;quot;] = 772000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_2&amp;quot;] = 239000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_album_cover&amp;quot;] = 151000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_biog&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_book_cover&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_logo&amp;quot;] = 127000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_poster&amp;quot;] = 62000,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_title-card&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_video_cover&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Non-free_use_rationale_video_game_cover&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Non-free_video_cover&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Non-free_video_game_cover&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Non-free_video_game_cover/platform&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Non-free_video_game_screenshot&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Non-free_video_game_screenshot/platform&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Non-free_with_NC&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Non_breaking_en_dash&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Non_breaking_hyphen&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Nonumtoc&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Nonumtoc/styles.css&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Noping&amp;quot;] = 387000,&lt;br /&gt;
[&amp;quot;Noprint&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Noredirect&amp;quot;] = 8800,&lt;br /&gt;
[&amp;quot;Normal&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Normalwraplink&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;North_America_topic&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Nospam&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Not-PD-US-expired-min-year&amp;quot;] = 63000,&lt;br /&gt;
[&amp;quot;Not_a_ballot&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Not_a_typo&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Not_around&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Not_done&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Not_to_be_confused_with&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Notability&amp;quot;] = 60000,&lt;br /&gt;
[&amp;quot;Notavote&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Notdone&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;Note&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;NoteFoot&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;NoteTag&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Note_label&amp;quot;] = 9500,&lt;br /&gt;
[&amp;quot;Notelist&amp;quot;] = 322000,&lt;br /&gt;
[&amp;quot;Notelist-lr&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Notelist-ua&amp;quot;] = 9200,&lt;br /&gt;
[&amp;quot;Notes&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Noteslist&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Notice&amp;quot;] = 121000,&lt;br /&gt;
[&amp;quot;Nowiki_=&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Nowrap&amp;quot;] = 1860000,&lt;br /&gt;
[&amp;quot;Np&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Npby&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Nq&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Nrut&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Ns&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Ns0&amp;quot;] = 86000,&lt;br /&gt;
[&amp;quot;Ns_has_subpages&amp;quot;] = 3770000,&lt;br /&gt;
[&amp;quot;Nsmdns&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Nts&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Ntsh&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Number_table_sorting&amp;quot;] = 41000,&lt;br /&gt;
[&amp;quot;Number_table_sorting_hidden&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Numero&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Nutshell&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Nw=&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Née&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Module:NUMBEROFSECTIONS&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Module:Namespace_detect&amp;quot;] = 540000,&lt;br /&gt;
[&amp;quot;Module:Namespace_detect/config&amp;quot;] = 5190000,&lt;br /&gt;
[&amp;quot;Module:Namespace_detect/data&amp;quot;] = 5190000,&lt;br /&gt;
[&amp;quot;Module:National_squad&amp;quot;] = 58000,&lt;br /&gt;
[&amp;quot;Module:Native_name&amp;quot;] = 118000,&lt;br /&gt;
[&amp;quot;Module:Navbar&amp;quot;] = 5170000,&lt;br /&gt;
[&amp;quot;Module:Navbar/configuration&amp;quot;] = 5170000,&lt;br /&gt;
[&amp;quot;Module:Navbar/styles.css&amp;quot;] = 5160000,&lt;br /&gt;
[&amp;quot;Module:Navbox&amp;quot;] = 4830000,&lt;br /&gt;
[&amp;quot;Module:Navbox/configuration&amp;quot;] = 4830000,&lt;br /&gt;
[&amp;quot;Module:Navbox/styles.css&amp;quot;] = 4830000,&lt;br /&gt;
[&amp;quot;Module:Navbox_ice_hockey&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Module:Navbox_top_and_bottom&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Module:Navbox_with_collapsible_groups&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Navboxes&amp;quot;] = 69000,&lt;br /&gt;
[&amp;quot;Module:Nihongo&amp;quot;] = 111000,&lt;br /&gt;
[&amp;quot;Module:No_ping&amp;quot;] = 496000,&lt;br /&gt;
[&amp;quot;Module:Noinclude&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Module:Normalize_volume_and_edition&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Module:Ns_has_subpages&amp;quot;] = 3770000,&lt;br /&gt;
[&amp;quot;Module:Number_table_sorting&amp;quot;] = 43000,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Navbar/styles.css&amp;diff=191</id>
		<title>Module:Navbar/styles.css</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Navbar/styles.css&amp;diff=191"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=yes}} */&lt;br /&gt;
.navbar {&lt;br /&gt;
	display: inline;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-collapse {&lt;br /&gt;
	float: left;&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-boxtext {&lt;br /&gt;
	word-spacing: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar ul {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
	line-height: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-brackets::before {&lt;br /&gt;
	margin-right: -0.125em;&lt;br /&gt;
	content: &#039;[ &#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-brackets::after {&lt;br /&gt;
	margin-left: -0.125em;&lt;br /&gt;
	content: &#039; ]&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar li {&lt;br /&gt;
	word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar a &amp;gt; span,&lt;br /&gt;
.navbar a &amp;gt; abbr {&lt;br /&gt;
	text-decoration: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-mini abbr {&lt;br /&gt;
	font-variant: small-caps;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
	cursor: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-ct-full {&lt;br /&gt;
	font-size: 114%;&lt;br /&gt;
	margin: 0 7em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-ct-mini {&lt;br /&gt;
	font-size: 114%;&lt;br /&gt;
	margin: 0 4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* not the usual @media screen, we simply remove navbar in @media print */&lt;br /&gt;
html.skin-theme-clientpref-night .navbar li a abbr {&lt;br /&gt;
	color: var(--color-base) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (prefers-color-scheme: dark) {&lt;br /&gt;
	html.skin-theme-clientpref-os .navbar li a abbr {&lt;br /&gt;
		color: var(--color-base) !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media print {&lt;br /&gt;
	.navbar {&lt;br /&gt;
		display: none !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Navbar/configuration&amp;diff=189</id>
		<title>Module:Navbar/configuration</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Navbar/configuration&amp;diff=189"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
	[&#039;templatestyles&#039;] = &#039;Module:Navbar/styles.css&#039;,&lt;br /&gt;
	[&#039;hlist_templatestyles&#039;] = &#039;Hlist/styles.css&#039;,&lt;br /&gt;
	[&#039;box_text&#039;] = &#039;This box: &#039;,			-- default text box when not plain or mini&lt;br /&gt;
	[&#039;title_namespace&#039;] = &#039;Template&#039;,		-- namespace to default to for title&lt;br /&gt;
	[&#039;invalid_title&#039;] = &#039;Invalid title &#039;,&lt;br /&gt;
	[&#039;classes&#039;] = { -- set a line to nil if you don&#039;t want it&lt;br /&gt;
		[&#039;navbar&#039;] = &#039;navbar&#039;,&lt;br /&gt;
		[&#039;plainlinks&#039;] = &#039;plainlinks&#039;, -- plainlinks&lt;br /&gt;
		[&#039;horizontal_list&#039;] = &#039;hlist&#039;, -- horizontal list class&lt;br /&gt;
		[&#039;mini&#039;] = &#039;navbar-mini&#039;, -- class indicating small links in the navbar&lt;br /&gt;
		[&#039;this_box&#039;] = &#039;navbar-boxtext&#039;,&lt;br /&gt;
		[&#039;brackets&#039;] = &#039;navbar-brackets&#039;,&lt;br /&gt;
		-- &#039;collapsible&#039; is the key for a class to indicate the navbar is&lt;br /&gt;
		-- setting up the collapsible element in addition to the normal&lt;br /&gt;
		-- navbar.&lt;br /&gt;
		[&#039;collapsible&#039;] = &#039;navbar-collapse&#039;,&lt;br /&gt;
		[&#039;collapsible_title_mini&#039;] = &#039;navbar-ct-mini&#039;,&lt;br /&gt;
		[&#039;collapsible_title_full&#039;] = &#039;navbar-ct-full&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module_talk:TableTools&amp;diff=187</id>
		<title>Module talk:TableTools</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module_talk:TableTools&amp;diff=187"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Permanently protected}}&lt;br /&gt;
{{oldtfdfull|date= 2018 May 13 |result=Merge |disc=Module:Table}}&lt;br /&gt;
&lt;br /&gt;
== removeDuplicate does not remove duplicate NaN ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function p.removeDuplicates(t)&lt;br /&gt;
	checkType(&#039;removeDuplicates&#039;, 1, t, &#039;table&#039;)&lt;br /&gt;
	local isNan = p.isNan&lt;br /&gt;
	local ret, exists = {}, {}&lt;br /&gt;
	for i, v in ipairs(t) do&lt;br /&gt;
		if isNan(v) then&lt;br /&gt;
			-- NaNs can&#039;t be table keys, and they are also unique, so we don&#039;t need to check existence.&lt;br /&gt;
			ret[#ret + 1] = v&lt;br /&gt;
		else&lt;br /&gt;
			if not exists[v] then&lt;br /&gt;
				ret[#ret + 1] = v&lt;br /&gt;
				exists[v] = true&lt;br /&gt;
			end&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This should be:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function p.removeDuplicates(t, uniqueNan)&lt;br /&gt;
	checkType(&#039;removeDuplicates&#039;, 1, t, &#039;table&#039;)&lt;br /&gt;
	local ret, isNan, hasNan, exists = {}, p.isNan, false, {}&lt;br /&gt;
	for _, v in ipairs(t) do&lt;br /&gt;
		-- NaNs can&#039;t be table keys in exists[], and they are also equal to each other in Lua.&lt;br /&gt;
		if isNan(v) then&lt;br /&gt;
			-- But we may want only one Nan in ret[], and there may be multiple Nan&#039;s in t[].&lt;br /&gt;
			if uniqueNan == nil or uniqueNan == false or uniqueNan == true and not hasNan then&lt;br /&gt;
				hasNan = true&lt;br /&gt;
				ret[#ret + 1] = v&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if not exists[v] then&lt;br /&gt;
				exists[v] = true&lt;br /&gt;
				ret[#ret + 1] = v&lt;br /&gt;
			end&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
-- [[User:Verdy p|verdy_p]] ([[User talk:Verdy p|talk]]) 07:50, 2 February 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;span class=&amp;quot;template-ping&amp;quot;&amp;gt;@[[:User:Verdy p|Verdy p]]:&amp;lt;/span&amp;gt; This was by design, as comparing two NaNs always results in &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. My reasoning was that since two NaNs can never be equal to each other - even if they were made by the exact same calculation - then they shouldn&#039;t be treated as duplicates by the algorithm. Although if there&#039;s some sort of precedent for doing things a different way, please let me know. I&#039;m fairly new to the world of NaNs, after all. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 08:01, 2 February 2014 (UTC)&lt;br /&gt;
:: That&#039;s the Lua interpretation anyway. Even if it has a single Nan value (no distinction between signaling and non-signaling ones, or Nan&#039;s carrying an integer type, like in IEEE binary 32-bit float and 64-bit double formats, neither does Java...), there are some apps that depend on using Nan as a distinctive key equal to itself, but still different from nil.&lt;br /&gt;
:: The other kind of usage of Nan is &amp;quot;value not set, ignore it&amp;quot;: when computing averages for example, Nan must not be summed and not counted, so all Nan&#039;s should be removed from the table. For this case May be there should be an option to either preserve all Nan&#039;s, or nuke them all from the result: the kill option would be tested in the if-branch of your first version, and a second alternate option tested after it would be to make Nan&#039;s unique in the result.... The first case being quite common for statistics when it means &amp;quot;unset&amp;quot;, while nil means something else (such as compute this value before determinig if it&#039;s a Nan, nil bring used also for weak references that can be retreived from another slow data store, and the table storing nil being a fast cache of that slow data store) [[User:Verdy p|verdy_p]] ([[User talk:Verdy p|talk]]) 08:29, 2 February 2014 (UTC)&lt;br /&gt;
:::I had a quick look at the functions, but cannot work out the intended usage—that usage would probably determine what should happen with NaNs. The docs for &amp;lt;code&amp;gt;removeDuplicates&amp;lt;/code&amp;gt; says that keys that are not positive integers are ignored—but what it means is that such keys are &#039;&#039;removed&#039;&#039;. On that principle, I think it would be better to default to removing NaNs. I cannot imagine a usage example where I would want to call this function and have a NaN in the result—what would I do with it? If it were desirable to test for the presence of NaN members, why not return an extra value that is true if one or more NaNs are encountered and omitted? How would it help to ever have both &amp;lt;code&amp;gt;0/0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-0/0&amp;lt;/code&amp;gt; (or multiple instances of &amp;lt;code&amp;gt;0/0&amp;lt;/code&amp;gt;) in the result?&lt;br /&gt;
:::Regarding verdy_p&#039;s code: I don&#039;t think it is a good idea to deviate from Lua&#039;s idioms, and if there were a &amp;lt;code&amp;gt;uniqueNan&amp;lt;/code&amp;gt; parameter, it should not be tested for explicit &amp;quot;false&amp;quot; and &amp;quot;true&amp;quot; values. The function regards &amp;quot;hello&amp;quot; as neither false nor true and while that is a very defensible position, it&#039;s not how Lua code is supposed to work. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 03:26, 3 February 2014 (UTC)&lt;br /&gt;
:: It takes three values (it is a &amp;quot;tri-state boolean&amp;quot;):&lt;br /&gt;
::* nil the default is your existing code that keeps them all,&lt;br /&gt;
::* true keeps a single Nan,&lt;br /&gt;
::* false does not even keep this one&lt;br /&gt;
::* any other (unsupported) value in other types is considered like nil.&lt;br /&gt;
:: There&#039;s no such &amp;quot;Lua idiom&amp;quot; (about NaN) except that the default value is nil (already a common Lua practive), and otherwise the parameter is used as a boolean flag whose value is meant by its explicit name (and is a general good practive for naming boolean flags)... Tri-state boooleans are very common objects in many situations where we need a supplementary &amp;quot;may be / unknown / don&#039;t know / other / not specified / not available / missing data / to be determined later / uninitialized / refuse to say / no opinion / fuzzy&amp;quot; value. This fuzzy concept is also carried by Nan (within the field of numbers instead of booleans) so it is really appropriate here !&lt;br /&gt;
:: There&#039;s also no such ideom of &amp;quot;NaN&amp;quot; in Mediawiki parameters. Given that Lua already states that multiple NaN values compare effectively as &amp;quot;equal&amp;quot;, it makes no sense to keep these duplicates which occur occasionally as result of computed numeric expressions (numbers in Lua never distinguish any NaN, neither does MediaWiki). You &amp;quot;idiom&amp;quot; is that used in Java or C++, which is NOT directly usd in MadiaWiki or Lua (hidden in the underlying internal representation). Keeping these duplicates should complicates situation where we expect &amp;quot;keys&amp;quot; in Lua tables to be unique. Not doing that means that we&#039;ll not properly detect overrides, and it will be impossible to map any action of value to NaN, meaning that we&#039;ll always get unspecified results that we can never catch in MediaWiki templates (this means undetected errors and unspecified behavior, wrong results in all cases). Lua treats all NaN as unique values which compare equal between each other, but different from all other non-NaN values (including &amp;quot;nil&amp;quot;/unmapped). Note that &amp;quot;nil&amp;quot; in (which matches unspecified MediaWiki values) is NOT &amp;quot;NaN&amp;quot; and is also NOT an &amp;quot;empty string&amp;quot; value (which is only one of the possible default values for unspecified but cannot match any &amp;quot;NaN&amp;quot;). &amp;quot;NaN&amp;quot; in Mediawiki is a string, and does not match the Lua NaN numeric value.&lt;br /&gt;
:: It&#039;s only when we start speaking about fuzzy logic with measured accuracy, that we introduce many other values by representing fuzzy booleans by a real number between 0.0 and 1.0, but then even this accuracy may be sometimes not measurable and will also needs an additional Nan value, so fuzzy booleans have infinite number of values between 0.0 and 1.0 plus Nan; (0.0 representing absolutely false, 0.5 representing false or true equally, and 1.0 representing absolutely true, the rule being that if you sum the response rates, you&#039;ll get always 1.0). [User:Verdy p|verdy_p]] ([[User talk:Verdy p|talk]])&lt;br /&gt;
:: In summary the statement &amp;quot;-- NaNs can&#039;t be table keys, and they are also unique, so we don&#039;t need to check existence.&amp;quot; is compeltely false: not checking this existence means that the line &amp;quot;ret[#ret + 1] = v&amp;quot; will be executed multiple times (each time &amp;quot;v&amp;quot; is NaN) so &amp;quot;ret[]&amp;quot; will contain multiple &amp;quot;NaN&amp;quot; values... And this is not expected.&lt;br /&gt;
:: Note you may want to have &amp;quot;uniqueNan&amp;quot; set to true by default (the code above keeps the existing default behavior when the optional &amp;quot;uniqueNan&amp;quot; parameter is not specified, i.e. it keeps these duplicates).&lt;br /&gt;
:: If you drop that optional parameter, by forcing the function to behave like if it was always true, all that is needed is to change the line &amp;quot;if uniqueNan == nil or uniqueNan == false or uniqueNan == true and not hasNan then&amp;quot; to &amp;quot;if not hasNan then&amp;quot;... I.e. you just need to check and set &amp;quot;hasNan = true&amp;quot; before adding to &amp;quot;ret[]&amp;quot;. [[User:Verdy p|verdy_p]] ([[User talk:Verdy p|talk]]) 20:40, 5 August 2018 (UTC)&lt;br /&gt;
::: I don&#039;t know what the &amp;quot;correct&amp;quot; behavior for removeDuplicates should be when passed a NaN, either keeping them all or keeping only one. I do know that the following statements are incorrect or irrelevant: &lt;br /&gt;
:::* {{tq|there are some apps that depend on using Nan as a distinctive key equal to itself, but still different from nil}} – Whether such apps exist or not, in Lua neither NaN nor nil can be a &#039;&#039;key&#039;&#039; in a table. Only a value.&lt;br /&gt;
:::* {{tq|The other kind of usage of Nan is &amp;quot;value not set, ignore it&amp;quot;: when computing averages for example [...] while nil means something else}} – That seems a rather idiosyncratic use, and not relevant to a generic &amp;quot;removeDuplicates&amp;quot; method. Particularly since for calculating averages you wouldn&#039;t want to remove duplicates in the first place.&lt;br /&gt;
:::* {{tq|For this case May be there should be an option to either preserve all Nan&#039;s, or nuke them all from the result}} – Removing all NaNs would be better done by a &amp;quot;removeNaNs&amp;quot; method rather than a weird flag on &amp;quot;removeDuplicates&amp;quot;.&lt;br /&gt;
:::* {{tq|Given that Lua already states that multiple NaN values compare effectively as &amp;quot;equal&amp;quot;}} – That&#039;s incorrect. Lua treats all NaN values as &#039;&#039;unequal&#039;&#039;.&lt;br /&gt;
:::* {{tq|numbers in Lua never distinguish any NaN}} – I have no idea what you&#039;re trying to say here. Lua does have NaNs, for example as the result of calculating &amp;quot;0/0&amp;quot;.&lt;br /&gt;
:::* {{tq|You &amp;quot;idiom&amp;quot; is that used in Java or C++, which is NOT directly usd in MadiaWiki or Lua (hidden in the underlying internal representation).}} – MediaWiki and Lua both use IEEE NaNs, although neither does anything special with the various types of NaN (quiet versus signaling and so on). Lua is implemented in C and uses its floating point types, including NaNs, while MediaWiki is written in PHP which is written in C (or C++ when using HHVM) and again uses C&#039;s floating point types.&lt;br /&gt;
:::* {{tq|Keeping these duplicates should complicates situation where we expect &amp;quot;keys&amp;quot; in Lua tables to be unique.}} — Since Lua tables cannot have NaN as a key, this seems irrelevant.&lt;br /&gt;
:::* {{tq|Lua treats all NaN as unique values which compare equal between each other}} – Again, this is wrong.&lt;br /&gt;
:::* {{tq|Note that &amp;quot;nil&amp;quot; in (which matches unspecified MediaWiki values) is NOT &amp;quot;NaN&amp;quot; and is also NOT an &amp;quot;empty string&amp;quot; value}} – I don&#039;t see where anyone else ever said it was.&lt;br /&gt;
:::* {{tq|&amp;quot;NaN&amp;quot; in Mediawiki is a string, and does not match the Lua NaN numeric value.}} – If you pass &amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt; as a template parameter, then yes, it will come into Lua as a string and will not match an actual Lua NaN. That doesn&#039;t seem at all relevant to this removeDuplicates method though.&lt;br /&gt;
:::* {{tq|It&#039;s only when we start speaking about fuzzy logic with measured accuracy}} – You seem to be going of on some completely unrelated tangent here.&lt;br /&gt;
:::* {{tq|In summary the statement &amp;quot;-- NaNs can&#039;t be table keys, and they are also unique, so we don&#039;t need to check existence.&amp;quot; is compeltely false}} – On the contrary, it&#039;s largely true. In Lua NaN cannot be a table key. Since &amp;lt;code&amp;gt;nan ~= nan&amp;lt;/code&amp;gt; is always true, arguably every NaN is &amp;quot;unique&amp;quot;.&lt;br /&gt;
::: HTH. [[User:Anomie|Anomie]][[User talk:Anomie|⚔]] 23:11, 5 August 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Template-protected edit request on 4 March 2019 ==&lt;br /&gt;
&lt;br /&gt;
{{edit template-protected|Module:TableTools|answered=yes}}&lt;br /&gt;
Please add function ipairsAt()/ipairsAtOffset() as demonstrated {{diff|&lt;br /&gt;
Module:TableTools/sandbox|diff=886292279|oldid=884152164|label=here}}. [[User:Ans|Ans]] ([[User talk:Ans|talk]]) 10:23, 4 March 2019 (UTC)&lt;br /&gt;
: {{ping|Ans}} What is the usecase for this function? [[User:Pppery|&amp;amp;#123;&amp;amp;#123;3x&amp;amp;#124;p&amp;amp;#125;&amp;amp;#125;ery]] ([[User talk:Pppery|talk]])  15:08, 4 March 2019 (UTC)&lt;br /&gt;
:: I plan to use in function p.call() in [[Module:LuaCall]] --[[User:Ans|Ans]] ([[User talk:Ans|talk]]) 10:40, 5 March 2019 (UTC)&lt;br /&gt;
::: Those are both so simple you could just do it inline. Also, I really hope you&#039;re not planning on actually using [[Module:LuaCall]] somewhere outside of maybe your user space, per [[Module talk:LuaCall#I sincerely hope that no one ever actually uses this]]. [[User:Anomie|Anomie]][[User talk:Anomie|⚔]] 13:35, 5 March 2019 (UTC)&lt;br /&gt;
*{{notdone}} per above. — [[User:Xaosflux|&amp;lt;span style=&amp;quot;color:#FF9933; font-weight:bold; font-family:monotype;&amp;quot;&amp;gt;xaosflux&amp;lt;/span&amp;gt;]] &amp;lt;sup&amp;gt;[[User talk:Xaosflux|&amp;lt;span style=&amp;quot;color:#009933;&amp;quot;&amp;gt;Talk&amp;lt;/span&amp;gt;]]&amp;lt;/sup&amp;gt; 15:00, 5 March 2019 (UTC)&lt;br /&gt;
::: It is not so simple, as the user need to understand the mechanism of ipairs() and iterator to do it inline.  The proposed function could help users who want to iterate like this, but don&#039;t know how to do it inline.  Moreover, using ipairsAt() instead of inline will improve code readability.  It does not just help developers write code, but also help beginners to understand what the code do when reading the code that use this function rather than inline code.&lt;br /&gt;
::: [[Module:LuaCall]] could be used to help write debugging code instantaneously in template.&lt;br /&gt;
::: --[[User:Ans|Ans]] ([[User talk:Ans|talk]]) 05:00, 7 March 2019 (UTC)&lt;br /&gt;
*{{not done}} {{tq|Edit requests to fully protected pages should only be used for edits that are either uncontroversial or supported by consensus.}} As this has been objected to already consider you are already at stage 3 of [[WP:BRD]]. — [[User:Xaosflux|&amp;lt;span style=&amp;quot;color:#FF9933; font-weight:bold; font-family:monotype;&amp;quot;&amp;gt;xaosflux&amp;lt;/span&amp;gt;]] &amp;lt;sup&amp;gt;[[User talk:Xaosflux|&amp;lt;span style=&amp;quot;color:#009933;&amp;quot;&amp;gt;Talk&amp;lt;/span&amp;gt;]]&amp;lt;/sup&amp;gt; 02:51, 8 March 2019 (UTC)&lt;br /&gt;
:If after some period (ex. 7 days), no one has responsed or objected to my last reasons, does it be considered to be uncontroversial? --[[User:Ans|Ans]] ([[User talk:Ans|talk]]) 04:40, 12 March 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Template-protected edit request on 8 March 2019 ==&lt;br /&gt;
&lt;br /&gt;
{{edit template-protected|Module:TableTools|answered=yes}}&lt;br /&gt;
Please change function p.length() to reduce loops count by one, as demonstrated {{diff|&lt;br /&gt;
Module:TableTools/sandbox|diff=886736778|oldid=886292279|label=here}} (also add note for #frame.args). [[User:Ans|Ans]] ([[User talk:Ans|talk]]) 05:38, 8 March 2019 (UTC)&lt;br /&gt;
:[[File:Yes check.svg|20px|link=|alt=]] &#039;&#039;&#039;Done&#039;&#039;&#039;&amp;lt;!-- Template:ETp --&amp;gt; -- &amp;lt;span style=&amp;quot;text-shadow:0 0 1px #8dd&amp;quot;&amp;gt;&#039;&#039;/[[User:Alex 21|&amp;lt;span style=&amp;quot;color:#008&amp;quot;&amp;gt;Alex&amp;lt;/span&amp;gt;]]/[[User talk:Alex 21|&amp;lt;sub style=&amp;quot;color:#008&amp;quot;&amp;gt;21&amp;lt;/sub&amp;gt;]]&#039;&#039;&amp;lt;/span&amp;gt; 13:06, 12 March 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Delete this module==&lt;br /&gt;
{{ping|Hhkohh}} Is it a mistake that you added a tag saying this module is going to be deleted? I can&#039;t see that from the TfD. [[User:Christian75|Christian75]] ([[User talk:Christian75|talk]]) 12:37, 13 March 2019 (UTC)&lt;br /&gt;
:{{u|Christian75}}, not delete, just being merged per TfD outcome. [[User:Hhkohh|Hhkohh]] ([[User talk:Hhkohh|talk]]) 12:46, 13 March 2019 (UTC)&lt;br /&gt;
::I thought that, but the template you added says &amp;quot;This template is currently being deleted.&amp;quot; [[User:Christian75|Christian75]] ([[User talk:Christian75|talk]]) 12:49, 13 March 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Help in writing better testcases==&lt;br /&gt;
Hello developers, I am working with [[mw:Multilingual Templates and Modules]] and to convert this module into a shared one, we need better [[mw:Module:TableTools/testcases]]. Can anyone please help? {{ping|Frietjes}}, {{ping|RexxS}} [[User:Capankajsmilyo|Capankajsmilyo]]&amp;lt;sup&amp;gt;([[User talk:Capankajsmilyo|Talk]] | [[Wikipedia:WikiProject Infoboxes/assistance|Infobox assistance]])&amp;lt;/sup&amp;gt; 10:32, 22 May 2019 (UTC)&lt;br /&gt;
:Already done, sorry to bother. [[User:Capankajsmilyo|Capankajsmilyo]]&amp;lt;sup&amp;gt;([[User talk:Capankajsmilyo|Talk]] | [[Wikipedia:WikiProject Infoboxes/assistance|Infobox assistance]])&amp;lt;/sup&amp;gt; 10:38, 22 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Array length merger ==&lt;br /&gt;
&lt;br /&gt;
{{ping|Pppery}} Is there any reason the merged version in the sandbox was never synced with the main template? --[[User:Trialpears|Trialpears]] ([[User talk:Trialpears|talk]]) 20:48, 31 July 2019 (UTC)&lt;br /&gt;
: Lack of confidence in my own ability to edit a module used on 8% of all pages without breaking something (Yes, I know I did edit this module in February). The code should be ready to go live. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 21:02, 31 July 2019 (UTC)&lt;br /&gt;
::That is probably the correct response when dealing with these things... Having a second pair of eyes look at it (which won&#039;t be me with no module coding experience yet) sounds sensible. Also sorry for deleting your note tat you had merged it, my bad. --[[User:Trialpears|Trialpears]] ([[User talk:Trialpears|talk]]) 22:06, 31 July 2019 (UTC)&lt;br /&gt;
::: {{ping|Mr. Stradivarius}} Does the merged code in [[Module:TableTools/sandbox]] ([[Special:Diff/899722883/899724164]]) look good to you? [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 01:43, 23 September 2019 (UTC)&lt;br /&gt;
:::: {{ping|Pppery}} Sorry for the late reply. The implementation is mostly good, but for empty arrays it should return 0, whereas currently it returns nil. Also, any chance you could add some test cases for it to [[Module:TableTools/testcases]]? As for naming, I would go with something different. &amp;quot;Binary length&amp;quot; sounds like it could mean the length in bytes of a table (which I know doesn&#039;t really have a meaning for Lua tables, but hey). It also isn&#039;t clear that this only works for arrays or array-like tables. Finally and most nit-pickingly, it isn&#039;t &#039;&#039;technically&#039;&#039; a [[binary search]]; [[exponential search]]es and binary searches are slightly different. How about &amp;quot;arrayLength&amp;quot; instead? The explanation of which algorithm is used would have to be relegated to the doc page, but I think this might be a clearer approach overall. Best — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr.&amp;amp;nbsp;Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪&amp;amp;nbsp;talk&amp;amp;nbsp;♪]]&amp;lt;/sup&amp;gt; 08:53, 29 September 2019 (UTC)&lt;br /&gt;
::::: {{ping|Mr. Stradivarius}} OK, I&#039;ve [[Special:Diff/918679523|fixed the 0 versus nil bug]], and [[Special:Diff/587868130/918677165|added some test cases]]. As to the naming, I don&#039;t like &amp;lt;code&amp;gt;arrayLength&amp;lt;/code&amp;gt;, because it is not meaningfully distinguishable from the pre-existing &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; function, and two functions having names that are synonyms feels like bad coding style. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 20:57, 29 September 2019 (UTC)&lt;br /&gt;
:::::: {{ping|Pppery}} Ah, I had forgotten that there was also a &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; function. I agree that it is confusing to have both &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;arrayLength&amp;lt;/code&amp;gt;. How about replacing &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;binaryLength&amp;lt;/code&amp;gt;? It is a much more efficient algorithm for large arrays, and only marginally less efficient for very small arrays; plus it has the same requirement that no intermediate elements in the array can be nil. If any code is affected by switching from an incremental to an exponential algorithm, that code was probably broken to begin with. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr.&amp;amp;nbsp;Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪&amp;amp;nbsp;talk&amp;amp;nbsp;♪]]&amp;lt;/sup&amp;gt; 14:25, 30 September 2019 (UTC)&lt;br /&gt;
:::::: Also, thank you for the algorithm fix and for adding the test case. I split the test case up into four separate test cases; this should make it easier to pinpoint the error if a future edit causes a problem with the function. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr.&amp;amp;nbsp;Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪&amp;amp;nbsp;talk&amp;amp;nbsp;♪]]&amp;lt;/sup&amp;gt; 14:27, 30 September 2019 (UTC)&lt;br /&gt;
::::::: {{ping|Mr. Stradivarius}} I didn&#039;t go with that originally because [[Module:Array length]] has text on its documentation page saying it shouldn&#039;t be used for small arrays but yes, that suggestion does seem reasonable. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 21:13, 30 September 2019 (UTC)&lt;br /&gt;
::::::: Replacement of &amp;lt;code&amp;gt;length&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;binaryLength&amp;lt;/code&amp;gt; done. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 18:46, 5 October 2019 (UTC)&lt;br /&gt;
{{od}} And {{done|merged}} with main module. Let&#039;s see if anything breaks ... [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 03:41, 21 December 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Potential code simplification ==&lt;br /&gt;
&lt;br /&gt;
Keeping in mind that I don&#039;t actually know much about Lua and could easily be overlooking some obvious problem with this suggestion, the functions &amp;lt;code&amp;gt;isPositiveInteger()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;isNan()&amp;lt;/code&amp;gt; could be slightly simplified by removing the &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; structures and instead directly returning on the logic, since it should return &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, as appropriate, already. I&#039;d demonstrate exactly what I mean in the sandbox, but there are other outstanding changes there and I didn&#039;t want to introduce irrelevant changes without approval first. &amp;lt;span class=nowrap&amp;gt;「[[User:Dinoguy1000|&amp;lt;span style=color:#00f&amp;gt;ディノ&amp;lt;/span&amp;gt;&amp;lt;span style=color:#080&amp;gt;奴&amp;lt;/span&amp;gt;]][[Special:Contributions/Dinoguy1000|&amp;lt;span style=color:#F90&amp;gt;千？！&amp;lt;/span&amp;gt;]]」&amp;lt;sup&amp;gt;[[User talk:Dinoguy1000#top|☎ Dinoguy1000]]&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt; 02:15, 31 October 2019 (UTC)&lt;br /&gt;
: {{ping|Dinoguy1000}} As the user who coded the changes currently in the sandbox, feel free to demonstrate your simplification edit. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 23:43, 4 November 2019 (UTC)&lt;br /&gt;
::[https://en.wikipedia.org/w/index.php?title=Module:TableTools/sandbox&amp;amp;diff=924665819&amp;amp;oldid=923649632 Done]. Promisingly, all [[Module talk:TableTools/testcases|testcases]] appear to be passing after this, assuming I&#039;m understanding that page correctly. &amp;lt;span class=nowrap&amp;gt;「[[User:Dinoguy1000|&amp;lt;span style=color:#00f&amp;gt;ディノ&amp;lt;/span&amp;gt;&amp;lt;span style=color:#080&amp;gt;奴&amp;lt;/span&amp;gt;]][[Special:Contributions/Dinoguy1000|&amp;lt;span style=color:#F90&amp;gt;千？！&amp;lt;/span&amp;gt;]]」&amp;lt;sup&amp;gt;[[User talk:Dinoguy1000#top|☎ Dinoguy1000]]&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt; 05:38, 5 November 2019 (UTC)&lt;br /&gt;
::: {{ping|Dinoguy1000}} Looks like an improvement to me, which I will include if I stop worrying too much about editing a module with this many transclusions and actually implement the TfD I initiated in February. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 01:59, 8 November 2019 (UTC)&lt;br /&gt;
::::{{ping|Pppery}} I think a similar improvement can be made in the &amp;lt;code&amp;gt;cleanPattern()&amp;lt;/code&amp;gt; subroutine of the &amp;lt;code&amp;gt;affixNums()&amp;lt;/code&amp;gt; function, though I&#039;m not sure (again, I don&#039;t know enough about Lua or Scribunto to know if there might be some gotcha there), in the event you want to look at another thing to bundle into the edit too. &amp;lt;span class=nowrap&amp;gt;「[[User:Dinoguy1000|&amp;lt;span style=color:#00f&amp;gt;ディノ&amp;lt;/span&amp;gt;&amp;lt;span style=color:#080&amp;gt;奴&amp;lt;/span&amp;gt;]][[Special:Contributions/Dinoguy1000|&amp;lt;span style=color:#F90&amp;gt;千？！&amp;lt;/span&amp;gt;]]」&amp;lt;sup&amp;gt;[[User talk:Dinoguy1000#top|☎ Dinoguy1000]]&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt; 03:56, 8 November 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Protected edit request on 7 March 2020 ==&lt;br /&gt;
&lt;br /&gt;
{{edit fully-protected|Module:TableTools|answered=yes}}&lt;br /&gt;
change -- requiring module inline so that [[Module:Exponental search]] to -- requiring module inline so that [[Module:Exponential search]]&lt;br /&gt;
(rationale : typo in Exponental / Exponential) [[Special:Contributions/82.255.235.43|82.255.235.43]] ([[User talk:82.255.235.43|talk]]) 03:45, 7 March 2020 (UTC)&lt;br /&gt;
:[[File:Red information icon with gradient background.svg|20px|link=|alt=]] &#039;&#039;&#039;Not done for now:&#039;&#039;&#039;&amp;lt;!-- Template:EP --&amp;gt; Please feel free to queue this in the sandbox. This module is used on many pages and making minor typos like that one doesn&#039;t make sense as its own edit. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 03:49, 7 March 2020 (UTC)&lt;br /&gt;
::I&#039;m pretty late to mention this, but I fixed this and another comment, and made another minor code simplification, in [https://en.wikipedia.org/w/index.php?title=Module:TableTools/sandbox&amp;amp;diff=prev&amp;amp;oldid=952640189 this edit] to the sandbox last month. I&#039;ll leave it to more regular module editors to decide if that&#039;s significant enough to edit the live module now, though. &amp;lt;span class=nowrap&amp;gt;「[[User:Dinoguy1000|&amp;lt;span style=color:#00f&amp;gt;ディノ&amp;lt;/span&amp;gt;&amp;lt;span style=color:#080&amp;gt;奴&amp;lt;/span&amp;gt;]][[Special:Contributions/Dinoguy1000|&amp;lt;span style=color:#F90&amp;gt;千？！&amp;lt;/span&amp;gt;]]」&amp;lt;sup&amp;gt;[[User talk:Dinoguy1000#top|☎ Dinoguy1000]]&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt; 18:22, 19 May 2020 (UTC)&lt;br /&gt;
::: This module gets edited so rarely that the approach &amp;quot;wait for a substantive edit&amp;quot; isn&#039;t really feasible. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 21:49, 19 May 2020 (UTC)&lt;br /&gt;
::::Fair enough, I&#039;ve gone ahead and deployed the sandbox version. If I misunderstood your intent, feel free to [[WP:TROUT|correct me]]. =) &amp;lt;span class=nowrap&amp;gt;「[[User:Dinoguy1000|&amp;lt;span style=color:#00f&amp;gt;ディノ&amp;lt;/span&amp;gt;&amp;lt;span style=color:#080&amp;gt;奴&amp;lt;/span&amp;gt;]][[Special:Contributions/Dinoguy1000|&amp;lt;span style=color:#F90&amp;gt;千？！&amp;lt;/span&amp;gt;]]」&amp;lt;sup&amp;gt;[[User talk:Dinoguy1000#top|☎ Dinoguy1000]]&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt; 15:51, 23 May 2020 (UTC)&lt;br /&gt;
::::: You did not misunderstand me; I would have done it myself as soon as this module was no longer used on the Main Page. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 16:08, 23 May 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Bug in deepCopy ==&lt;br /&gt;
&lt;br /&gt;
Has anyone tried p.deepCopy which was apparently merged in from [[Module:Table]] by {{u|Pppery}} in [[Special:Diff/884153516|diff]]? The function has a bug: in function &amp;lt;code&amp;gt;_deepCopy&amp;lt;/code&amp;gt;, the three occurrences of &amp;lt;code&amp;gt;deepcopy&amp;lt;/code&amp;gt; should be &amp;lt;code&amp;gt;_deepCopy&amp;lt;/code&amp;gt;. If the function has never been used, perhaps it should be deleted? I see the documentation mentions that it has some benefits over mw.clone, but I don&#039;t think functions should be included in this massively used module unless they are needed by established modules. Also, there has to be some kind of testcase for each function. Searching shows there are a few modules using their own deepcopy functions, but I can&#039;t find any trying to use this one. Please don&#039;t fix the bug yet because if the module is to be changed, the proposed changes should be in the sandbox for a week or so to give others a chance to tweak things. There are a couple of comment inelegancies that might be fixed if the module is updated. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 04:02, 2 November 2020 (UTC)&lt;br /&gt;
: I have no objections to deleting the functionality. Kind of embarassing that I made a mistake like that when editing a highly-visible module. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 04:42, 2 November 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== reverseNumKeys, reverseSparseIpairs ==&lt;br /&gt;
&lt;br /&gt;
I have added these functions to the sandbox and test cases. [[User:Trigenibinion|Trigenibinion]] ([[User talk:Trigenibinion|talk]]) 17:32, 22 February 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Shouldn&#039;t isArray be more generic? ==&lt;br /&gt;
&lt;br /&gt;
{{ping|Pppery|Johnuniq|Izno}} Currently, isArray raises an error if the input is not a table, shouldn&#039;t it just return false, which is what a user would expect from an isXxx function? Furthermore, wouldn&#039;t it be better if it checked if the input was array-like? This would allow custom objects/containers to be considered array-like if they are iterable and only have numeric keys. [[User:Alexiscoutinho|Alexiscoutinho]] ([[User talk:Alexiscoutinho|talk]]) 14:23, 9 July 2021 (UTC)&lt;br /&gt;
:I agree that isArray should return true or false and should never raise an error—that would be much more in keeping with Lua&#039;s style of doing the right thing when reasonable. The checkType should be replaced with a line to return false if the input is not a table. BTW, that&#039;s an amazing implementation which would never have occurred to me. I see [[#Bug in deepCopy]] above has not been addressed yet. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 00:13, 10 July 2021 (UTC)&lt;br /&gt;
::{{re|Johnuniq}} What do you think of this?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function (obj)&lt;br /&gt;
	if not pcall(pairs, obj) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for _ in pairs(obj) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if obj[i] == nil then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:::Good, but I would stick with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function p.isArray(t)&lt;br /&gt;
	if type(t) ~= &#039;table&#039; then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for _ in pairs(t) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if t[i] == nil then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:::That&#039;s using &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; for simplicity and consistency with the rest of the module. It would not be possible for &amp;lt;code&amp;gt;pcall(pairs, obj)&amp;lt;/code&amp;gt; to be successful unless &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt; is a table so whereas it is more pure to test for that, it is clearer to admit that a table is what works. I see that the function returns true if given &amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; (an empty table) and that seems desirable. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 07:16, 10 July 2021 (UTC)&lt;br /&gt;
::::{{re|Johnuniq}} &amp;lt;code&amp;gt;pcall(pairs, obj)&amp;lt;/code&amp;gt; would work if &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt; implements &amp;lt;code&amp;gt;__pairs&amp;lt;/code&amp;gt;. Although &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt; would technically still be a table, it could have a custom type (by overriding &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;, which is what [[Module:Lua class]] does). Do you think it would be better to name my function something different (isArrayLike) then? The original one could have your tweak too. [[User:Alexiscoutinho|Alexiscoutinho]] ([[User talk:Alexiscoutinho|talk]]) 15:23, 10 July 2021 (UTC)&lt;br /&gt;
:::::Yikes, I hadn&#039;t absorbed that [[Module:Lua class]] was seriously implementing classes. The question becomes a matter of what approach would be best in the long term, given that modules are (or will be) maintained by Wikipedians who might struggle when faced with code that has no apparent starting point or path of execution (which is the consequence of fully using classes). Also, consistency is important and isArray would look out-of-place in [[Module:TableTools]] if it is the only function with &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt; as the parameter and which tests for the method it is going to use rather than the variable type. I&#039;m highly pragmatic and would use the naive code I put above, but you have a reason for wanting the proper implementation and that&#039;s ok by me. Regarding pragmatism, the heading comment for isArray (with its mention of a table) might be confusing, but a fully correct comment would be three times longer with the new code. Regarding duplicating the function, that&#039;s ugly as I&#039;m sure you know. I haven&#039;t done anything with this module and I&#039;m not sure why I&#039;m watching here, although I have commented a couple of times. In other words, I&#039;m happy for you to do whatever is wanted. It might be best to try something in the sandbox, preferably also fixing the deepCopy bug I mentioned, then update the module. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 02:21, 11 July 2021 (UTC)&lt;br /&gt;
::::::I personally think that learning to maintain class based modules is just as easy as function based ones. For more complex modules, I think OOP greatly improves readability/understanding for anyone for many reasons, e.g. variables wouldn&#039;t have to be carried everywhere in function signatures. Of course, simpler modules might not need classes. It&#039;s just a matter of using it where it&#039;s appropriate. I agree it wouldn&#039;t be symmetrical if &amp;lt;code&amp;gt;isArray&amp;lt;/code&amp;gt; received &amp;lt;code&amp;gt;obj&amp;lt;/code&amp;gt;, thus I will propose &amp;lt;code&amp;gt;isArrayLike&amp;lt;/code&amp;gt; instead. Since these functions are so small, I don&#039;t think a small duplication would be bad. The two functions would have their own different use cases too. [[User:Alexiscoutinho|Alexiscoutinho]] ([[User talk:Alexiscoutinho|talk]]) 21:04, 11 July 2021 (UTC)&lt;br /&gt;
:::::::To stick up for functions, at least you can tell what the inputs are! I&#039;m happy for you to edit as wanted and there doesn&#039;t appear to be anyone else with an opinion so please go for it. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 22:32, 11 July 2021 (UTC)&lt;br /&gt;
@Alexiscoutinho: I checked your edit to [[Module:TableTools/sandbox]] and it looks good, thanks. You will see that I removed trailing whitespace and removed two unused functions added to the sandbox on 22 February 2021 because I don&#039;t think we should add functions without a specified use. After my minor tweaks, along with your comment changes (a very good idea to make them consistent), it is now a nightmare to compare the main module with the sandbox, but I believe the change is good.&lt;br /&gt;
{{#invoke:convert/tester|compare|TableTools}}&lt;br /&gt;
[[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 05:37, 12 July 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Protected edit request on 25 July 2021 ===&lt;br /&gt;
{{edit fully-protected|Module:TableTools|answered=y}}&lt;br /&gt;
This request is to implement all the changes made to the sandbox until this time. The differences can be checked with the diff link of the above section. Summarizing changes: improved module formatting; improved isArray; added isArrayLike; fixed _deepCopy; and improved defaultKeySort. [[User:Alexiscoutinho|Alexiscoutinho]] ([[User talk:Alexiscoutinho|talk]]) 14:27, 25 July 2021 (UTC)&lt;br /&gt;
:Sorry this has taken so long to get to. {{done}}, on assurances this has been tested by you and also checked by Johnuniq. &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 10:42, 4 October 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
== keySort documentation or examples please ==&lt;br /&gt;
&lt;br /&gt;
Could someone add to documentation, or point to good live examples, of the &#039;&#039;&#039;{{para|keySort}}&#039;&#039;&#039; &#039;&#039;function&#039;&#039;, as used in {{slink|Module:TableTools|keysToList|nopage=true}} and {{slink|Module:TableTools|sortedPairs|nopage=true}}? Related to [[:mw:Extension:Scribunto/Lua_reference_manual#table.sort|Lua manual:table.sort]]? I need a simple non-numerical sort ;-) Thx. -[[User:DePiep|DePiep]] ([[User talk:DePiep|talk]]) 10:19, 20 November 2021 (UTC)&lt;br /&gt;
:If you provide a short example of dummy data to be sorted I&#039;ll have a look. As a quick example, if &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; is a list of values each of which might be a number or a string, the following would sort the table so numbers are sorted before strings.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
table.sort(keys, function (a, b)&lt;br /&gt;
    if type(a) == type(b) then&lt;br /&gt;
        return a &amp;lt; b&lt;br /&gt;
    elseif type(a) == &#039;number&#039; then&lt;br /&gt;
        return true&lt;br /&gt;
    end&lt;br /&gt;
end)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:[[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 23:29, 20 November 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Improved NaN handling ==&lt;br /&gt;
&lt;br /&gt;
{{edit template-protected|Module:TableTools|answered=y}}&lt;br /&gt;
Please pull in [[Special:Diff/1048120640/1060800426|my changes from the sandbox]] that correct issues with NaN handling. I already [[Special:Diff/1060767140/prev|updated the testcases]] (I first made them fail and then fixed the issue in the sandbox). I considered further simplifying {{code|isNaN|lua}} since I believe NaNs are the only values in Lua that fail the not equal to self test but it might be possible with external code, e.g., userdata (but I believe Scribunto uses none of that). That said, anything not equal to itself probably should not be considered for removal in {{code|removeDuplicates|lua}}. In Lua, NaNs are always an issue when attempting to use arbitrary table values as table keys (unlike {{code|nil|lua}} which cannot be used as a table value or key and mostly come into play when dealing with sparse tables or arbitrary expression lists). —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 19:37, 17 December 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
{{ping|Verdy p|Johnuniq|Anomie}} It should be noted that both {{code|nil|lua}} and NaN values cannot be table keys, however, it is not an error to attempt to index a table with such values. Lua will throw errors preventing these values from being used as actual keys (i.e., {{code|rawset(tableX, nil, true)|lua}} and {{code|rawset(tableX, 0/0, true)|lua}} are guaranteed to error) but these values can be handled in index and newindex events (via {{code|__index|lua}} and {{code|__newindex|lua}} metamethods) without issue. As an example, I [[Special:Diff/1060785316/prev|initially modified]] {{code|listToSet|lua}} to consider all NaN values as if they were the same (i.e., if there is at least one NaN in the input array, indexing the returned set with any NaN yeilds {{code|true|lua}}) but decided that was not particularly useful, given Lua considers them never equal to any value (including other NaNs or even themselves). If that is considered valuable we could revert to such. —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 19:37, 17 December 2021 (UTC)&lt;br /&gt;
:Thanks but the sandbox p.listToSet has a typo due to use of &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; in p.invert and &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; in p.listToSet. It&#039;s probably best to use &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; in both of them. By the way, the ping did not work because it was added in an edit of the comment. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 00:50, 18 December 2021 (UTC)&lt;br /&gt;
::{{re|Johnuniq}} the mispaste was easily fixed but I cleaned up the variables across the functions anyway. Thanks. —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 22:43, 30 December 2021 (UTC)&lt;br /&gt;
:::I&#039;m not going to think about anything remotely tricky for at least a week. Someone else might want to action this but I&#039;m posting to let you know that if nothing happens you might ping me in ten days. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 23:30, 30 December 2021 (UTC)&lt;br /&gt;
:{{re|Uzume|Johnuniq}} is this still being worked on, or is there an agreeable version ready to go? — [[User:Xaosflux|&amp;lt;span style=&amp;quot;color:#FF9933; font-weight:bold; font-family:monotype;&amp;quot;&amp;gt;xaosflux&amp;lt;/span&amp;gt;]] &amp;lt;sup&amp;gt;[[User talk:Xaosflux|&amp;lt;span style=&amp;quot;color:#009933;&amp;quot;&amp;gt;Talk&amp;lt;/span&amp;gt;]]&amp;lt;/sup&amp;gt; 15:29, 10 January 2022 (UTC)&lt;br /&gt;
::{{re|Xaosflux}} As far as I am concerned the version in the current sandbox is &amp;quot;ready to go&amp;quot;. I have rectified the one issue {{U|Johnuniq}} found since I originally made the request. —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 16:10, 10 January 2022 (UTC)&lt;br /&gt;
:::I looked at the new code. There is another problem at line 67 due to replacement of &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;arr&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;p.removeDuplicates&amp;lt;/code&amp;gt; in two of the three places where &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; was used. I will have a look at what should be done but introducing &amp;lt;code&amp;gt;arr&amp;lt;/code&amp;gt; when the rest of the module uses &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; is not desirable and I suspect the new &amp;lt;code&amp;gt;arr&amp;lt;/code&amp;gt; should go. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 02:47, 11 January 2022 (UTC)&lt;br /&gt;
::::{{re|Johnuniq|Xaosflux}} That too was easily rectified. Please find the fixes in the current sandbox. Thank you, —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 20:10, 27 January 2022 (UTC)&lt;br /&gt;
:::::That looks good. However now we need to think about whether a module used on 4.9 million pages should be updated with some nice-to-have improvements that are very unlikely to make a practical difference. I&#039;m happy either way but will wait in the hope that someone else makes that decision. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 02:20, 28 January 2022 (UTC)&lt;br /&gt;
::::::{{re|Johnuniq}} I find it amusing you consider correcting a bug in the NaN handling &amp;quot;some nice-to-have improvements that are very unlikely to make a practical difference&amp;quot;. Such is certainly true if one never has any NaN values anywhere but clearly it has (broken) NaN support so apparently someone needed that. This was the main reason for updating the testcases first (to demonstrate the brokenness and subsequently rectify such). —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 13:12, 30 January 2022 (UTC)&lt;br /&gt;
::::::I&#039;ve made the changes. Thanks for working on this and Johnuniq for checking code &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 13:10, 31 January 2022 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Duplicate handling with &amp;quot;invert&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
I wonder if it would be useful to have something like {{code|invert|lua}} that supports duplicates by providing values that are arrays of indices from the original input array. —[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 19:37, 17 December 2021 (UTC)&lt;br /&gt;
:Currently, &amp;lt;code&amp;gt;p.invert({&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;a&#039;})&amp;lt;/code&amp;gt; would give &amp;lt;code&amp;gt;{a=4,b=2,c=3}&amp;lt;/code&amp;gt;. I think the proposal is that it might give &amp;lt;code&amp;gt;{a={1,4},b=2,c=3}&amp;lt;/code&amp;gt;. Perhaps, but this kind of consideration might be best handled after considering a real need at Wikipedia. Another possibility would be to throw an error if a duplicate occurs, possibly controlled by a parameter saying what should happen with duplicates. I don&#039;t think we should worry about that unless a need arises. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 01:01, 18 December 2021 (UTC)&lt;br /&gt;
::{{re|Johnuniq}} I agree about waiting for an actual need but I thought I would bring up this lack of functionality anyway. I was thinking more along the lines of: {{code|p.invert{&#039;a&#039;,&#039;b&#039;,&#039;c&#039;,&#039;a&#039;}|lua}}→{{code|{a{{=}}{1,4},b{{=}}{2},c{{=}}{3}&amp;lt;noinclude/&amp;gt;}|lua}} but you got the gist of my suggestion/observation.—[[User:Uzume|Uzume]] ([[User talk:Uzume|talk]]) 23:00, 30 December 2021 (UTC)&lt;br /&gt;
&lt;br /&gt;
== p.merge() function ==&lt;br /&gt;
&lt;br /&gt;
Hello, this module is missing one function that allows to merge multiple tables into one table. It would be nice if someone add it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function p.merge(...)&lt;br /&gt;
	local tables = { ... }&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for i, t in ipairs(tables) do&lt;br /&gt;
		checkType(&#039;merge&#039;, i, t, &#039;table&#039;)&lt;br /&gt;
		&lt;br /&gt;
		for k, v in pairs(t) do&lt;br /&gt;
			if not result[k] then&lt;br /&gt;
				result[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;p.merge({1, 2, [&amp;quot;a&amp;quot;] = &amp;quot;b&amp;quot;}, {10, [3] = 3, [&amp;quot;a&amp;quot;] = &amp;quot;a&amp;quot;}, {[&amp;quot;b&amp;quot;] = &amp;quot;test&amp;quot;})&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output: &amp;lt;code&amp;gt;{1, 2, 3, [&amp;quot;a&amp;quot;] = &amp;quot;b&amp;quot;, [&amp;quot;b&amp;quot;] = &amp;quot;test&amp;quot;}&amp;lt;/code&amp;gt; — [[User:Антрактидов|🎭 &amp;lt;span style=&amp;quot;color: #A23B6C&amp;quot;&amp;gt;Антарктидов (AKA Antraktidov)&amp;lt;/span&amp;gt;]] ([[User talk:Антрактидов|talk page]] | [[Special:Contributions/Антрактидов|contribution]]) 21:41, 13 December 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
:{{re|Антрактидов}} [[Module:Set]] already implements such merging functions of arbitrary tables with its &amp;quot;union&amp;quot; functions. [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 23:59, 22 April 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== deepEquals function ==&lt;br /&gt;
&lt;br /&gt;
@[[User:Pppery|Pppery]] You may or may not be interested in a revised version of the &amp;lt;code&amp;gt;deepEquals&amp;lt;/code&amp;gt; function currently at [[wikt:Module:table]], which I note this module lacks, which checks for structural equivalence between key/value pairs; arbitrary recursive nesting and tables-as-keys are both supported. It&#039;s got a few speed optimisations that make the code a little verbose in places, but parts could easily be simplified if you feel that&#039;s not necessary here. [[User:Theknightwho|Theknightwho]] ([[User talk:Theknightwho|talk]]) 11:24, 14 April 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Infinite loop in deepCopy ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a bug in the &amp;lt;code&amp;gt;deepCopy&amp;lt;/code&amp;gt; function which manifests with any kind of recursive table nesting. However, it&#039;s easy to fix, as you just need to cache the new copy in {{code|already_seen|lua}} before doing the {{code|pairs|lua}} loop, like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=lua&amp;gt;&lt;br /&gt;
	if type(orig) == &#039;table&#039; then&lt;br /&gt;
		copy = {}&lt;br /&gt;
		already_seen[orig] = copy&lt;br /&gt;
		for orig_key, orig_value in pairs(orig) do&lt;br /&gt;
			copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if includeMetatable then&lt;br /&gt;
			local mt = getmetatable(orig)&lt;br /&gt;
			if mt ~= nil then&lt;br /&gt;
				local mt_copy = _deepCopy(mt, includeMetatable, already_seen)&lt;br /&gt;
				setmetatable(copy, mt_copy)&lt;br /&gt;
				already_seen[mt] = mt_copy&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else -- number, string, boolean, etc&lt;br /&gt;
		copy = orig&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[User:Theknightwho|Theknightwho]] ([[User talk:Theknightwho|talk]]) 13:03, 14 April 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
:{{re|Theknightwho}} You may want to propose such changes in the sandbox. [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 00:09, 23 April 2024 (UTC)&lt;br /&gt;
::@[[User:Alexiscoutinho|Alexiscoutinho]] I&#039;ve updated &amp;lt;code&amp;gt;deepCopy&amp;lt;/code&amp;gt; with a fix in the sandbox, and introduced various optimisations, but I haven&#039;t added &amp;lt;code&amp;gt;deepEquals&amp;lt;/code&amp;gt; since I&#039;m not sure whether the WP would want table metamethods to be respected when traversing over the tables. The Wiktionary version does a strict comparison (i.e. metamethods are ignored), but that&#039;s what makes sense for our needs; however, that might be unintuitive for users who want to compare frame argument tables, for instance. [[User:Theknightwho|Theknightwho]] ([[User talk:Theknightwho|talk]]) 16:05, 24 April 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Edit request 23 April 2024 ==&lt;br /&gt;
{{Edit fully-protected|answered=yes}}&lt;br /&gt;
&lt;br /&gt;
This request is to implement all the changes made to the sandbox until this time. The differences can be checked with [https://en.wikipedia.org/w/index.php?title=Module%3ATableTools%2Fsandbox&amp;amp;diff=1220306247&amp;amp;oldid=1068321711 this diff link].&lt;br /&gt;
&lt;br /&gt;
Notably, I added the &amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;extend&amp;lt;/code&amp;gt; functions for arrays. Pretty sure such functions are standard in any language that has array-like objects. Therefore, I found it appropriate to make them available here since Scribunto apparently didn&#039;t port them from base Lua. [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 00:07, 23 April 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Guess I should add test cases. [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 18:13, 24 April 2024 (UTC)&lt;br /&gt;
::@[[User:Alexiscoutinho|Alexiscoutinho]] I don&#039;t really see any benefit from throwing an error if &amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt; only receives 1 argument; it&#039;s plausible that a module might want to merge an arbitrary number of arrays based on user input, and all this restriction does is push the check for 1 argument onto the calling module. It&#039;s the same reason you can call (e.g.) {{code|math.min()|lua}} or {{code|math.max()|lua}} with only 1 argument, despite that being pointless in many situations. [[User:Theknightwho|Theknightwho]] ([[User talk:Theknightwho|talk]]) 00:30, 25 April 2024 (UTC)&lt;br /&gt;
:::👍 [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 01:14, 25 April 2024 (UTC)&lt;br /&gt;
:::{{done}}. But I wonder if a check should exist to verify if the inputs form a sequence (i.e. not sparse table)... [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 07:09, 26 April 2024 (UTC)&lt;br /&gt;
::{{done}} aswell. This edit request is ready for review (and I guess {{u|Theknightwho}}&#039;s changes too). [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 08:03, 26 April 2024 (UTC)&lt;br /&gt;
: {{done|Copied}} over to live module. [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 01:49, 27 April 2024 (UTC)&lt;br /&gt;
::{{ty}}. [[User:Alexiscoutinho|Alexis Coutinho]] ([[User talk:Alexiscoutinho|talk]]) &amp;lt;sup&amp;gt;&amp;amp;#91;&#039;&#039;[[WP:PING|ping&amp;amp;nbsp;me]]&#039;&#039;&amp;amp;#93;&amp;lt;/sup&amp;gt; 06:07, 27 April 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Protected edit request on 14 August 2024 ==&lt;br /&gt;
&lt;br /&gt;
{{edit fully-protected|Module:TableTools|answered=yes}}&lt;br /&gt;
Replace inArray with the code from [[Module:Includes]], as done in the [[Special:Permalink/1240320809|sandbox]]. Functionality is equivalent to the current function, but it adds a &amp;quot;fromIndex&amp;quot; parameter to bring it up to feature parity with the javascript [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes Array.prototype.includes()] function. &amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;--[[User:Ahecht|Ahecht]] ([[User talk:Ahecht|&amp;lt;b style=&amp;quot;color:#FFF;background:#04A;display:inline-block;padding:1px;vertical-align:middle;font:bold 50%/1 sans-serif;text-align:center&amp;quot;&amp;gt;TALK&amp;lt;br /&amp;gt;PAGE&amp;lt;/b&amp;gt;]])&amp;lt;/span&amp;gt; 20:05, 14 August 2024 (UTC)&lt;br /&gt;
: {{done}} [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 04:19, 18 August 2024 (UTC)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Module_function_link&amp;diff=185</id>
		<title>Template:Module function link</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Module_function_link&amp;diff=185"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{safesubst:&amp;lt;noinclude /&amp;gt;#if:{{{1|}}}&lt;br /&gt;
	|&amp;amp;#123;&amp;amp;#123;{{safesubst:&amp;lt;noinclude /&amp;gt;#invoke:separated entries|main|[[Module:{{{1}}}|#invoke:{{{1}}}]]|{{safesubst:&amp;lt;noinclude /&amp;gt;#if:{{{2|/}}}&lt;br /&gt;
		|{{safesubst:&amp;lt;noinclude /&amp;gt;#if:{{{2|}}}|[[Module:{{{1}}}#{{{2}}}|{{{2}}}]]}}&lt;br /&gt;
		|&#039;&#039;function&#039;&#039;&lt;br /&gt;
	}}|separator=&amp;amp;#124;}}&amp;amp;#125;&amp;amp;#125;&lt;br /&gt;
	|{{#invoke:Error|error|Error: Missing module name.}}&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Mfl&amp;diff=183</id>
		<title>Template:Mfl</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Mfl&amp;diff=183"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Module function link]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
{{R from shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:TableTools/doc&amp;diff=181</id>
		<title>Module:TableTools/doc</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:TableTools/doc&amp;diff=181"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{used in system}}&lt;br /&gt;
{{module rating|p}}&lt;br /&gt;
{{cascade-protected template|page=module}}&lt;br /&gt;
{{lua|Module:Exponential search|noprotcat=yes}}&lt;br /&gt;
This module includes a number of functions for dealing with Lua tables. It is a meta-module, meant to be called from other Lua modules, and should not be called directly from #invoke.&lt;br /&gt;
&lt;br /&gt;
== Loading the module ==&lt;br /&gt;
&lt;br /&gt;
To use any of the functions, first you must load the module.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local TableTools = require(&#039;Module:TableTools&#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== affixNums ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.affixNums(t, prefix, suffix)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Takes a table &amp;lt;code&amp;gt;&#039;&#039;t&#039;&#039;&amp;lt;/code&amp;gt; and returns an array containing the numbers of keys with the optional prefix &amp;lt;code&amp;gt;&#039;&#039;prefix&#039;&#039;&amp;lt;/code&amp;gt; and the optional suffix &amp;lt;code&amp;gt;&#039;&#039;suffix&#039;&#039;&amp;lt;/code&amp;gt;. For example, for the table {{code|code={a1 = &#039;foo&#039;, a3 = &#039;bar&#039;, a6 = &#039;baz&#039;}|lang=lua}} and the prefix &amp;lt;code&amp;gt;&#039;a&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;affixNums&amp;lt;/code&amp;gt; will return {{code|code={1, 3, 6}|lang=lua}}. All characters in &amp;lt;code&amp;gt;&#039;&#039;prefix&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;suffix&#039;&#039;&amp;lt;/code&amp;gt; are interpreted literally.&lt;br /&gt;
&lt;br /&gt;
See {{mfl|params|call_for_each_group}} and {{mfl|params|grouping_by_calling}} for doing something similar from a wiki template.&lt;br /&gt;
&lt;br /&gt;
=== compressSparseArray ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.compressSparseArray(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Takes an array &amp;lt;code&amp;gt;&#039;&#039;t&#039;&#039;&amp;lt;/code&amp;gt; with one or more nil values, and removes the nil values while preserving the order, so that the array can be safely traversed with &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt;. Any keys that are not positive integers are removed. For example, for the table {{code|code={1, nil, foo = &#039;bar&#039;, 3, 2}|lang=lua}}, &amp;lt;code&amp;gt;compressSparseArray&amp;lt;/code&amp;gt; will return {{code|code={1, 3, 2}|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
See {{mfl|params|squeezing}} for doing something similar from a wiki template.&lt;br /&gt;
&lt;br /&gt;
=== deepCopy ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.deepCopy(orig, noMetatable, alreadySeen)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creates a copy of the table &amp;lt;code&amp;gt;&#039;&#039;orig&#039;&#039;&amp;lt;/code&amp;gt;. As with &amp;lt;code&amp;gt;mw.clone&amp;lt;/code&amp;gt;, all values that are not functions are duplicated and the identity of tables is preserved. If &amp;lt;code&amp;gt;&#039;&#039;noMetatable&#039;&#039;&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, then the metatable (if any) is not copied. Can copy tables loaded with &amp;lt;code&amp;gt;mw.loadData&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Similar to &amp;lt;code&amp;gt;mw.clone&amp;lt;/code&amp;gt;, but &amp;lt;code&amp;gt;mw.clone&amp;lt;/code&amp;gt; cannot copy tables loaded with &amp;lt;code&amp;gt;mw.loadData&amp;lt;/code&amp;gt; and does not allow metatables &amp;lt;em&amp;gt;not&amp;lt;/em&amp;gt; to be copied.&lt;br /&gt;
&lt;br /&gt;
=== extend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.extend(arr1, arr2)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extends the first array in place by appending all elements from the second array.&lt;br /&gt;
&lt;br /&gt;
=== inArray ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;TableTools.inArray(array, searchElement)&lt;br /&gt;
TableTools.inArray(array, searchElement, fromIndex)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;&#039;&#039;searchElement&#039;&#039;&amp;lt;/code&amp;gt; is a member of the array &amp;lt;code&amp;gt;&#039;&#039;array&#039;&#039;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; otherwise. Equivalent to the javascript [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes Array.prototype.includes()] function, except fromIndex is 1-indexed instead of zero-indexed.&lt;br /&gt;
&lt;br /&gt;
==== fromIndex ====&lt;br /&gt;
&amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; is the optional 1-based index at which to start searching. If &amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; is not present, all values in the array will be searched and the array will be treated as a table/[[associative array]] (it will be iterated over using &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;pairs()&amp;lt;/syntaxhighlight&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; is present and an integer, the array is assumed to be a conventional array/sequence/list (indexed with consecutive integer keys starting at &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, and interated over using &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;ipairs()&amp;lt;/syntaxhighlight&amp;gt;). Only the values whose index is &amp;lt;code&amp;gt;fromIndex&amp;lt;/code&amp;gt; or higher will be searched.&lt;br /&gt;
&lt;br /&gt;
In the following examples, &amp;lt;code&amp;gt;#array&amp;lt;/code&amp;gt; represents the length of the integer-keyed portion of the array.&lt;br /&gt;
&lt;br /&gt;
* If &amp;lt;code&amp;gt;fromIndex &amp;lt; 0&amp;lt;/code&amp;gt; it will count back from the end of the array, e.g. a value of &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; will only search the last integer-keyed element in the array. If &amp;lt;code&amp;gt;fromIndex &amp;lt;= (-1 * #array)&amp;lt;/code&amp;gt;, the entire integer-keyed portion of the array will be searched.&lt;br /&gt;
* If &amp;lt;code&amp;gt;fromIndex = 0&amp;lt;/code&amp;gt; it will be treated as a &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and the entire integer-keyed portion of the array will be searched.&lt;br /&gt;
* If &amp;lt;code&amp;gt;fromIndex &amp;gt; #array&amp;lt;/code&amp;gt;, the array is not searched and &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; is returned.&lt;br /&gt;
&lt;br /&gt;
=== invert ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.invert(arr)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transposes the keys and values in an array. For example, {{code|invert{ &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; }|lua}} yields {{code|code={ a=1, b=2, c=3 }|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
=== isArray ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isArray(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;&#039;&#039;value&#039;&#039;&amp;lt;/code&amp;gt; is a table and all keys are consecutive integers starting at 1.&lt;br /&gt;
&lt;br /&gt;
=== isArrayLike ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isArrayLike(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;&#039;&#039;value&#039;&#039;&amp;lt;/code&amp;gt; is iterable and all keys are consecutive integers starting at 1.&lt;br /&gt;
&lt;br /&gt;
=== isNan ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isNan(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;&#039;&#039;value&#039;&#039;&amp;lt;/code&amp;gt; is a [[NaN]] value, and &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; if not. Although it doesn&#039;t operate on tables, it is included here as it is useful for determining whether a value can be a valid table key. (Lua will generate an error if a NaN value is used as a table key.)&lt;br /&gt;
&lt;br /&gt;
=== isPositiveInteger ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.isPositiveInteger(value)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;&#039;&#039;value&#039;&#039;&amp;lt;/code&amp;gt; is a positive integer, and &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; if not. Although it doesn&#039;t operate on tables, it is included here as it is useful for determining whether a given table key is in the array part or the hash part of a table.&lt;br /&gt;
&lt;br /&gt;
=== keysToList ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.keysToList(t, keySort, checked)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a list of the keys in a table, sorted using either a default comparison function or a custom &amp;lt;code&amp;gt;&#039;&#039;keySort&#039;&#039;&amp;lt;/code&amp;gt; function, which follows the same rules as the &amp;lt;code&amp;gt;comp&amp;lt;/code&amp;gt; function supplied to &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual#table.sort|table.sort]]&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;&#039;&#039;keySort&#039;&#039;&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, no sorting is done. Set &amp;lt;code&amp;gt;&#039;&#039;checked&#039;&#039;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; to skip the internal type checking.&lt;br /&gt;
&lt;br /&gt;
=== length ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.length(t, prefix)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finds the length of an array or of a quasi-array with keys with an optional &amp;lt;code&amp;gt;&#039;&#039;prefix&#039;&#039;&amp;lt;/code&amp;gt; such as &amp;quot;data1&amp;quot;, &amp;quot;data2&amp;quot;, etc. It uses an [[exponential search]] algorithm to find the length, so as to use as few table lookups as possible.&lt;br /&gt;
&lt;br /&gt;
This algorithm is useful for arrays that use metatables (e.g. [[mw:Extension:Scribunto/Lua reference manual#frame.args|frame.args]]) and for quasi-arrays. For normal arrays, just use the [[mw:Extension:Scribunto/Lua reference manual#Length operator|# operator]], as it is implemented in [[C (programming language)|C]] and will be quicker.&lt;br /&gt;
&lt;br /&gt;
=== listToSet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.listToSet(arr)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creates a set from the array part of the table &amp;lt;code&amp;gt;&#039;&#039;arr&#039;&#039;&amp;lt;/code&amp;gt;. Indexing the set by any of the values of the array returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;. For example, {{code|listToSet{ &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; }|lua}} yields {{code|code={ a=true, b=true, c=true }|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
=== merge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.merge(...)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the arrays, returns an array containing the elements of each input array in sequence.&lt;br /&gt;
&lt;br /&gt;
=== numData ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.numData(t, compress)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given a table with keys like &amp;lt;code&amp;gt;&amp;quot;foo1&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;bar1&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;foo2&amp;quot;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&amp;quot;baz2&amp;quot;&amp;lt;/code&amp;gt;, returns a table of subtables in the format {{code|code={ [1] = {foo = &#039;text&#039;, bar = &#039;text&#039;}, [2] = {foo = &#039;text&#039;, baz = &#039;text&#039;} }|lang=lua}}. Keys that don&#039;t end with an integer are stored in a subtable named &amp;lt;code&amp;gt;&amp;quot;other&amp;quot;&amp;lt;/code&amp;gt;. The compress option compresses the table so that it can be iterated over with &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== numKeys ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.numKeys(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Takes a table &amp;lt;code&amp;gt;&#039;&#039;t&#039;&#039;&amp;lt;/code&amp;gt; and returns an array containing the numbers of any positive integer keys that have non-nil values, sorted in numerical order. For example, for the table {{code|code={&#039;foo&#039;, nil, &#039;bar&#039;, &#039;baz&#039;, a = &#039;b&#039;}|lang=lua}}, &amp;lt;code&amp;gt;numKeys&amp;lt;/code&amp;gt; will return {{code|code={1, 3, 4}|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
=== removeDuplicates ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.removeDuplicates(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Removes duplicate values from an array. This function is only designed to work with standard arrays: keys that are not positive integers are ignored, as are all values after the first &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; value. (For arrays containing &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; values, you can use &amp;lt;code&amp;gt;[[#compressSparseArray|compressSparseArray]]&amp;lt;/code&amp;gt; first.) The function tries to preserve the order of the array: the earliest non-unique value is kept, and all subsequent duplicate values are removed. For example, for the table {{code|code={5, 4, 4, 3, 4, 2, 2, 1}|lang=lua}} &amp;lt;code&amp;gt;removeDuplicates&amp;lt;/code&amp;gt; will return {{code|code={5, 4, 3, 2, 1}|lang=lua}}.&lt;br /&gt;
&lt;br /&gt;
=== shallowClone ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.shallowClone(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a clone of a table. The value returned is a new table, but all subtables and functions are shared. Metamethods are respected, but the returned table will have no metatable of its own. If you want to make a new table with no shared subtables and with metatables transferred, you can use &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual#mw.clone|mw.clone]]&amp;lt;/code&amp;gt; instead. If you want to make a new table with no shared subtables and without metatables transferred, use &amp;lt;code&amp;gt;[[#deepCopy|deepCopy]]&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;noMetatable&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
=== size ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.size(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finds the size of a key/value pair table ([[associative array]]). For example, for {{code|code={foo = &#039;foo&#039;, bar = &#039;bar&#039;}|lang=lua}}, &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; will return &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. The function will also work on arrays, but for arrays it is more efficient to use the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; operator. Note that to find the size, this function uses the &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual#pairs|pairs]]&amp;lt;/code&amp;gt; function to iterate through all of the keys.&lt;br /&gt;
&lt;br /&gt;
=== sortedPairs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.sortedPairs(t, keySort)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterates through a table, with the keys sorted using the &amp;lt;code&amp;gt;keysToList&amp;lt;/code&amp;gt; function. If there are only numerical keys, &amp;lt;code&amp;gt;sparseIpairs&amp;lt;/code&amp;gt; is probably more efficient.&lt;br /&gt;
&lt;br /&gt;
=== sparseConcat ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.sparseConcat(t, sep, i, j)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Concatenates all values in the table that are indexed by a positive integer, in order. For example, {{code|sparseConcat{ &amp;quot;a&amp;quot;, nil, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot; }|lua}} yields {{code|&amp;quot;acd&amp;quot;|lua}} and {{code|sparseConcat{ nil, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot; }|lua}} yields {{code|&amp;quot;bcd&amp;quot;|lua}}.&lt;br /&gt;
&lt;br /&gt;
=== sparseIpairs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
TableTools.sparseIpairs(t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an iterator function for traversing a sparse array &amp;lt;code&amp;gt;&#039;&#039;t&#039;&#039;&amp;lt;/code&amp;gt;. It is similar to &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual#ipairs|ipairs]]&amp;lt;/code&amp;gt;, but will continue to iterate until the highest numerical key, whereas &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt; may stop after the first &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; value. Any keys that are not positive integers are ignored.&lt;br /&gt;
&lt;br /&gt;
Usually &amp;lt;code&amp;gt;sparseIpairs&amp;lt;/code&amp;gt; is used in a generic &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
for i, v in TableTools.sparseIpairs(t) do&lt;br /&gt;
   -- code block&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;sparseIpairs&amp;lt;/code&amp;gt; uses the &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua reference manual#pairs|pairs]]&amp;lt;/code&amp;gt; function in its implementation. Although some table keys appear to be ignored, all table keys are accessed when it is run.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{ml|params|}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
[[Category:Lua metamodules|TableTools]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/T&amp;diff=179</id>
		<title>Module:Transclusion count/data/T</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/T&amp;diff=179"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
[&amp;quot;T&amp;quot;] = 324000,&lt;br /&gt;
[&amp;quot;T1&amp;quot;] = 9000,&lt;br /&gt;
[&amp;quot;T:TDYK&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;TAFI/Picture_box&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;TBA&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;TCH&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;TCMDb_name&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;TCMDb_title&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;TDMCA&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;TERYT&amp;quot;] = 53000,&lt;br /&gt;
[&amp;quot;TFAFULL&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;TFAIMAGE&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;TFAfooter&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;TFArecentlist&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;THA&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;TOC_bottom&amp;quot;] = 86000,&lt;br /&gt;
[&amp;quot;TOC_left&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;TOC_left/styles.css&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;TOC_limit&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;TOC_limit/styles.css&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;TOC_right&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;TOC_right/styles.css&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;TOC_top&amp;quot;] = 86000,&lt;br /&gt;
[&amp;quot;TOC_top/styles.css&amp;quot;] = 86000,&lt;br /&gt;
[&amp;quot;TOClimit&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;TOCright&amp;quot;] = 7500,&lt;br /&gt;
[&amp;quot;TPE&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;TUN&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;TUR&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;TVDebutsEndingsAntonym&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;TWA/Logo/3&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;TWA/Navigation2&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;TWA_nav_inner_black&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;Tab&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Tab/Number_of_defined_parameters&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Tab/styles.css&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;TableTBA&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Table_alignment&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Table_alignment/styles.css&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Tag&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;Talk&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Talk_Header&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Talk_archive&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Talk_archive_navigation&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Talk_header&amp;quot;] = 830000,&lt;br /&gt;
[&amp;quot;Talk_header/archivebotparse&amp;quot;] = 113000,&lt;br /&gt;
[&amp;quot;Talk_header/styles.css&amp;quot;] = 830000,&lt;br /&gt;
[&amp;quot;Talk_other&amp;quot;] = 4410000,&lt;br /&gt;
[&amp;quot;Talk_page&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Talk_page_header&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Talk_page_of_a_redirect&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Talk_page_of_redirect&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Talk_page_stalker&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Talk_page_watcher&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Talk_quote&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Talk_quote_block&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Talk_quote_block/styles.css&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Talk_quote_inline&amp;quot;] = 170000,&lt;br /&gt;
[&amp;quot;Talk_quote_inline/styles.css&amp;quot;] = 170000,&lt;br /&gt;
[&amp;quot;Talk_quote_inline_with_italics&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Talk_quote_inline_with_quotes&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Talkarchive&amp;quot;] = 116000,&lt;br /&gt;
[&amp;quot;Talkarchivenav&amp;quot;] = 31000,&lt;br /&gt;
[&amp;quot;Talkback&amp;quot;] = 65000,&lt;br /&gt;
[&amp;quot;Talkheader&amp;quot;] = 118000,&lt;br /&gt;
[&amp;quot;Talkpage&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Talkquote&amp;quot;] = 9100,&lt;br /&gt;
[&amp;quot;Talkref&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Talkspace_detect&amp;quot;] = 550000,&lt;br /&gt;
[&amp;quot;Tallyho&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Tan&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Task_force_assessment_category&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Task_force_assessment_category/core&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Tasks&amp;quot;] = 922000,&lt;br /&gt;
[&amp;quot;Taxobox&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Taxobox/Error_colour&amp;quot;] = 502000,&lt;br /&gt;
[&amp;quot;Taxobox/core&amp;quot;] = 501000,&lt;br /&gt;
[&amp;quot;Taxobox/core/styles.css&amp;quot;] = 502000,&lt;br /&gt;
[&amp;quot;Taxobox/species&amp;quot;] = 198000,&lt;br /&gt;
[&amp;quot;Taxobox_colour&amp;quot;] = 651000,&lt;br /&gt;
[&amp;quot;Taxon_author&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Taxon_info&amp;quot;] = 540000,&lt;br /&gt;
[&amp;quot;Taxon_italics&amp;quot;] = 390000,&lt;br /&gt;
[&amp;quot;Taxonbar&amp;quot;] = 498000,&lt;br /&gt;
[&amp;quot;Taxonbar/candidate&amp;quot;] = 496000,&lt;br /&gt;
[&amp;quot;Taxonomy&amp;quot;] = 396000,&lt;br /&gt;
[&amp;quot;Taxonomy/Acalyptratae&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Taxonomy/Acanthomorpha&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Taxonomy/Acanthopterygii&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Taxonomy/Acrididea&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Actinomycetes&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Actinomycetota&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Actinopteri&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Taxonomy/Actinopterygii&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Taxonomy/Aculeata&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;Taxonomy/Adephaga&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Taxonomy/Afrophidia&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Taxonomy/Agaricales&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Taxonomy/Agaricomycetes&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Taxonomy/Agaricomycetidae&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Taxonomy/Agaricomycotina&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Taxonomy/Alethinophidia&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Taxonomy/Allotriocarida&amp;quot;] = 262000,&lt;br /&gt;
[&amp;quot;Taxonomy/Alphaproteobacteria&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Amastigomycota&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ambulacraria&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ammonoidea&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Amniota&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Taxonomy/Amorphea&amp;quot;] = 512000,&lt;br /&gt;
[&amp;quot;Taxonomy/Amphibia&amp;quot;] = 9000,&lt;br /&gt;
[&amp;quot;Taxonomy/Amphiesmenoptera&amp;quot;] = 116000,&lt;br /&gt;
[&amp;quot;Taxonomy/Angiosperms&amp;quot;] = 103000,&lt;br /&gt;
[&amp;quot;Taxonomy/Animalia&amp;quot;] = 487000,&lt;br /&gt;
[&amp;quot;Taxonomy/Antennoclypeata&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Taxonomy/Anthophila&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Anthozoa&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Antliophora&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Anura&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Taxonomy/Aparaglossata&amp;quot;] = 221000,&lt;br /&gt;
[&amp;quot;Taxonomy/Apiales&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Apo-Chiroptera&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Apocrita&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Apoditrysia&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Taxonomy/Apoidea&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Taxonomy/Arachnida&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Taxonomy/Arachnopulmonata&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Araneae&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Araneoidea&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Araneomorphae&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Taxonomy/Archaeplastida&amp;quot;] = 112000,&lt;br /&gt;
[&amp;quot;Taxonomy/Archelosauria&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Taxonomy/Archipini&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Archosauria&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Archosauria/skip&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Archosauriformes&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Taxonomy/Archosauromorpha&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Taxonomy/Arctiinae&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Arctiini&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Taxonomy/Arthropoda&amp;quot;] = 303000,&lt;br /&gt;
[&amp;quot;Taxonomy/Artiodactyla&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Artiofabula&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Artiopoda&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Aschiza&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Ascomycota&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Taxonomy/Asilomorpha&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Taxonomy/Asparagales&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Asteraceae&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;Taxonomy/Asterales&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Taxonomy/Asterids&amp;quot;] = 31000,&lt;br /&gt;
[&amp;quot;Taxonomy/Asteroideae&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Taxonomy/Auchenorrhyncha&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Australaves&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Avemetatarsalia&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Taxonomy/Avemetatarsalia/skip&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Aves&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Avicularioidea&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/BOP_clade&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Bacillati&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Taxonomy/Bacillota&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Bacteria&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Taxonomy/Basidiomycota&amp;quot;] = 8200,&lt;br /&gt;
[&amp;quot;Taxonomy/Batrachia&amp;quot;] = 8700,&lt;br /&gt;
[&amp;quot;Taxonomy/Batrachomorpha&amp;quot;] = 9100,&lt;br /&gt;
[&amp;quot;Taxonomy/Bilateria&amp;quot;] = 481000,&lt;br /&gt;
[&amp;quot;Taxonomy/Bivalvia&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Bombycoidea&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Taxonomy/Boreoeutheria&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Brachycera&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Taxonomy/Brachyura&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Bromeliaceae&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Buccinoidea&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/CAM&amp;quot;] = 112000,&lt;br /&gt;
[&amp;quot;Taxonomy/Caelifera&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Caenogastropoda&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Caenophidia&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Caesalpinioideae&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Calyptratae&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Taxonomy/Campanulids&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Carabidae&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Caraboidea&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Caryophyllales&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Taxonomy/Cassidinae&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Taxonomy/Cephalopoda&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Taxonomy/Cerambycidae&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Taxonomy/Cerambycinae&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;Taxonomy/Cetruminantia&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Chelicerata&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Taxonomy/Chiroptera&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Choanozoa&amp;quot;] = 487000,&lt;br /&gt;
[&amp;quot;Taxonomy/Chondrichthyes&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Chordata&amp;quot;] = 112000,&lt;br /&gt;
[&amp;quot;Taxonomy/Chrysomelidae&amp;quot;] = 7500,&lt;br /&gt;
[&amp;quot;Taxonomy/Chrysomeloidea&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;Taxonomy/Cicadomorpha&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Cimicomorpha&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Clupeocephala&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Taxonomy/Cnidaria&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Coccinellidae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Coccinelloidea&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Coelolepida&amp;quot;] = 115000,&lt;br /&gt;
[&amp;quot;Taxonomy/Coleoptera&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Taxonomy/Coleopterida&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Taxonomy/Colubridae&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Colubroidea&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Colubroides&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Commelinids&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Conchifera&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Taxonomy/Condylognatha&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Taxonomy/Conoidea&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Taxonomy/Core_eudicots&amp;quot;] = 69000,&lt;br /&gt;
[&amp;quot;Taxonomy/Cosmopterigidae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Cossoidea&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Crambidae&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Crambinae&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Crocopoda&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Taxonomy/Ctenosquamata&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Cucujiformia&amp;quot;] = 48000,&lt;br /&gt;
[&amp;quot;Taxonomy/Curculionidae&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Taxonomy/Curculionoidea&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Cyclorrhapha&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Cyperaceae&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Cypriniformes&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Taxonomy/Cypriniphysi&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Taxonomy/Cyprinoidei&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Taxonomy/Decapoda&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Dendrobiinae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Depressariidae&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Deuteropoda&amp;quot;] = 303000,&lt;br /&gt;
[&amp;quot;Taxonomy/Deuterostomia&amp;quot;] = 115000,&lt;br /&gt;
[&amp;quot;Taxonomy/Diaphoretickes&amp;quot;] = 116000,&lt;br /&gt;
[&amp;quot;Taxonomy/Diaphoretickes/showdomain&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Taxonomy/Diapsida&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Dicondylia&amp;quot;] = 259000,&lt;br /&gt;
[&amp;quot;Taxonomy/Dictyoptera&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Dikarya&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Dinosauria&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Dinosauria/skip&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Dinosauromorpha&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Diptera&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ditrysia&amp;quot;] = 113000,&lt;br /&gt;
[&amp;quot;Taxonomy/Doryloformicia&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Dothideomyceta&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;Taxonomy/Dothideomycetes&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Ecdysozoa&amp;quot;] = 306000,&lt;br /&gt;
[&amp;quot;Taxonomy/Echinodermata&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Elasmobranchii&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Elateriformia&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Elpistostegalia&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Embryophytes&amp;quot;] = 109000,&lt;br /&gt;
[&amp;quot;Taxonomy/Embryophytes/Plantae&amp;quot;] = 109000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ennominae&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Ensifera&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Entelegynae&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Taxonomy/Eotetrapodiformes&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Epidendroideae&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Taxonomy/Erebidae&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eremoneura&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ericales&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Taxonomy/Euarchontoglires&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Taxonomy/Eucarida&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Taxonomy/Eucrocopoda&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Taxonomy/Eudicots&amp;quot;] = 73000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eufalconimorphae&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Euformicia&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Taxonomy/Eugnathostomata&amp;quot;] = 110000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eukaryota&amp;quot;] = 629000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eukaryota/displayed&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Taxonomy/Eulepidoptera&amp;quot;] = 113000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eumalacostraca&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Taxonomy/Eumetabola&amp;quot;] = 247000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eumetazoa&amp;quot;] = 485000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eupasseres&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;Taxonomy/Eupercaria&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Taxonomy/Euphyllophytes&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eupitheciini&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eupulmonata&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Taxonomy/Eureptilia&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eurypterygii&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Euselachii&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Euteleostei&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Eutheria&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Taxonomy/Euthyneura&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Euungulata&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Taxonomy/Fabaceae&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Taxonomy/Fabales&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Taxonomy/Fabids&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Faboideae&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Taxonomy/Ferae&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Ferungulata&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Taxonomy/Filozoa&amp;quot;] = 487000,&lt;br /&gt;
[&amp;quot;Taxonomy/Formicidae&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Taxonomy/Formicoidea&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Taxonomy/Fungi&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Gamasina&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Gastropoda&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Taxonomy/Gekkonoidea&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Gekkonomorpha&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Gekkota&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Gelechiidae&amp;quot;] = 6100,&lt;br /&gt;
[&amp;quot;Taxonomy/Gelechiinae&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Gelechioidea&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Gentianales&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Taxonomy/Geometridae&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Geometroidea&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Glires&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Taxonomy/Gliriformes&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Taxonomy/Glossata&amp;quot;] = 115000,&lt;br /&gt;
[&amp;quot;Taxonomy/Gnathostomata&amp;quot;] = 111000,&lt;br /&gt;
[&amp;quot;Taxonomy/Gracillariidae&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Gracillarioidea&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Graminid_clade&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Taxonomy/Halvaria&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Helicina_(suborder)&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Taxonomy/Hemiptera&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Taxonomy/Hesperiidae&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Heterobranchia&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Heteroneura&amp;quot;] = 114000,&lt;br /&gt;
[&amp;quot;Taxonomy/Heteroptera&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Taxonomy/Hexapoda&amp;quot;] = 262000,&lt;br /&gt;
[&amp;quot;Taxonomy/Holometabola&amp;quot;] = 235000,&lt;br /&gt;
[&amp;quot;Taxonomy/Holomycota&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Holozoa&amp;quot;] = 487000,&lt;br /&gt;
[&amp;quot;Taxonomy/Hyloidea&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Taxonomy/Hymenoptera&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Taxonomy/Hymenopterida&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Taxonomy/Iguania&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Iguanomorpha&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Insecta&amp;quot;] = 260000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lamiales&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Taxonomy/Lamiids&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lamiinae&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Taxonomy/Larentiinae&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Taxonomy/Laurasiatheria&amp;quot;] = 9100,&lt;br /&gt;
[&amp;quot;Taxonomy/Lecanoromycetes&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Taxonomy/Lecanoromycetidae&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Taxonomy/Leotiomyceta&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lepidoptera&amp;quot;] = 116000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lepidosauria&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lepidosauromorpha&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Life&amp;quot;] = 646000,&lt;br /&gt;
[&amp;quot;Taxonomy/Linyphiidae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Lissamphibia&amp;quot;] = 9000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lithosiini&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Taxonomy/Littorinimorpha&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Taxonomy/Lophotrochozoa&amp;quot;] = 56000,&lt;br /&gt;
[&amp;quot;Taxonomy/Lycaenidae&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Taxonomy/Macroheterocera&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Taxonomy/Magnoliids&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Malacostraca&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;Taxonomy/Malaxideae&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Malpighiales&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Taxonomy/Malvales&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Malvids&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Mammalia&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Mammalia/skip&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Mandibulata&amp;quot;] = 274000,&lt;br /&gt;
[&amp;quot;Taxonomy/Melolonthinae&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Meso-Papilionoideae&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Mesostigmata&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Mollusca&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Taxonomy/Monocots&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Taxonomy/Monogynaspida&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Multicrustacea&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;Taxonomy/Muricidae&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Muricoidea&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Muroidea&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Muscomorpha&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Mygalomorphae&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Myoglossata&amp;quot;] = 115000,&lt;br /&gt;
[&amp;quot;Taxonomy/Myomorpha&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Myriapoda&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Myrtaceae&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Taxonomy/Myrtales&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Taxonomy/Myrtoideae&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Taxonomy/Nematocera&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Taxonomy/Neoaves&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neobatrachia&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Taxonomy/Neocephalopoda&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Neodiapsida&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neogastropoda&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neognathae&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neolepidoptera&amp;quot;] = 115000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neoptera&amp;quot;] = 255000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neopterygii&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neoreptilia&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neoteleostei&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Nephrozoa&amp;quot;] = 481000,&lt;br /&gt;
[&amp;quot;Taxonomy/Neuropteroidea&amp;quot;] = 81000,&lt;br /&gt;
[&amp;quot;Taxonomy/Noctuidae&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Taxonomy/Noctuinae&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Noctuoidea&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Taxonomy/Non-protein_amino_acid-accumulating_clade&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Nudibranchia&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Nudipleura&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Nymphalidae&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Obazoa&amp;quot;] = 512000,&lt;br /&gt;
[&amp;quot;Taxonomy/Obtectomera&amp;quot;] = 72000,&lt;br /&gt;
[&amp;quot;Taxonomy/Odonata&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Odonatoptera&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Oestroidea&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Taxonomy/Olfactores&amp;quot;] = 112000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ophidia&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Taxonomy/Opisthokonta&amp;quot;] = 512000,&lt;br /&gt;
[&amp;quot;Taxonomy/Opisthothelae&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Orchidaceae&amp;quot;] = 8000,&lt;br /&gt;
[&amp;quot;Taxonomy/Orchidoideae&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Ornithodira&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ornithurae&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ornithurae/skip&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Orthoptera&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Taxonomy/Ostariophysi&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Taxonomy/Osteichthyes&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Taxonomy/Otocephala&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Otophysi&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ovalentaria&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Taxonomy/Palaeoptera&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Taxonomy/Pan-Carnivora&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Pan-Euteleostei&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pan-Euungulata&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Taxonomy/Panarthropoda&amp;quot;] = 303000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pancrustacea&amp;quot;] = 271000,&lt;br /&gt;
[&amp;quot;Taxonomy/Panorpida&amp;quot;] = 140000,&lt;br /&gt;
[&amp;quot;Taxonomy/Panpulmonata&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;Taxonomy/Pantetrapulmonata&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Papilionoidea&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/ParaHoxozoa&amp;quot;] = 485000,&lt;br /&gt;
[&amp;quot;Taxonomy/Paraneoptera&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Parapleurota&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Taxonomy/Parasitiformes&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Taxonomy/Paraxonia&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Passerea&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Passeri&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Taxonomy/Passerida&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Taxonomy/Passerides&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Taxonomy/Passeriformes&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;Taxonomy/Pentatomomorpha&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Peracarida&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Perciformes&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Percomorpha&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pezizomycotina&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Phycitinae&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Phytophaga&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Taxonomy/Placentalia&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Taxonomy/Plantae&amp;quot;] = 111000,&lt;br /&gt;
[&amp;quot;Taxonomy/Planulozoa&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Taxonomy/Platyhelminthes&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Pleocyemata&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Taxonomy/Poaceae&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Taxonomy/Poales&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;Taxonomy/Podiata&amp;quot;] = 512000,&lt;br /&gt;
[&amp;quot;Taxonomy/Polyneoptera&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;Taxonomy/Polyphaga&amp;quot;] = 66000,&lt;br /&gt;
[&amp;quot;Taxonomy/Polypodiophyta&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Polypodiopsida&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Polysporangiophytes&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Taxonomy/Polysporangiophytes/Plantae&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Taxonomy/Proteales&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Protostomia&amp;quot;] = 366000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pseudomonadati&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Taxonomy/Pseudomonadota&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Taxonomy/Psittacopasseres&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pteropliini&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Pterygota&amp;quot;] = 259000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pyralidae&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Taxonomy/Pyraloidea&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Taxonomy/Pyramidellidae&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Pyramidelloidea&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/Ranoidea&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Reptantia&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Taxonomy/Reptilia&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Reptiliomorpha&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Taxonomy/Rhabditophora&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Rhipidistia&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Ringipleura&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Taxonomy/Rodentia&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Taxonomy/Romeriida&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Taxonomy/Rosales&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Taxonomy/Rosids&amp;quot;] = 31000,&lt;br /&gt;
[&amp;quot;Taxonomy/Rouphozoa&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Rubiaceae&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Taxonomy/Saccharomyceta&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Salientia&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Taxonomy/Salticidae&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Salticinae&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Taxonomy/Sapindales&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Taxonomy/Sar&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Taxonomy/Sarcopterygii&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Sauria&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Taxonomy/Saurischia&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Sauropsida&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Taxonomy/Scarabaeidae&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;Taxonomy/Scarabaeiformia&amp;quot;] = 9500,&lt;br /&gt;
[&amp;quot;Taxonomy/Scarabaeoidea&amp;quot;] = 9500,&lt;br /&gt;
[&amp;quot;Taxonomy/Schizophora&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Taxonomy/Scincidae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Scincomorpha&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Scrotifera&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Taxonomy/Sericinae&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Taxonomy/Sericini&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Taxonomy/Serpentes&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Taxonomy/Setaphyta&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Siluriformes&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Taxonomy/Simplicidentata&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Taxonomy/Sordariomyceta&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Taxonomy/Sordariomycetes&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/Spermatophyta&amp;quot;] = 104000,&lt;br /&gt;
[&amp;quot;Taxonomy/Spermatophytes/Plantae&amp;quot;] = 104000,&lt;br /&gt;
[&amp;quot;Taxonomy/Spilomelinae&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Spiralia&amp;quot;] = 60000,&lt;br /&gt;
[&amp;quot;Taxonomy/Squamata&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Taxonomy/Staphyliniformia&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Taxonomy/Staphylinoidea&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Stegocephali&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Stylommatophora&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Taxonomy/Superasterids&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;Taxonomy/Superrosids&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Taxonomy/Syrphidae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Taxonomy/Syrphoidea&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Taxonomy/TSAR&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Taxonomy/Tachinidae&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Tectipleura&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;Taxonomy/Teleocephala&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Taxonomy/Teleostei&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Taxonomy/Teleosteomorpha&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Taxonomy/Telluraves&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Tenebrionoidea&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Taxonomy/Tephritidae&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Taxonomy/Tephritinae&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Taxonomy/Tephritoidea&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Taxonomy/Tetrapoda&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Tetrapodomorpha&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Taxonomy/Tetrapulmonata&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Theria&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Theria/skip&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Taxonomy/Theropoda/skip&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Taxonomy/Tortricidae&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Taxonomy/Tortricinae&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Taxonomy/Tortricoidea&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Taxonomy/Toxicofera&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Taxonomy/Tracheophyta&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Taxonomy/Tracheophytes/Plantae&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Taxonomy/Trilobita&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Trilobitomorpha&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Taxonomy/Trochida&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Trochoidea&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Taxonomy/Tyranni&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Taxonomy/Unicalcarida&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Taxonomy/Vertebrata&amp;quot;] = 111000,&lt;br /&gt;
[&amp;quot;Taxonomy/Vetigastropoda&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Taxonomy/Virus&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Taxonomy/crown_Formicidae&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Taxonomy_key&amp;quot;] = 149000,&lt;br /&gt;
[&amp;quot;Taxonomy_preload&amp;quot;] = 149000,&lt;br /&gt;
[&amp;quot;Tb&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Team_roster_navbox&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Technical&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Technically_indistinguishable&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Television_debuts_endings_antonym&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Television_episode_redirect_handler&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Television_episode_short_description&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Template&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Template-Class&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;TemplateData_header&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Template_category&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Template_display&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;Template_for_discussion/dated&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Template_for_discussion/styles.css&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Template_for_merging/dated&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Template_link&amp;quot;] = 7450000,&lt;br /&gt;
[&amp;quot;Template_link_code&amp;quot;] = 1130000,&lt;br /&gt;
[&amp;quot;Template_link_code_with_subst&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Template_link_expanded&amp;quot;] = 2620000,&lt;br /&gt;
[&amp;quot;Template_link_expanded_with_subst&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Template_link_general&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Template_link_interwiki&amp;quot;] = 9000,&lt;br /&gt;
[&amp;quot;Template_link_null&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;Template_link_universal&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Template_link_with_alternate_text&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Template_link_with_link_off&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;Template_link_with_linked_braces&amp;quot;] = 8200,&lt;br /&gt;
[&amp;quot;Template_link_with_parameters&amp;quot;] = 70000,&lt;br /&gt;
[&amp;quot;Template_link_with_subst&amp;quot;] = 54000,&lt;br /&gt;
[&amp;quot;Template_links&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Template_other&amp;quot;] = 4940000,&lt;br /&gt;
[&amp;quot;Template_parameter_usage&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Template_parameter_value&amp;quot;] = 50000,&lt;br /&gt;
[&amp;quot;Template_rating&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Template_reference_list&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Template_sandbox_notice&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Template_shortcut&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;TennisEventInfo&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;TennisEvents&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Tennis_events&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Tennis_icon&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Tennis_icon2&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Tennis_record&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Terminate_sentence&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Testcases_notice&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Testcases_other&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Text_diff&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Tfd_links&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Tfm/dated&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Th/abp&amp;quot;] = 113000,&lt;br /&gt;
[&amp;quot;Thank&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Thank_you&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;The_edit-summary_field&amp;quot;] = 8900,&lt;br /&gt;
[&amp;quot;The_edit-summary_field/OOUI&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Their&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;They&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;They_have&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Thin_space&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Thinsp&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Third-party&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;Thirteen_Colonies_article_name&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;This_is_a_new_user&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Thursday&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Tick&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Ticket_confirmation&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Time&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Time_ago&amp;quot;] = 189000,&lt;br /&gt;
[&amp;quot;Time_signature&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Time_with_time_zone_link&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Title_case&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Title_century&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Title_country&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;Title_decade&amp;quot;] = 31000,&lt;br /&gt;
[&amp;quot;Title_demonym&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Title_disambig_text&amp;quot;] = 248000,&lt;br /&gt;
[&amp;quot;Title_monthname&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Title_number&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Title_year&amp;quot;] = 257000,&lt;br /&gt;
[&amp;quot;Title_year+1&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Title_year-1&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Title_year2range&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Title_year2range-1&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Title_year_+1&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Title_year_-1&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Title_year_range&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Tl&amp;quot;] = 7160000,&lt;br /&gt;
[&amp;quot;Tl2&amp;quot;] = 8900,&lt;br /&gt;
[&amp;quot;Tlc&amp;quot;] = 896000,&lt;br /&gt;
[&amp;quot;Tld&amp;quot;] = 234000,&lt;br /&gt;
[&amp;quot;Tlf&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Tlg&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Tlit&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Tlp&amp;quot;] = 70000,&lt;br /&gt;
[&amp;quot;Tls&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Tlsc&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Tlsp&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Tlu&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Tlx&amp;quot;] = 2610000,&lt;br /&gt;
[&amp;quot;Tlxs&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Tmbox&amp;quot;] = 2380000,&lt;br /&gt;
[&amp;quot;Tmpv&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Tn&amp;quot;] = 8200,&lt;br /&gt;
[&amp;quot;Tnull&amp;quot;] = 9200,&lt;br /&gt;
[&amp;quot;To&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;To_USD&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;To_USD/CurrencyCheck&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;To_USD/General&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;To_be_announced&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;To_do&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Toc_right&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Tocright&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Todo&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Tomorrow&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;Tone&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;Tone-cmn&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Toolbar&amp;quot;] = 352000,&lt;br /&gt;
[&amp;quot;Toolforge&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Tooltip&amp;quot;] = 538000,&lt;br /&gt;
[&amp;quot;Tooltip/styles.css&amp;quot;] = 539000,&lt;br /&gt;
[&amp;quot;Top-Class&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Top-importance&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Top_25_Report&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Top_25_report&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Top_icon&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Totd&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Totd_nav&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Tp&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Tpq&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Tpr&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Tps&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Tpw&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Tq&amp;quot;] = 166000,&lt;br /&gt;
[&amp;quot;Tq2&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Tqb&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Tqq&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Tquote&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Track_gauge&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Track_listing&amp;quot;] = 122000,&lt;br /&gt;
[&amp;quot;Tracking_category&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Tracklist&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Trademark&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Trademarked&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Transclude&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Transclude_lead_excerpt&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Transcluded_section&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Transclusionless&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Translated&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Translated_page&amp;quot;] = 112000,&lt;br /&gt;
[&amp;quot;Translation&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Translation/Base&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Translation/Information&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Translation/Summary&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Transliteration&amp;quot;] = 67000,&lt;br /&gt;
[&amp;quot;Tree_chart&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Tree_chart/end&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Tree_chart/start&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Tree_list&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Tree_list/end&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Tree_list/styles.css&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Trim&amp;quot;] = 2900000,&lt;br /&gt;
[&amp;quot;Trim_%&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Trim_brackets&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Trim_leading&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Trim_quotes&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Trout&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Tsh&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Tsp&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Tuesday&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;TuttoCalciatori&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Twitter&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Two-digit_year&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;TwoLegResult&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;TwoLegStart&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;TwoLeg_start&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Module:TNT&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Module:TableTools&amp;quot;] = 9500000,&lt;br /&gt;
[&amp;quot;Module:Table_empty_cell&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Module:Taxobox_ranks&amp;quot;] = 651000,&lt;br /&gt;
[&amp;quot;Module:TaxonItalics&amp;quot;] = 649000,&lt;br /&gt;
[&amp;quot;Module:TaxonList&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Module:Taxonbar&amp;quot;] = 498000,&lt;br /&gt;
[&amp;quot;Module:Taxonbar/candidate&amp;quot;] = 496000,&lt;br /&gt;
[&amp;quot;Module:Taxonbar/conf&amp;quot;] = 498000,&lt;br /&gt;
[&amp;quot;Module:Taxonbar/exists&amp;quot;] = 496000,&lt;br /&gt;
[&amp;quot;Module:Taxonbar/whitelist&amp;quot;] = 499000,&lt;br /&gt;
[&amp;quot;Module:Team_appearances_list&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Module:Team_appearances_list/data&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Module:Team_bracket&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Module:Team_bracket_tracking&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Module:Team_roster_navbox&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;Module:Television_episode_redirect_handler&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Module:Television_episode_short_description&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:Television_infoboxes_disambiguation_check&amp;quot;] = 71000,&lt;br /&gt;
[&amp;quot;Module:TemplatePar&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Module:TemplateStyles&amp;quot;] = 586000,&lt;br /&gt;
[&amp;quot;Module:Template_invocation&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Template_link_general&amp;quot;] = 3740000,&lt;br /&gt;
[&amp;quot;Module:Template_parameter_value&amp;quot;] = 11900000,&lt;br /&gt;
[&amp;quot;Module:Template_redirect_regex&amp;quot;] = 1420000,&lt;br /&gt;
[&amp;quot;Module:Template_test_case&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Template_test_case/config&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Template_test_case/data&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Template_wrapper&amp;quot;] = 1020000,&lt;br /&gt;
[&amp;quot;Module:Tennis_events_nav&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Text&amp;quot;] = 1860000,&lt;br /&gt;
[&amp;quot;Module:Text/data&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Module:Tfd_links&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Module:Time&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Time/data&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Time_ago&amp;quot;] = 196000,&lt;br /&gt;
[&amp;quot;Module:Title_monthname&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Module:Toolbar&amp;quot;] = 1490000,&lt;br /&gt;
[&amp;quot;Module:Top_25_report&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Module:Track_gauge&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Module:Track_gauge/data&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Module:Track_listing&amp;quot;] = 122000,&lt;br /&gt;
[&amp;quot;Module:Track_listing/configuration&amp;quot;] = 122000,&lt;br /&gt;
[&amp;quot;Module:Track_listing/styles.css&amp;quot;] = 122000,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/A&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/B&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/C&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/E&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/G&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/I&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/M&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/N&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/P&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/S&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/T&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/U&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/W&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Module:Transclusion_count/data/other&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Module:Tree_chart&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Module:Tree_chart/data&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Module:Trim_quotes&amp;quot;] = 67000,&lt;br /&gt;
[&amp;quot;Module:TwitterSnowflake&amp;quot;] = 48000,&lt;br /&gt;
[&amp;quot;Module:Type_in_location&amp;quot;] = 137000,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Code&amp;diff=177</id>
		<title>Template:Code</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Code&amp;diff=177"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|style={{{style|}}}|inline=1}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Collapse_top/styles.css&amp;diff=175</id>
		<title>Template:Collapse top/styles.css</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Collapse_top/styles.css&amp;diff=175"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
.cot-header-mainspace {&lt;br /&gt;
	background:#F0F2F5;&lt;br /&gt;
	color:inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cot-header-other {&lt;br /&gt;
	background:#CCFFCC;&lt;br /&gt;
	color:inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night .cot-header-mainspace {&lt;br /&gt;
		background:#14181F;&lt;br /&gt;
		color:inherit;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	html.skin-theme-clientpref-night .cot-header-other {&lt;br /&gt;
		background:#003500;&lt;br /&gt;
		color:inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
	html.skin-theme-clientpref-os .cot-header-mainspace {&lt;br /&gt;
		background:#14181F;&lt;br /&gt;
		color:inherit;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	html.skin-theme-clientpref-os .cot-header-other {&lt;br /&gt;
		background:#003500;&lt;br /&gt;
		color:inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module_talk:Arguments&amp;diff=173</id>
		<title>Module talk:Arguments</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module_talk:Arguments&amp;diff=173"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talk header}}&lt;br /&gt;
{{copied|from=Module:Arguments|from_oldid=696500078|to=:incubator:Module:Wp/nod/Arguments|to_diff=4236992}}&lt;br /&gt;
== Iterator corruption ==&lt;br /&gt;
{{ping|Mr. Stradivarius}} I found a subtle iterator corruption bug in this module.&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = require(&#039;Module:Arguments&#039;).getArgs(frame)&lt;br /&gt;
for k, v in args do&lt;br /&gt;
 mw.log(k .. &#039;=&#039; .. (v or &#039;nil&#039;) .. &#039; &#039;)&lt;br /&gt;
 if args[k .. &#039;somesuffix&#039;] then&lt;br /&gt;
  mw.log(&#039;Found suffix for &#039; .. k)&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; Attempting to read the somesuffix argument causes it to be memoized, adding it to the internal table, which apparently can corrupt the iterator and causes some arguments to be skipped. I&#039;ve noticed this is only reproducible some of the time. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 02:58, 13 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
:{{ping|Jackmcbarn}} That&#039;s a good find. (I assume that should be &amp;lt;code&amp;gt;pairs(args)&amp;lt;/code&amp;gt; on line 2 rather than just &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;?) We&#039;re running into the undefined behaviour mentioned in the [[mw:Extension:Scribunto/Lua reference manual#next|next function docs]]: &amp;quot;&#039;&#039;Behavior is undefined if, when using next for traversal, any non-existing key is assigned a value.&#039;&#039;&amp;quot; The way that the __pairs metamethod works in this module means that all the existing arguments will have been memoized before the user gets a chance to index the args table. So if a user queries an existing argument during the pairs iteration, there will be no problem, as it will already be present in the metaArgs table. The error occurs when the user queries a non-existing argument. The __index function is set up to memoize this in metaArgs as nilArg, a blank table. That means that it is possible to add these blank tables as new values to the metaArgs table, even after all the non-nil values have been copied over from the frame objects. I&#039;ve put a [https://en.wikipedia.org/w/index.php?title=Module:Arguments/sandbox&amp;amp;diff=604023029&amp;amp;oldid=590465333 fix in the sandbox] for this that uses the metatable.donePairs flag to check whether or not the arguments have been copied across. If they have already been copied across, then the __index metamethod won&#039;t memoize nils at all. While this fixes the bug, not memoizing the nils might cause adverse performance for some modules. Take a look and see what you think. Also, maybe [[User:Anomie|Anomie]] would like to check the fix before we put it up live? — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 16:02, 13 April 2014 (UTC)&lt;br /&gt;
::{{ping|Mr. Stradivarius}} Yes, that should have been pairs(args). What about a flag that gets set while you&#039;re inside the pairs method, and while it&#039;s set, it memoizes nils to some other table, then when the flag gets unset, it moves them to where they really go? Also, related, if an argument is an empty string, it gets iterated over even if empty strings get converted to nils, which is unexpected. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 17:47, 13 April 2014 (UTC)&lt;br /&gt;
::{{ping|Mr. Stradivarius}} I realized it&#039;s impossible for an iterator function to tell when it stops iterating (since the function calling it can return early, etc.), so that idea was out. Instead, I changed the way nils are memoized. They go to a different table now, which should solve that problem and the other problem at the same time. Thoughts? [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 23:14, 13 April 2014 (UTC)&lt;br /&gt;
::Once I got that implemented, I had another idea. Once pairs runs, we don&#039;t need to worry about memoizing at all anymore, because everything from argTables we&#039;ll ever look at is already part of metaArgs at that point. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 23:51, 13 April 2014 (UTC)&lt;br /&gt;
:::I think we should memoize after pairs runs, because users might query new keys that have nil values, and also because memoizing things the same way every time is simpler. I like your idea of using a nilArgs table rather than just putting a blank table in metaArgs. That will solve the iterator problem and allow us to use the same memoization scheme whether we have used pairs or not. Also, blank strings shouldn&#039;t be iterated over unless they are explicitly allowed, due to the way the mergeArgs function works (unless you found a bug in that as well?) — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 05:25, 14 April 2014 (UTC)&lt;br /&gt;
::::After running pairs, though, you don&#039;t need to check argTables anymore, so it&#039;s not worth memoizing nil to nilArg, since you can just return nil either way. Won&#039;t the code in the sandbox right now work right? [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 18:28, 14 April 2014 (UTC)&lt;br /&gt;
:::::Ah yes, you&#039;re quite right. I wasn&#039;t registering the fact that the new check meant that we bypassed the argTables check. I&#039;ve added a comment and updated the module - hopefully everything should work now. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 08:12, 15 April 2014 (UTC)&lt;br /&gt;
::::::{{ping|Jackmcbarn}} Oops - we have been forgetting the problem of arguments being iterated over even if they are empty strings which get converted to nils. This would be solved by a nilArgs table, but is still present in the current version. I&#039;ll try and switch back to the nilArgs table version while keeping the formatting. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 19:47, 15 April 2014 (UTC)&lt;br /&gt;
:::::::{{ping|Mr. Stradivarius}} Now that I think about nilArgs, I don&#039;t really like it since it&#039;s an extra table lookup. Maybe if nilArg is found while iterating, just skip it and go on to the next element (or change all nilArg to nil once we&#039;re in pairs). [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 19:49, 15 April 2014 (UTC)&lt;br /&gt;
{{od|7}} I&#039;ve implemented the nilArgs version in the sandbox. I think it is quite an elegant solution, despite being an extra table lookup. Skipping nilArg tables while iterating isn&#039;t easy, as we would need to implement an iterator inside of an iterator for each of __pairs and __ipairs. And changing all nilArg tables to nil once we are in pairs would mean we would have to run pairs on metaArgs after running mergeArgs to catch all of the nilArg tables that have been introduced by __index and __newindex. Using nilArgs to memoize avoids these problems and makes the code quite a bit shorter (take a look at the new __pairs and __ipairs functions). — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 20:24, 15 April 2014 (UTC)&lt;br /&gt;
:{{ping|Mr. Stradivarius}} Okay, I guess I&#039;m sold on it. I think I see a few subtle bugs, though; let me see if I can track them down. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 20:35, 15 April 2014 (UTC)&lt;br /&gt;
::Thanks for taking a look at it. If I have time tomorrow, I may rewrite the test cases in [[mw:Extension:Scribunto/Lua reference manual#frame:newChild|the way foretold in the fine manual]]. That should make tracking these subtle bugs slightly less hit-and-miss. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 20:59, 15 April 2014 (UTC)&lt;br /&gt;
::Also, I [https://en.wikipedia.org/w/index.php?title=Module%3AArguments%2Fsandbox&amp;amp;diff=604357645&amp;amp;oldid=604349477 found a bug] in my code: __newindex wasn&#039;t properly overwriting nil arguments in metaArgs, which would have caused problems for both __pairs and __index. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 21:11, 15 April 2014 (UTC)&lt;br /&gt;
:::{{ping|Jackmcbarn}} I&#039;ve finished rewriting [[Module:Arguments/testcases]], and I&#039;ve also added some bad input tests and some iterator tests. I&#039;ve tried my best to break it, but all the tests have passed so far. As expected, the main module fails four of the iterator tests. Are there any other ways you can think to break it? If not, I think it is time to update the main module. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 13:10, 17 April 2014 (UTC)&lt;br /&gt;
::::{{ping|Mr. Stradivarius}} Looks good. I did add one extra check for performance reasons. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 18:47, 17 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wrapper templates ==&lt;br /&gt;
&lt;br /&gt;
{{edit protected|Module:Arguments|answered=yes}}&lt;br /&gt;
&amp;lt;!-- Begin request --&amp;gt;&lt;br /&gt;
Please make the changes at [[Special:Diff/604718144/611675481]]. This adds support for the &amp;quot;wrappers&amp;quot; option. When set, it causes it to process parent arguments only if the parent is a wrapper, or frame arguments only otherwise.&lt;br /&gt;
&amp;lt;!-- End request --&amp;gt;&lt;br /&gt;
[[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 00:25, 5 June 2014 (UTC)&lt;br /&gt;
:Perhaps [[User:Mr. Stradivarius]] could check your code and apply this. &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 09:12, 5 June 2014 (UTC)&lt;br /&gt;
::{{ping|Jackmcbarn}} I&#039;m not quite understanding what it means to say &amp;quot;if the parent is a wrapper&amp;quot;. What kind of wrapper are we talking about? I can see that it would make sense to not try and index frame:getParent() if it&#039;s going to return nil sometimes, but the only time I can see this happening is if you call frame:getParent() on the current frame and then pass the parent frame to getArgs. Then again, there is probably something I&#039;m missing, and I imagine that getting my head round this wrapper business will clear things up. As for general code review, {{code|1=local title, found = parent:getTitle(), false|2=lua}} seems a little dangerous to me. That would break if for some reason frame:getTitle ever switches to outputting two values (unlikely, but possible), so I would put those statements on separate lines. Also, we should probably check that &amp;lt;code&amp;gt;options.wrappers&amp;lt;/code&amp;gt; is a table, so that we can give people a more informative error message if they specify something like {{code|1={wrappers = true}|2=lua}}. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 09:43, 5 June 2014 (UTC)&lt;br /&gt;
:::{{ping|Mr. Stradivarius}} A wrapper is a template that just calls a module, like [[Template:Infobox]] is a wrapper for [[Module:Infobox]] and [[Template:Edit protected]] is a wrapper for [[Module:Protected edit request]]. That&#039;s unrelated to the nil issue; I just fixed that at the same time since I had to modify that part of the code anyway. You&#039;re right that the main time getParent() would be nil is if you&#039;d already called getParent() once, but the other time is if you call a module with a real frame through the console. I fixed the locals on the same line. Instead of throwing an error on non-tables, I made it turn it into a table, to handle the (very) common case where a module only has one wrapper. New diff is [[Special:Diff/604718144/611678252]]. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 13:31, 5 June 2014 (UTC)&lt;br /&gt;
::::Ah, I see what this is doing now. So if getArgs is called from a wrapper template, and that wrapper is listed in options.wrappers, it only loads the parent args, thereby saving a lookup in the frame args each time a new argument is requested from the client module. And if the parent frame isn&#039;t listed in options.wrappers it assumes that a user is calling the client module directly through #invoke. That sounds like a useful feature to add. One thing I was wondering - would it complicate the code too much to not call frame:getParent() if options.frameOnly is set? I&#039;m not sure how expensive frame:getParent is to call, but I think it would make sense to not call it if we don&#039;t have to. (But then again, frameOnly isn&#039;t used that much as an option in my experience.) — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 00:57, 6 June 2014 (UTC)&lt;br /&gt;
:::::{{ping|Mr. Stradivarius}} I&#039;ve made it do that. New diff is [[Special:Diff/604718144/611759842]]. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 01:11, 6 June 2014 (UTC)&lt;br /&gt;
::::::I&#039;ve found one more optimization. [[Special:Diff/604718144/611760186]]. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 01:13, 6 June 2014 (UTC)&lt;br /&gt;
:::::::I&#039;ve added some comments: [[Special:Diff/604718144/611784069]]. The code and the test cases look good to me, so if you&#039;re happy with this then I think we&#039;re ready to update the main module. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 06:23, 6 June 2014 (UTC)&lt;br /&gt;
::::::::{{ping|Mr. Stradivarius}} I&#039;m happy with it. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 13:58, 6 June 2014 (UTC)&lt;br /&gt;
:::::::::[[File:Yes check.svg|20px|link=]] &#039;&#039;&#039;Done&#039;&#039;&#039;&amp;lt;!-- Template:EP --&amp;gt; Ok, it&#039;s updated. Let me know if you spot any issues with it. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 14:25, 6 June 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Protected edit request on 5 July 2014 ==&lt;br /&gt;
&lt;br /&gt;
{{edit protected|Module:Arguments|answered=yes}}&lt;br /&gt;
&amp;lt;!-- Begin request --&amp;gt;&lt;br /&gt;
Please make [[Special:Diff/615649711|these changes]]. This allows wrappers to still give both sets of arguments in either of the cases if such behavior is explicitly requested, while still preventing the double lookup in the other case.&lt;br /&gt;
&amp;lt;!-- End request --&amp;gt;&lt;br /&gt;
[[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 03:30, 5 July 2014 (UTC)&lt;br /&gt;
:[[File:Yes check.svg|20px|link=]] &#039;&#039;&#039;Done&#039;&#039;&#039;&amp;lt;!-- Template:EP --&amp;gt; If you could update the documentation too, that would be great. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 03:54, 5 July 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Integrating with Lua ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m thinking of integrating this module into Scribunto, the same way [[Module:HtmlBuilder]] was, but to do that, it needs to be released under a different license. {{ping|Mr. Stradivarius}} {{ping|Anomie}} Do you both agree to release your contributions to this module under the [[GNU General Public License]] v2 or newer (GPL v2+)? [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 14:58, 3 September 2014 (UTC)&lt;br /&gt;
: Sure. [[User:Anomie|Anomie]][[User talk:Anomie|⚔]] 15:07, 3 September 2014 (UTC)&lt;br /&gt;
: Yes, that&#039;s fine with me. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 21:50, 3 September 2014 (UTC)&lt;br /&gt;
::I&#039;ve submitted [[gerrit:158323]] that will add this to Scribunto. Note the following differences between this module and what I submitted:&lt;br /&gt;
::*Instead of taking a frame and an options table, it now takes only an options table, and &amp;lt;code&amp;gt;frame&amp;lt;/code&amp;gt; is one of its options. This makes it a standard named-arguments function.&lt;br /&gt;
::*When wrappers aren&#039;t in use, it behaves as if &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; were set by default. Indiscriminate mixing of frame and parent arguments without knowing what the parent is has caused subtle bugs in the past, and it doesn&#039;t appear to have any legitimate use cases.&lt;br /&gt;
::*If you want just the parent arguments, pass &amp;lt;code&amp;gt;frame:getParent()&amp;lt;/code&amp;gt; in place of &amp;lt;code&amp;gt;frame&amp;lt;/code&amp;gt; when calling it. The &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; option has been removed.&lt;br /&gt;
::*When wrappers are in use, if the caller specifically requests frame arguments in addition to parent arguments (via &amp;lt;code&amp;gt;wrappersUseFrame&amp;lt;/code&amp;gt;), the parent arguments always have precedence.&lt;br /&gt;
::{{ping|Mr. Stradivarius}} ping. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 21:09, 4 September 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Implement i18n ==&lt;br /&gt;
&lt;br /&gt;
Should this module implement [[Internationalization and localization|i18n]]? Eg. by allowing a second parameter (boolean), which will make it try to load a name-map from a sub-module. Eg. Bananas could use&lt;br /&gt;
 args = getArgs(frame, true)[&#039;firstname&#039;]&lt;br /&gt;
and Bananas/i18n_de could contain&lt;br /&gt;
 return { vorname = &#039;firstname&#039; }&lt;br /&gt;
(I admit a mapping in the opposit direction is more intuitive, but this allows multiple parameternames to be mapped to the same lua-parameter.)&lt;br /&gt;
[[User:Poul G|Poul G]] ([[User talk:Poul G|talk]]) 09:40, 1 November 2014 (UTC)&lt;br /&gt;
: The danger with this idea is that it makes it more difficult to use the module in different languages, unless everyone uses the canonical name anyway. For example, &amp;quot;Spezial:Beobachtungsliste&amp;quot; works if you go to [[:de:Spezial:Beobachtungsliste|dewiki]] but doesn&#039;t [[Spezial:Beobachtungsliste|here]] or most other-language wikis, while &amp;quot;Special:Watchlist&amp;quot; will work everywhere. [[User:Anomie|Anomie]][[User talk:Anomie|⚔]] 14:38, 1 November 2014 (UTC)&lt;br /&gt;
:: [[wikt:WTF|WhyTF]] do we have a soft-redirect at [[Spezial:Beobachtungsliste]]? [[User:Anomie|Anomie]][[User talk:Anomie|⚔]] 14:45, 1 November 2014 (UTC)&lt;br /&gt;
:Well, our user-editors in non-english languages should have access to templates in their native language. But at the same time it would be a great advantage to share the logic in the Lua-modules. Which implies that a translation is needed; it could be in the template &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#Person:name|firstname={{{vorname|}}}|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or be hidden in i18n within the modules configuration. (Maybe it was a mistake to open this on the site, where translation isn&#039;t needed.) [[User:Poul G|Poul G]] ([[User talk:Poul G|talk]]) 12:45, 3 November 2014 (UTC)&lt;br /&gt;
Is it possible this module to handle named parameters with Unicode names like: &amp;lt;pre&amp;gt;{{my_template | unnamed_1 | параметър = 123 | named_2 = ... etc.}}&amp;lt;/pre&amp;gt;--[[User:Pl71|Pl71]] ([[User talk:Pl71|talk]]) 15:32, 24 February 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Pairs bug ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve just found a bug in the pairs code of this module. It turns out that if you delete a value in the args table by setting it to nil, the the value is still present if you access the args table with pairs. There&#039;s a demonstration of the bug in [https://en.wikipedia.org/w/index.php?title=Module:User:Mr._Stradivarius/sandbox&amp;amp;oldid=637283032 my sandbox], and I&#039;ve added two new test cases which are [[Module talk:Arguments/testcases|currently failing]].&lt;br /&gt;
&lt;br /&gt;
To fix this, it looks like we would need a new table to memoize nils. We need to check whether an argument has been expressly deleted when calling mergeArgs, but at the same time, values in nilArgs need to be overwritable for precedence whitespace arguments to work properly. I don&#039;t see how one table can fulfil both functions.&lt;br /&gt;
&lt;br /&gt;
Alternatively, we could get away with using one nilArgs table if we change the module to only ever check the frame args or the parent frame args, and never both. If I remember rightly, this is what the proposed getArgs function inside Scribunto does, so if that solution seems better we could wait for that function to be deployed and then switch all of our existing modules over to it. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 06:59, 9 December 2014 (UTC)&lt;br /&gt;
:{{ping|Mr. Stradivarius}} There is one edge case in the new getArgs function that would still read both, so that won&#039;t save us. However, I did find a way to make it work without adding an additional table. It&#039;s in the sandbox. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 15:11, 9 December 2014 (UTC)&lt;br /&gt;
::{{ping|Jackmcbarn}} Yes, that looks like a good approach to solving it - definitely better than introducing another table. Instead of using trinary logic, how about using strings to denote the status, similar to what Lua does with __mode? I think that would make the code more readable. We could use &#039;hard&#039; and &#039;soft&#039; for hard and soft nils, or just &#039;h&#039; and &#039;s&#039; if we want to be concise. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 15:55, 9 December 2014 (UTC)&lt;br /&gt;
:::{{ping|Mr. Stradivarius}} Okay, that&#039;s done. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 04:11, 10 December 2014 (UTC)&lt;br /&gt;
::::{{ping|Jackmcbarn}} Looks good. Unless there&#039;s anything else you would like to change, I think we&#039;re ok to update the main module now. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 04:37, 10 December 2014 (UTC)&lt;br /&gt;
:::::{{ping|Mr. Stradivarius}} Actually, there is, but I can&#039;t do it yet. Once the inexpensive mw.title.new change gets here, I want to make this use mw.title.new to normalize wrapper names (to make less stuff break when our modules get transwikied to wikis with different namespace names). [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 03:57, 11 December 2014 (UTC)&lt;br /&gt;
::::::{{ping|Jackmcbarn}} Ok, but I don&#039;t think there&#039;s any need to wait for that before we fix the current bug. I&#039;ll go and update the module now. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr. Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪ talk ♪]]&amp;lt;/sup&amp;gt; 04:27, 11 December 2014 (UTC)&lt;br /&gt;
:::::::Okay. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 04:28, 11 December 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ipairs bug ==&lt;br /&gt;
&lt;br /&gt;
{{ping|Mr. Stradivarius}} I discovered that calling ipairs() on args and then breaking out of the loop early will unnecessarily result in all of the numeric arguments being expanded, instead of just the ones that were iterated over. I added a test case for this and implemented a fix in the sandbox. Can you take a look at it? If it looks good, I&#039;ll add it (along with the other change waiting in the sandbox) to the main module. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 05:32, 28 December 2014 (UTC)&lt;br /&gt;
:{{ping|Jackmcbarn}} Sorry for the delay in replying. Actually, yesterday and today I&#039;ve been a bit ill, so I don&#039;t really trust myself to do code reviews right now. I&#039;ll take a look at this when I have my higher brain functions back, or if you want to go ahead and implement your fix anyway, that&#039;s fine by me. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr.&amp;amp;nbsp;Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪&amp;amp;nbsp;talk&amp;amp;nbsp;♪]]&amp;lt;/sup&amp;gt; 06:27, 29 December 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Document argument translation system ==&lt;br /&gt;
&lt;br /&gt;
Hi [[User:Jackmcbarn |Jackmcbarn ]]!&lt;br /&gt;
&lt;br /&gt;
Could you please add documentation about [[Special:Diff/668829606|this]]? [[User:He7d3r|Helder]] 11:12, 1 September 2015 (UTC)&lt;br /&gt;
:I&#039;d rather not encourage its use right now, since a better but incompatible way will become available soon. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 19:23, 1 September 2015 (UTC)&lt;br /&gt;
::@[[User:Jackmcbarn|Jackmcbarn]]: can you provide more details about that? Where is that new way being developed? [[User:He7d3r|Helder]] 19:30, 13 September 2015 (UTC)&lt;br /&gt;
:::{{ping|He7d3r}} It&#039;s already written; it&#039;s just awaiting approval. You can see it at [[gerrit:158323]]. [[User:Jackmcbarn|Jackmcbarn]] ([[User talk:Jackmcbarn|talk]]) 20:58, 13 September 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[User:Jackmcbarn|Jackmcbarn]], [[User:He7d3r|Helder]], now that we have [[mw:Help:Tabular_Data|tabular data support]], we can easily implement global translations. I already started on doing it with the [[mw:Module:TNT|TNT module]]. It allows a module or a template to be copied anywhere without modifications, and all localization is done in one place on Commons.  This means we can introduce parameter localization as well, without any core changes. Let me know if you want to help with it :) --[[User:Yurik|Yurik]] ([[User talk:Yurik|talk]]) 03:46, 13 January 2017 (UTC)&lt;br /&gt;
:Cool! I&#039;ll keep an eye on that. [[User:He7d3r|Helder]] 12:01, 18 January 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Using ipairs ==&lt;br /&gt;
&lt;br /&gt;
I have not seriously used Module:Arguments so now that I&#039;m looking at how it is used in [[Module:Team appearances list]], I am puzzled about the default options and &amp;lt;code&amp;gt;ipairs&amp;lt;/code&amp;gt;. What happens if a module does the following?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local args = getArgs(frame)  -- where frame is from a template invoke&lt;br /&gt;
for i, v in ipairs(args) do&lt;br /&gt;
    print(i, v)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
I gather that works as expected with something like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{example|one|two|three}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (and it would trim any leading/trailing whitespace from each parameter).&lt;br /&gt;
&lt;br /&gt;
However, it would only process &amp;quot;one&amp;quot; in &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{example|one||three}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; because the blank second parameter would be converted to nil, and that would terminate ipairs.&lt;br /&gt;
&lt;br /&gt;
Does that mean that anything using Module:Arguments with a variable number of numeric arguments must use something like &amp;lt;code&amp;gt;compressSparseArray&amp;lt;/code&amp;gt; from [[Module:TableTools]] (or set options to not trim/remove parameters)? If that is true, I would have thought it would be mentioned in the documentation here. Did an early version of Module:Arguments default to removing blank parameters so ipairs processes each provided numeric parameter (that&#039;s what I thought happened)? [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 03:25, 18 November 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
:{{re|Johnuniq}} Have you found a solution for this problem? —&amp;amp;nbsp;[[User:UnladenSwallow|UnladenSwallow]] ([[User talk:UnladenSwallow|talk]]) 01:58, 15 May 2020 (UTC)&lt;br /&gt;
::{{re|UnladenSwallow}} I haven&#039;t looked for a solution because I don&#039;t like obscure layers. Module:Arguments appears to be very efficient although it appears to do quite a lot of work, yet it seems unnecessary overhead to me. I&#039;ve never needed the module and I don&#039;t know if the above is a problem now. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 03:38, 15 May 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Help in writing better testcases==&lt;br /&gt;
Hello developers, I am working with [[mw:Multilingual Templates and Modules]] and to convert this module into a shared one, we need better [[mw:Module:Arguments/testcases]]. Can anyone please help? {{ping|Frietjes|RexxS|Johnuniq|Mr. Stradivarius|Anomie|Xaosflux|Ans|Jackmcbarn|Jonesey95}} [[User:Capankajsmilyo|Capankajsmilyo]]&amp;lt;sup&amp;gt;([[User talk:Capankajsmilyo|Talk]] | [[Wikipedia:WikiProject Infoboxes/assistance|Infobox assistance]])&amp;lt;/sup&amp;gt; 10:39, 22 May 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The Arguments cannot contain &amp;quot;=&amp;quot;? ==&lt;br /&gt;
&lt;br /&gt;
see test case: [[Module:Sandbox/shizhao/test]]，[[Module talk:Sandbox/shizhao/test]]。 If arguments contain &amp;quot;=&amp;quot;， Lua error: bad argument #1 to &#039;match&#039; (string expected, got nil).--[[User:Shizhao|Shizhao]] ([[User talk:Shizhao|talk]]) 15:45, 21 January 2020 (UTC)&lt;br /&gt;
:@[[User:Shizhao|Shizhao]] That&#039;s just standard procedure: in a template or module invoke, a parameter like &amp;lt;code&amp;gt;aaa=bbb&amp;lt;/code&amp;gt; appears as a named parameter with value &amp;lt;code&amp;gt;bbb&amp;lt;/code&amp;gt; for parameter &amp;lt;code&amp;gt;aaa&amp;lt;/code&amp;gt;. See the fix in [[Special:Diff/936934897|diff]]. I haven&#039;t looked at what [[Module:Sandbox/shizhao/test]] is for but please don&#039;t fuss with a signature—keeping them simple is best and editors should not need a module for a private purpose. [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 22:43, 21 January 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Using frame and parentFrame simultaneously ==&lt;br /&gt;
&lt;br /&gt;
There is a wrapper template [[Template:Authority control (arts)]] which uses &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Authority control|show=arts}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And on articles, I want to use {{tlx|Authority control (arts)|2=show=CZ,ES}} to show additional things.&lt;br /&gt;
&lt;br /&gt;
I would like to concatenate both of these values in a comma-separated list, i.e. &amp;lt;code&amp;gt;show = arts,CZ,ES}&amp;lt;/code&amp;gt; Is that something which is possible with this module? &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 13:17, 20 January 2023 (UTC)&lt;br /&gt;
:{{ping|MSGJ}} No - this module can get values from both the frame and the parent frame, but one will take priority and overwrite the other. You will need custom logic to do what you want to do. — &#039;&#039;&#039;&#039;&#039;[[User:Mr. Stradivarius|&amp;lt;span style=&amp;quot;color: #194D00; font-family: Palatino, Times, serif&amp;quot;&amp;gt;Mr.&amp;amp;nbsp;Stradivarius&amp;lt;/span&amp;gt;]]&#039;&#039;&#039;&#039;&#039; &amp;lt;sup&amp;gt;[[User talk:Mr. Stradivarius|♪&amp;amp;nbsp;talk&amp;amp;nbsp;♪]]&amp;lt;/sup&amp;gt; 13:56, 20 January 2023 (UTC)&lt;br /&gt;
::Okay, thought so. Thanks for the reply. &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 15:16, 20 January 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Case-insensitive arguments ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve had a request for case-insensitive argument names in a client module of Module:Arguments over on enWS (that imports from enWP). Specific case requested was treating {{para|Volume}} as equivalent to {{para|volume}} (there are historical reasons why contributors on enWS expect that to work). At first blush that looks really messy to implement in the client module, and at the same time it seems like something that 1) would be best implemented as an option (ala. {{para|trim}} or {{para|removeBlanks}}) in Module:Arguments and 2) would be generally useful for other clients of Module:Arguments. Without digging too deep I imagine it&#039;d really be &amp;quot;canonical casing&amp;quot;, i.e. just internally lower-casing all provided argument names when the option is set.&lt;br /&gt;
&lt;br /&gt;
Thoughts? [[User:Xover|Xover]] ([[User talk:Xover|talk]]) 06:25, 31 May 2023 (UTC)&lt;br /&gt;
&lt;br /&gt;
== writing to the args table when the key contains a hyphen (-) ==&lt;br /&gt;
&lt;br /&gt;
[[Module:Infobox military conflict]] tries to include [[Module:Infobox mapframe]], but we need to pass along some parameters. args.onByDefault seems to work, but args[&amp;quot;mapframe-zoom&amp;quot;] doesn&#039;t seem to. Is this expected? --[[User:Joy|Joy]] ([[User talk:Joy|talk]]) 19:47, 23 October 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Arguments/doc&amp;diff=171</id>
		<title>Module:Arguments/doc</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Arguments/doc&amp;diff=171"/>
		<updated>2026-05-26T02:13:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Used in system}}&lt;br /&gt;
{{Module rating|p}}&lt;br /&gt;
{{cascade-protected template|page=module}}&lt;br /&gt;
&lt;br /&gt;
This module provides easy processing of arguments passed from &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;. It is a meta-module, meant for use by other modules, and should not be called from &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt; directly (for a module directly invocable by templates you might want to have a look at {{ml|params|}}). Its features include:&lt;br /&gt;
* Easy [[Trimming (computer programming)|trimming]] of arguments and removal of blank arguments.&lt;br /&gt;
* Arguments can be passed by both the current frame and by the parent frame at the same time. (More details below.)&lt;br /&gt;
* Arguments can be passed in directly from another Lua module or from the debug console.&lt;br /&gt;
* Most features can be customized.&lt;br /&gt;
&lt;br /&gt;
== Basic use ==&lt;br /&gt;
&lt;br /&gt;
First, you need to load the module. It contains one function, named &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the most basic scenario, you can use getArgs inside your main function. The variable &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; is a table containing the arguments from #invoke. (See below for details.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	-- Main module code goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Recommended practice ===&lt;br /&gt;
However, the recommended practice is to use a separate function as the entry point from &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt; just for processing the arguments. This allows other Lua modules to call your core logic directly, improving performance by avoiding the overhead of interacting with the &amp;lt;code&amp;gt;frame&amp;lt;/code&amp;gt; object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- Main module code goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The way this is called from a template is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Example|main}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (optionally with some parameters like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Example|main|arg1=value1|arg2=value2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;), and the way this is called from a module is &amp;lt;syntaxhighlight lang=lua inline&amp;gt;require(&#039;Module:Example&#039;)._main({arg1 = &#039;value1&#039;, arg2 = value2, &#039;spaced arg3&#039; = &#039;value3&#039;})&amp;lt;/syntaxhighlight&amp;gt;. What this second one does is construct a table with the arguments in it, then gives that table to the p._main(args) function, which uses it natively.&lt;br /&gt;
&lt;br /&gt;
=== Multiple functions ===&lt;br /&gt;
If you want multiple functions to use the arguments, and you also want them to be accessible from #invoke, you can use a wrapper function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = getArgs(frame)&lt;br /&gt;
		return p[funcName](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.func1 = makeInvokeFunc(&#039;_func1&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._func1(args)&lt;br /&gt;
	-- Code for the first function goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.func2 = makeInvokeFunc(&#039;_func2&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._func2(args)&lt;br /&gt;
	-- Code for the second function goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Options ==&lt;br /&gt;
&lt;br /&gt;
The following options are available. They are explained in the sections below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	trim = false,&lt;br /&gt;
	removeBlanks = false,&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		-- Code for processing one argument&lt;br /&gt;
	end,&lt;br /&gt;
&lt;br /&gt;
	frameOnly = true,&lt;br /&gt;
	parentOnly = true,&lt;br /&gt;
	parentFirst = true,&lt;br /&gt;
&lt;br /&gt;
	wrappers = {&lt;br /&gt;
		&#039;Template:A wrapper template&#039;,&lt;br /&gt;
		&#039;Template:Another wrapper template&#039;&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	readOnly = true,&lt;br /&gt;
	noOverwrite = true&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Trimming whitespace ===&lt;br /&gt;
&lt;br /&gt;
MediaWiki trims whitespace for named arguments coming from #invoke or a template call, but preserves whitespace for positional arguments. By default, this module helps trim whitespace also for position arguments. To preserve whitespace for positional arguments, set the &amp;lt;code&amp;gt;trim&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	trim = false&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; option is given, the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; function will be responsible for trimming whitespace, and the &amp;lt;code&amp;gt;trim&amp;lt;/code&amp;gt; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
=== Removing blank arguments ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Blank arguments&amp;quot; are arguments from #invoke or template that are blank strings or consist of only whitespace. By default, this module removes all blank arguments. To preserve the blank arguments, set the &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	removeBlanks = false&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This might be necessary for some templates&#039; operation.&lt;br /&gt;
&lt;br /&gt;
Note: When converting MediaWiki templates to Lua, keep in mind that in Lua, blank strings and strings consisting only of whitespace are considered true. If you don&#039;t pay attention to such blank arguments when you write your Lua modules, you might treat something as true that should actually be treated as false.&lt;br /&gt;
&lt;br /&gt;
When the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; option is given, the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; function will be responsible for handling blank arguments, and the &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; option will have no effect.&lt;br /&gt;
&lt;br /&gt;
=== Custom formatting of arguments ===&lt;br /&gt;
&lt;br /&gt;
Sometimes you want to remove some blank arguments but not others, or perhaps you might want to put all of the positional arguments in lower case. To do things like this you can use the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; option. The input to this option must be a function that takes two parameters, &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, and returns a single value. This value is what you will get when you access the field &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
Example 1: this function preserves whitespace for the first positional argument&#039;s value, but trims all other arguments&#039; value and removes all other blank arguments.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if key == 1 then&lt;br /&gt;
			return value&lt;br /&gt;
		elseif value then&lt;br /&gt;
			value = mw.text.trim(value)&lt;br /&gt;
			if value ~= &#039;&#039; then&lt;br /&gt;
				return value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: this function removes blank arguments and converts all argument values to lower case, but doesn&#039;t trim whitespace from positional parameters.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if not value then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		value = mw.ustring.lower(value)&lt;br /&gt;
		if mw.ustring.find(value, &#039;%S&#039;) then&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the above functions will fail if passed input that is not of type &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. This might be the case if you use the &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; function in the main function of your module, and that function is called by another Lua module. In this case, you will need to check the type of your input. This is not a problem if you are using a function specially for arguments from #invoke (i.e. you have &amp;lt;code&amp;gt;p.main&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;p._main&amp;lt;/code&amp;gt; functions, or something similar).&lt;br /&gt;
&lt;br /&gt;
{{cot|Examples 1 and 2 with type checking}}&lt;br /&gt;
Example 1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if key == 1 then&lt;br /&gt;
			return value&lt;br /&gt;
		elseif type(value) == &#039;string&#039; then&lt;br /&gt;
			value = mw.text.trim(value)&lt;br /&gt;
			if value ~= &#039;&#039; then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if type(value) == &#039;string&#039; then&lt;br /&gt;
			value = mw.ustring.lower(value)&lt;br /&gt;
			if mw.ustring.find(value, &#039;%S&#039;) then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{cob}}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; function is called more or less every time an argument is requested from the &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; table, so if you care about performance you should make sure you aren&#039;t doing anything inefficient with your code.&lt;br /&gt;
&lt;br /&gt;
=== Frames and parent frames ===&lt;br /&gt;
&lt;br /&gt;
Arguments in the &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; table can be passed from the current frame or from its parent frame at the same time. To understand what this means, it is easiest to give an example. Let&#039;s say that we have a module called &amp;lt;code&amp;gt;Module:ExampleArgs&amp;lt;/code&amp;gt;. This module prints the first two positional arguments that it is passed.&lt;br /&gt;
&lt;br /&gt;
{{cot|Module:ExampleArgs code}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local first = args[1] or &#039;&#039;&lt;br /&gt;
	local second = args[2] or &#039;&#039;&lt;br /&gt;
	return first .. &#039; &#039; .. second&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{cob}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt; contains the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:ExampleArgs|main|&#039;&#039;firstInvokeArg&#039;&#039;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Now if we were to call &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt;, the following would happen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{#invoke:ExampleArgs|main|&#039;&#039;firstInvokeArg&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
(call #invoke directly without template)&amp;lt;/pre&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(call #invoke directly without template)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039; secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are three options you can set to change this behaviour: &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt;. If you set &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; then only arguments passed from the current frame will be accepted; if you set &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; then only arguments passed from the parent frame will be accepted; and if you set &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; then arguments will be passed from both the current and parent frames, but the parent frame will have priority over the current frame. Here are the results in terms of &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
; frameOnly&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; parentOnly&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; parentFirst&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# If you set both the &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; options, the module won&#039;t fetch any arguments at all from #invoke. This is probably not what you want.&lt;br /&gt;
# In some situations a parent frame may not be available, e.g. if getArgs is passed the parent frame rather than the current frame. In this case, only the frame arguments will be used (unless parentOnly is set, in which case no arguments will be used) and the &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; options will have no effect.&lt;br /&gt;
&lt;br /&gt;
=== Wrappers ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;wrappers&#039;&#039; option is used to specify a limited number of templates as &#039;&#039;wrapper templates&#039;&#039;, that is, templates whose only purpose is to call a module. If the module detects that it is being called from a wrapper template, it will only check for arguments in the parent frame; otherwise it will only check for arguments in the frame passed to getArgs. This allows modules to be called by either #invoke or through a wrapper template without the loss of performance associated with having to check both the frame and the parent frame for each argument lookup.&lt;br /&gt;
&lt;br /&gt;
For example, the only content of [[Template:Side box]] (excluding content in {{tag|noinclude}} tags) is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. There is no point in checking the arguments passed directly to the #invoke statement for this template, as no arguments will ever be specified there. We can avoid checking arguments passed to #invoke by using the &#039;&#039;parentOnly&#039;&#039; option, but if we do this then #invoke will not work from other pages either. If this were the case, the {{para|text|Some text}} in the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main|text=Some text}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; would be ignored completely, no matter what page it was used from. By using the &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; option to specify &#039;Template:Side box&#039; as a wrapper, we can make &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main|text=Some text}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; work from most pages, while still not requiring that the module check for arguments on the [[Template:Side box]] page itself.&lt;br /&gt;
&lt;br /&gt;
Wrappers can be specified either as a string, or as an array of strings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	wrappers = &#039;Template:Wrapper template&#039;&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	wrappers = {&lt;br /&gt;
		&#039;Template:Wrapper 1&#039;,&lt;br /&gt;
		&#039;Template:Wrapper 2&#039;,&lt;br /&gt;
		-- Any number of wrapper templates can be added here.&lt;br /&gt;
	}&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; option changes the default behaviors of the &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; options.&lt;br /&gt;
&lt;br /&gt;
{{collapse top|title=Behaviors of &#039;&#039;frameOnly&#039;&#039; and &#039;&#039;parentOnly&#039;&#039; in relations with wrapper templates}}&lt;br /&gt;
&lt;br /&gt;
; If &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt; is specified as a wrapper template:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; is true or not set&lt;br /&gt;
&lt;br /&gt;
The frame arguments will not be used at all.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; is false, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; is false or not set&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039; secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; is false, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; is true&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; If &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; is set but &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt; is not in the &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; list:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; is true or not set&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; is false, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; is false or not set&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039; secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; is false, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; is true&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;firstInvokeArg&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# The module will automatically detect if it is being called from a wrapper template&#039;s /sandbox subpage, so there is no need to specify sandbox pages explicitly.&lt;br /&gt;
# If the &#039;&#039;wrappers&#039;&#039; option is set and no parent frame is available, the module will always get the arguments from the frame passed to &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Writing to the args table ===&lt;br /&gt;
&lt;br /&gt;
Sometimes it can be useful to write new values to the args table. This is possible with the default settings of this module. (However, bear in mind that it is usually better coding style to create a new table with your new values and copy arguments from the args table as needed.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
args.foo = &#039;some value&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is possible to alter this behaviour with the &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; options. If &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; is set then it is not possible to write any values to the args table at all. If &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; is set, then it is possible to add new values to the table, but it is not possible to add a value if it would overwrite any arguments that are passed from #invoke.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Ref tags ===&lt;br /&gt;
&lt;br /&gt;
This module uses [[mw:Extension:Scribunto/Lua reference manual#Metatables|metatables]] to fetch arguments from #invoke. This allows access to both the frame arguments and the parent frame arguments without using the &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; function. This can help if your module might be passed {{tag|ref}} tags as input.&lt;br /&gt;
&lt;br /&gt;
As soon as {{tag|ref}} tags are accessed from Lua, they are processed by the MediaWiki software and the reference will appear in the reference list at the bottom of the article. If your module proceeds to omit the reference tag from the output, you will end up with a phantom reference – a reference that appears in the reference list but without any number linking to it. This has been a problem with modules that use &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; to detect whether to use the arguments from the frame or the parent frame, as those modules automatically process every available argument.&lt;br /&gt;
&lt;br /&gt;
This module solves this problem by allowing access to both frame and parent frame arguments, while still only fetching those arguments when it is necessary. The problem will still occur if you use &amp;lt;code&amp;gt;pairs(args)&amp;lt;/code&amp;gt; elsewhere in your module, however.&lt;br /&gt;
&lt;br /&gt;
=== Known limitations ===&lt;br /&gt;
&lt;br /&gt;
The use of metatables also has its downsides. Most of the normal Lua table tools won&#039;t work properly on the args table, including the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; operator, the &amp;lt;code&amp;gt;next()&amp;lt;/code&amp;gt; function, and the functions in the table library. If using these is important for your module, you should use your own argument processing function instead of this module.&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
[[Category:Lua metamodules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Module:Params]]&lt;br /&gt;
* {{tl|Template parameter value}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Wikipedia utility modules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Cascade-protected_template&amp;diff=169</id>
		<title>Template:Cascade-protected template</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Cascade-protected_template&amp;diff=169"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mbox&lt;br /&gt;
    | type = protection&lt;br /&gt;
    | image = [[File:Cascade-protection-shackle.svg|40x40px|link=|alt=]]&lt;br /&gt;
    | text = This {{{page|template}}} can only be edited by [[Wikipedia:Administrators|administrators]] because it is [[Help:Transclusion|transcluded]] onto one or more [[Wikipedia:Protection policy#Cascading protection|cascade-protected]] pages.&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Parameter&amp;diff=167</id>
		<title>Template:Parameter</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Parameter&amp;diff=167"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code class=&amp;quot;tpl-para&amp;quot; style=&amp;quot;word-break:break-word;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{style|}}}|{{{style}}}}}&amp;quot;&amp;gt;&amp;amp;#124;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{1|}}}|{{{1}}}&amp;amp;#61;}}{{{2|}}}&amp;lt;/code&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go near the bottom of 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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/A&amp;diff=165</id>
		<title>Module:Transclusion count/data/A</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/A&amp;diff=165"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
[&amp;quot;A-Class&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;A2r&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;ACArt&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;AFB_game_box_end&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;AFB_game_box_start&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;AFB_game_box_start/styles.css&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;AFC_comment&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;AFC_submission&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;AFC_submission_category_header&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;AFD_help&amp;quot;] = 167000,&lt;br /&gt;
[&amp;quot;AFD_help/styles.css&amp;quot;] = 167000,&lt;br /&gt;
[&amp;quot;AFI/Picture_box/show_picture&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;AFI_film&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;AFL&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;AFL_Car&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;AFL_Col&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;AFL_Ess&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;AFL_Gee&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;AFL_Haw&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;AFL_Mel&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;AFL_NM&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;AFL_Ric&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;AFL_StK&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;AFL_Tables&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;AFL_Year&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;AFL_player&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;AI-generated&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;ALG&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;AMARB&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;AM_station_data&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;ARBPIA&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;ARE&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;ARG&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;ARM&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;ASIN&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;ASN&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;ATP&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;AUS&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;AUT&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;AZE&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;A_note&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;A_or_an&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Aan&amp;quot;] = 62000,&lt;br /&gt;
[&amp;quot;Abbr&amp;quot;] = 970000,&lt;br /&gt;
[&amp;quot;Abbreviation&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Abbrlink&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Abot&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;About&amp;quot;] = 169000,&lt;br /&gt;
[&amp;quot;Absolute_page_title&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Acad&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Access_icon&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;According_to_whom&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;AchievementTable&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;AdSenseSummary&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Added&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Adjacent_communities&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Adjacent_stations&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Adjacent_stations/styles.css&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Adjacent_stations_doc&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Adjstn&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Admin&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Admin_help/helped&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Administrator_note&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Administrators&#039;_noticeboard_archives_all&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Administrators&#039;_noticeboard_navbox_all&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Adminnote&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Advert&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;Aet&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;AfC_accept/C_percentage&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;AfC_age_category&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;AfC_comment&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;AfC_date_category&amp;quot;] = 264000,&lt;br /&gt;
[&amp;quot;AfC_status/age&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;AfC_status/backlog&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;AfC_submission&amp;quot;] = 44000,&lt;br /&gt;
[&amp;quot;AfC_submission/comments&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;AfC_submission/declined&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;AfC_submission/draft&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;AfC_submission/helptools&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;AfC_submission/pending&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;AfC_submission/styles.css&amp;quot;] = 44000,&lt;br /&gt;
[&amp;quot;AfC_submission/tools&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;AfC_submission_category_header&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;AfC_submission_category_header/day&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;AfC_submission_category_header/td&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;AfC_talk/C_percentage&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;AfC_topic&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;AfD_categories_horizontal_shortnames&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;AfD_count_link&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Afd-merged-from&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Afd_bottom/old&amp;quot;] = 412000,&lt;br /&gt;
[&amp;quot;Afd_top/old&amp;quot;] = 412000,&lt;br /&gt;
[&amp;quot;Afd_top/old/styles.css&amp;quot;] = 412000,&lt;br /&gt;
[&amp;quot;Africa_topic&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;After_extra_time&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Age&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Age_in_days&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Age_in_years&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Age_in_years,_months,_weeks_and_days&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Age_in_years,_months_and_days&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Age_in_years_and_days&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Age_in_years_and_days_nts&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Agree&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Ahnentafel&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Ahnentafel/styles.css&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Air_Force_Historical_Research_Agency&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Air_force&amp;quot;] = 7500,&lt;br /&gt;
[&amp;quot;Air_force/core&amp;quot;] = 7500,&lt;br /&gt;
[&amp;quot;Aircontent&amp;quot;] = 9500,&lt;br /&gt;
[&amp;quot;Aircraft_specs&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Aircraft_specs/convert&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Aircraft_specs/eng&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Aircraft_specs/length&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Aircraft_specs/range&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Aircraft_specs/speed&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Airport-dest-list&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Airport_codes&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Airport_destination_list&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Aka&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Al&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Album&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Album_chart&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Album_cover_fur&amp;quot;] = 53000,&lt;br /&gt;
[&amp;quot;Album_label_category&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Album_label_category/core&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Album_ratings&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Album_reviews&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Albums_category&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Albums_category/core&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Albums_category/type/default&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Align&amp;quot;] = 206000,&lt;br /&gt;
[&amp;quot;Aligned_table&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;AllIrelandByCountyCatNav&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;AllMusic&amp;quot;] = 77000,&lt;br /&gt;
[&amp;quot;All_Ireland_by_county_category_navigation&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;All_plot&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Allcaps&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Allcaps/styles.css&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Allmusic&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Allow_wrap&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Already_done&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Also&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Also_known_as&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Alternating_rows_table&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Alternating_rows_table/styles.css&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Alumni&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Always_substitute&amp;quot;] = 9100,&lt;br /&gt;
[&amp;quot;Ambox&amp;quot;] = 1480000,&lt;br /&gt;
[&amp;quot;Ambox_globe&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Ambox_globe_current_red&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;American_English&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;American_football_roster/Footer&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;American_football_roster/Header&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;American_football_roster/Player&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Americanfootballbox&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Anarchism_announcements&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Anarchism_announcements/shell&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Anchor&amp;quot;] = 95000,&lt;br /&gt;
[&amp;quot;Angbr&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Angbr_IPA&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Angle_bracket&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Anglican_navbox_titlestyle&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Anglicise_rank&amp;quot;] = 545000,&lt;br /&gt;
[&amp;quot;Animal_tasks&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Anime_News_Network&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Anl&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Annotated_link&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Anonblock&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Antonym_of_(dis)establish&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Apostrophe&amp;quot;] = 97000,&lt;br /&gt;
[&amp;quot;Arbitration_Committee_candidate/data&amp;quot;] = 108000,&lt;br /&gt;
[&amp;quot;Archive&amp;quot;] = 342000,&lt;br /&gt;
[&amp;quot;Archive_bottom&amp;quot;] = 68000,&lt;br /&gt;
[&amp;quot;Archive_box&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Archive_list&amp;quot;] = 96000,&lt;br /&gt;
[&amp;quot;Archive_top&amp;quot;] = 48000,&lt;br /&gt;
[&amp;quot;Archive_top/styles.css&amp;quot;] = 48000,&lt;br /&gt;
[&amp;quot;Archive_top_green&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Archive_top_green/styles.css&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Archive_top_red&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Archive_top_red/styles.css&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Archivebottom&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Archivebox&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Archives&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Archivetop&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Army&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Army/core&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Art_UK_bio&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Art_UK_bio/plural&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Article&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;ArticleHistory&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Article_alerts_box&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Article_alerts_box/styles.css&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Article_for_improvement_banner/Picture_box&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Article_for_improvement_banner/Picture_box/show_picture&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Article_history&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Article_links&amp;quot;] = 514000,&lt;br /&gt;
[&amp;quot;Article_links_2&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Article_or_page&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Article_stub_box&amp;quot;] = 2370000,&lt;br /&gt;
[&amp;quot;Articles_by_Importance&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Articles_by_Quality&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Articles_for_creation_links&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;As_of&amp;quot;] = 92000,&lt;br /&gt;
[&amp;quot;As_written&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Asbox&amp;quot;] = 2350000,&lt;br /&gt;
[&amp;quot;Asia_topic&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Asof&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Assessed-Class&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Assignment&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Assignment_milestones&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Association_of_Tennis_Professionals&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;AstDys&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Asterisk&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Astro_list_redirect_comment&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;AthAbbr&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Atnhead&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Atop&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Atopg&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Atopr&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;Attached_KML&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Au&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;AuEduNewbie&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Audio&amp;quot;] = 41000,&lt;br /&gt;
[&amp;quot;Audio_sample&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;AustralianFootball&amp;quot;] = 8900,&lt;br /&gt;
[&amp;quot;Australian_Dictionary_of_Biography&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Australian_English&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Australian_Football_League_team&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Australian_dollar&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Australian_party_style&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Australian_politics/name&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Australian_politics/party_colours&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Austria_metadata_Wikidata&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Austria_population_Wikidata&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Aut&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Authority_control&amp;quot;] = 2280000,&lt;br /&gt;
[&amp;quot;Authority_control_(arts)&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Auto_link&amp;quot;] = 73000,&lt;br /&gt;
[&amp;quot;Autobiography&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Autolink&amp;quot;] = 41000,&lt;br /&gt;
[&amp;quot;Automated_tools&amp;quot;] = 88000,&lt;br /&gt;
[&amp;quot;Automated_tools/core&amp;quot;] = 88000,&lt;br /&gt;
[&amp;quot;Automatic_archive_navigator&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Automatic_archives_blurb&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Automatic_category_TOC&amp;quot;] = 858000,&lt;br /&gt;
[&amp;quot;Automatic_category_TOC/core&amp;quot;] = 857000,&lt;br /&gt;
[&amp;quot;Automatic_taxobox&amp;quot;] = 104000,&lt;br /&gt;
[&amp;quot;Automatically_generated&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Aviation_Safety_Network_accident_history&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Aviation_accidents_and_incidents&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Avoid_wrap&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;Awaiting_admin&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Awaitingadmin&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Award2&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Awards&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Awards_table&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;Awards_table/styles.css&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;Ayd&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Aye&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:A_or_an&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Module:A_or_an/words&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Module:About&amp;quot;] = 170000,&lt;br /&gt;
[&amp;quot;Module:Adjacent_stations&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Module:Adjacent_stations/Amtrak&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Module:Adjacent_stations/Deutsche_Bahn&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Module:Adjacent_stations/Indian_Railways&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Module:Adjacent_stations/JR_East&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Module:Adjacent_stations/i18n&amp;quot;] = 80000,&lt;br /&gt;
[&amp;quot;Module:Administrators&#039;_noticeboard_archives&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Module:Administrators&#039;_noticeboard_archives/styles.css&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Module:AfC_submission_catcheck&amp;quot;] = 340000,&lt;br /&gt;
[&amp;quot;Module:AfC_topic&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Module:Age&amp;quot;] = 1410000,&lt;br /&gt;
[&amp;quot;Module:Ahnentafel&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Module:Airport_destination_list&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Module:Aligned_dates_list&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Module:Aligned_table&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:All_Ireland_by_county_category_navigation&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Module:Anchor&amp;quot;] = 95000,&lt;br /&gt;
[&amp;quot;Module:Ancient_Egypt_era&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Ancient_Egypt_era/data&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Ancient_Egypt_kings&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Ancient_Egypt_kings/data&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Ancient_Olympiads&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Ancient_Olympiads/data&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Annotated_link&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Module:Archive&amp;quot;] = 342000,&lt;br /&gt;
[&amp;quot;Module:Archive/config&amp;quot;] = 342000,&lt;br /&gt;
[&amp;quot;Module:Archive_list&amp;quot;] = 98000,&lt;br /&gt;
[&amp;quot;Module:Archives/bots&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:Arguments&amp;quot;] = 37200000,&lt;br /&gt;
[&amp;quot;Module:Armenian&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Arrowverse_redirect_category_handler&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Module:Article_history&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Module:Article_history/Category&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Module:Article_history/config&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Module:Article_history/styles.css&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Module:Article_stub_box&amp;quot;] = 2370000,&lt;br /&gt;
[&amp;quot;Module:Article_stub_box/styles.css&amp;quot;] = 2370000,&lt;br /&gt;
[&amp;quot;Module:Articles_by_class&amp;quot;] = 50000,&lt;br /&gt;
[&amp;quot;Module:Asbox_stubtree&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Module:Attached_KML&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:Attached_KML/styles.css&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:Australian_place_map&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Module:Authority_control&amp;quot;] = 2300000,&lt;br /&gt;
[&amp;quot;Module:Authority_control/auxiliary&amp;quot;] = 712000,&lt;br /&gt;
[&amp;quot;Module:Authority_control/config&amp;quot;] = 2300000,&lt;br /&gt;
[&amp;quot;Module:Auto_date_formatter&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Automated_taxobox&amp;quot;] = 496000,&lt;br /&gt;
[&amp;quot;Module:Autotaxobox&amp;quot;] = 647000,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Used_in_system&amp;diff=163</id>
		<title>Template:Used in system</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Used_in_system&amp;diff=163"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:High-use|main|1=|2={{{2|}}}|system={{#if:{{{1|}}}|{{{1}}}|in system messages}}&amp;lt;noinclude&amp;gt;|nocat=true&amp;lt;/noinclude&amp;gt;}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Module_link&amp;diff=161</id>
		<title>Template:Module link</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Module_link&amp;diff=161"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;amp;#123;&amp;amp;#123;{{{{{|safesubst:}}}#invoke:Separated entries|main|[[Module:{{{1}}}{{{section|}}}|#invoke:{{{1}}}]]|{{{2|&#039;&#039;function&#039;&#039;}}}|separator=&amp;amp;#124;}}&amp;amp;#125;&amp;amp;#125;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Ml&amp;diff=159</id>
		<title>Template:Ml</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Ml&amp;diff=159"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Module link]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Cot&amp;diff=157</id>
		<title>Template:Cot</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Cot&amp;diff=157"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Collapse top]]&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Cob&amp;diff=155</id>
		<title>Template:Cob</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Cob&amp;diff=155"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Collapse bottom]]&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Sandbox_other&amp;diff=153</id>
		<title>Template:Sandbox other</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Sandbox_other&amp;diff=153"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{safesubst:&amp;lt;noinclude/&amp;gt;#if:{{safesubst:&amp;lt;noinclude/&amp;gt;#ifeq:{{safesubst:&amp;lt;noinclude/&amp;gt;#invoke:String|sublength|s={{safesubst:&amp;lt;noinclude/&amp;gt;SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{safesubst:&amp;lt;noinclude/&amp;gt;#ifeq:{{safesubst:&amp;lt;noinclude/&amp;gt;SUBPAGENAME}}|doc|1}}{{safesubst:&amp;lt;noinclude/&amp;gt;#invoke:String|match|{{safesubst:&amp;lt;noinclude/&amp;gt;PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Tag&amp;diff=151</id>
		<title>Template:Tag</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Tag&amp;diff=151"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code class=&amp;quot;{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}&amp;quot; style=&amp;quot;{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;color:inherit;|{{{style|}}}}}&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
 Opening tag&lt;br /&gt;
--&amp;gt;{{#switch:{{{2|pair}}}&lt;br /&gt;
  |c|close =&lt;br /&gt;
  |e|empty|s|single|v|void&lt;br /&gt;
  |o|open&lt;br /&gt;
  |p|pair = &amp;amp;lt;{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}|&amp;amp;#32;{{{params|{{{attribs}}}}}}}}&lt;br /&gt;
 }}&amp;lt;!--&lt;br /&gt;
 Content between tags&lt;br /&gt;
--&amp;gt;{{#switch:{{{2|pair}}}&lt;br /&gt;
  |c|close = {{{content|}}}&lt;br /&gt;
  |e|empty|s|single|v|void = &amp;amp;#32;&amp;amp;#47;&amp;amp;gt;&lt;br /&gt;
  |o|open = &amp;amp;gt;{{{content|}}}&lt;br /&gt;
  |p|pair = {{#ifeq:{{{1|tag}}}|!--||&amp;amp;gt;}}{{{content|...}}}&lt;br /&gt;
 }}&amp;lt;!--&lt;br /&gt;
 Closing tag&lt;br /&gt;
--&amp;gt;{{#switch:{{{2|pair}}}&lt;br /&gt;
  |e|empty|s|single|v|void&lt;br /&gt;
  |o|open =&lt;br /&gt;
  |c|close&lt;br /&gt;
  |p|pair = {{#ifeq:{{{1|tag}}}|!--|--&amp;amp;gt;|&amp;amp;lt;&amp;amp;#47;{{{1|tag}}}&amp;amp;gt;}}&lt;br /&gt;
 }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/code&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Collapse_bottom&amp;diff=149</id>
		<title>Template:Collapse bottom</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Collapse_bottom&amp;diff=149"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;|}&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|Template:Collapse top/doc}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD THIS TEMPLATE&#039;S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Collapse_top&amp;diff=147</id>
		<title>Template:Collapse top</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Collapse_top&amp;diff=147"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ safesubst:&amp;lt;noinclude/&amp;gt;ifsubst||&amp;lt;templatestyles src=&amp;quot;Template:Collapse_top/styles.css&amp;quot;/&amp;gt;}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:{{{indent|0}}}&amp;quot;&amp;gt;&amp;lt;!-- NOTE: width renders incorrectly if added to main STYLE section --&amp;gt;&lt;br /&gt;
{| role=&amp;quot;presentation&amp;quot; &amp;lt;!-- Template:Collapse top --&amp;gt; class=&amp;quot;mw-collapsible mw-archivedtalk {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{expand|{{{collapse|}}}}}}||mw-collapsed}} {{{class|}}}&amp;quot; style=&amp;quot;color:inherit; background: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|Silver}}}; margin: 0.2em auto auto; width:{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{width|}}}|{{{width}}}|100%}}; clear: {{{clear|both}}}; padding: 1px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! class=&amp;quot;{{main other|cot-header-mainspace|cot-header-other}}&amp;quot; style=&amp;quot;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{bg|}}}|background:{{{bg}}}|{{ safesubst:&amp;lt;noinclude/&amp;gt;ifsubst|{{main other|background:#F0F2F5|background:#CCFFCC}}|}}}}; font-size:87%; padding:0.2em 0.3em; text-align:{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{left|}}}|left|{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{align|}}}|left|center}}}}; {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{fc|}}}|color: {{{fc}}};|{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{bg|}}}|color:#202122|{{ safesubst:&amp;lt;noinclude/&amp;gt;ifsubst|color:black;|}}}}}}&amp;quot; | &amp;lt;div style=&amp;quot;font-size:115%;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{left|}}}||margin:0 4em}}&amp;quot;&amp;gt;{{{1|{{{title|{{{reason|{{{header|{{{heading|{{{result|Extended content}}}}}}}}}}}}}}}}}}&amp;lt;/div&amp;gt;   &lt;br /&gt;
{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{warning|{{{2|}}}}}}&lt;br /&gt;
|{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;!}}-&lt;br /&gt;
{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;!}} style=&amp;quot;text-align:center; font-style:italic;&amp;quot; {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;!}} {{{2|The following is a closed discussion. {{strongbad|Please do not modify it.}} }}} }}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:inherit; border: solid {{{border2|1px Silver}}}; padding: {{{padding|0.6em}}}; background: {{{bg2|var(--background-color-base, #fff)}}};&amp;quot; {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;!}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{lorem ipsum|3}}&lt;br /&gt;
{{Collapse bottom}}&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Para&amp;diff=145</id>
		<title>Template:Para</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Para&amp;diff=145"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Parameter]]&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Separated_entries&amp;diff=143</id>
		<title>Module:Separated entries</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Separated_entries&amp;diff=143"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module takes positional parameters as input and concatenates them with&lt;br /&gt;
-- an optional separator. The final separator (the &amp;quot;conjunction&amp;quot;) can be&lt;br /&gt;
-- specified independently, enabling natural-language lists like&lt;br /&gt;
-- &amp;quot;foo, bar, baz and qux&amp;quot;. The starting parameter can also be specified.&lt;br /&gt;
&lt;br /&gt;
local compressSparseArray = require(&#039;Module:TableTools&#039;).compressSparseArray&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local dataPlural = args.dataPlural&lt;br /&gt;
	local separator = args.separator&lt;br /&gt;
		-- Decode (convert to Unicode) HTML escape sequences, such as &amp;quot;&amp;amp;#32;&amp;quot; for space.&lt;br /&gt;
		and mw.text.decode(args.separator) or &#039;&#039;&lt;br /&gt;
	local conjunction = args.conjunction and mw.text.decode(args.conjunction) or separator&lt;br /&gt;
	-- Discard values before the starting parameter.&lt;br /&gt;
	local start = tonumber(args.start)&lt;br /&gt;
	if start then&lt;br /&gt;
		for i = 1, start - 1 do args[i] = nil end&lt;br /&gt;
	end&lt;br /&gt;
	-- Discard named parameters.&lt;br /&gt;
	local values = compressSparseArray(args)&lt;br /&gt;
	local result = mw.text.listToText(values, separator, conjunction)&lt;br /&gt;
	if dataPlural and #values &amp;gt; 0 and (#separator &amp;gt; 0 or #conjunction &amp;gt; 0) then&lt;br /&gt;
		-- flag to [[Module:Detect singular]] whether this is a list with &amp;gt;1 element&lt;br /&gt;
		result = result..&#039;&amp;lt;span style=&amp;quot;display:none&amp;quot; data-plural=&amp;quot;&#039;..(#values &amp;gt; 1 and &#039;1&#039; or &#039;0&#039;)..&#039;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunction(separator, conjunction, first)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {frameOnly = (frame.args.frameOnly or &#039;&#039;) ~= &#039;&#039;})&lt;br /&gt;
		args.separator = separator or args.separator&lt;br /&gt;
		args.conjunction = conjunction or args.conjunction&lt;br /&gt;
		args.first = first or args.first&lt;br /&gt;
		return p._main(args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.main = makeInvokeFunction()&lt;br /&gt;
p.br = makeInvokeFunction(&#039;&amp;lt;br /&amp;gt;&#039;)&lt;br /&gt;
p.comma = makeInvokeFunction(mw.message.new(&#039;comma-separator&#039;):plain())&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Ifsubst&amp;diff=141</id>
		<title>Template:Ifsubst</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Ifsubst&amp;diff=141"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ safesubst:&amp;lt;noinclude/&amp;gt;#if:{{{demo|}}}&lt;br /&gt;
|{{ safesubst:&amp;lt;noinclude/&amp;gt;#ifeq:{{{demo}}} |no&lt;br /&gt;
 |{{{no|{{{2|}}}}}}&lt;br /&gt;
 |{{{yes|{{{1|}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
|{{ safesubst:&amp;lt;noinclude/&amp;gt;#ifeq:{{ safesubst:&amp;lt;noinclude/&amp;gt;NAMESPACE}}|{{NAMESPACE}}&lt;br /&gt;
 |{{{no|{{{2|}}}}}}&lt;br /&gt;
 |{{{yes|{{{1|}}}}}}&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Mbox&amp;diff=139</id>
		<title>Template:Mbox</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Mbox&amp;diff=139"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Message box|mbox}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- 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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Protection_padlock&amp;diff=137</id>
		<title>Template:Protection padlock</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Protection_padlock&amp;diff=137"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Protection banner|main}}&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module_talk:Infobox&amp;diff=135</id>
		<title>Module talk:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module_talk:Infobox&amp;diff=135"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template talk:Infobox]]&lt;br /&gt;
&lt;br /&gt;
{{Rcat shell|&lt;br /&gt;
{{R from remote talk page}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template_talk:Infobox&amp;diff=133</id>
		<title>Template talk:Infobox</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template_talk:Infobox&amp;diff=133"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Permanently protected}}&lt;br /&gt;
{{talkheader}}&lt;br /&gt;
{{WikiProject banner shell|&lt;br /&gt;
{{WikiProject Infoboxes}}&lt;br /&gt;
}}&lt;br /&gt;
{{User:MiszaBot/config&lt;br /&gt;
|archiveheader = {{talkarchivenav}}&lt;br /&gt;
|maxarchivesize = 75K&lt;br /&gt;
|counter = 20&lt;br /&gt;
|minthreadsleft = 6&lt;br /&gt;
|algo = old(90d)&lt;br /&gt;
|archive = Template talk:Infobox/Archive %(counter)d&lt;br /&gt;
}}&lt;br /&gt;
{{Lua sidebar}}&lt;br /&gt;
&lt;br /&gt;
== Patch: make {{para|decat|yes}} prevent categorization from [[Module:Infobox]] under [[:Category:Pages using infobox templates with ignored data cells]] too ==&lt;br /&gt;
&lt;br /&gt;
{{edit template-protected|answered=yes}}&lt;br /&gt;
&lt;br /&gt;
If you change line #167 in [[Module:Infobox]] from&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot;&amp;gt;&lt;br /&gt;
if rowArgs.data then&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot;&amp;gt;&lt;br /&gt;
if rowArgs.data and (args.decat ~= &#039;yes&#039;) then&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then {{para|decat|yes}} will also prevent categorizing because of ignored data cells.&lt;br /&gt;
&lt;br /&gt;
I&#039;d also suggest changing the module to use [[Module:Yesno]] since {{para|decat|Yes}} doesn&#039;t work as intended, for example, as I discovered before adding the right parameter to the first example under [[Template:Infobox/doc#Examples]] in my local copy of the doc. [[User:Tactica|Tactica]] ([[User talk:Tactica|talk]]) 19:50, 14 October 2025 (UTC)&lt;br /&gt;
: {{Done}} [[User:Pppery|* Pppery *]] [[User talk:Pppery|&amp;lt;sub style=&amp;quot;color:#800000&amp;quot;&amp;gt;it has begun...&amp;lt;/sub&amp;gt;]] 23:40, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== image flip ==&lt;br /&gt;
&lt;br /&gt;
Is there a way to flip images in an infobox? The image flip template does not seem to work with it. ←&amp;amp;nbsp;[[User:Metallurgist|Metallurgist]] ([[User talk:Metallurgist|talk]]) 00:49, 2 December 2025 (UTC)&lt;br /&gt;
:I&#039;m pretty sure that there was a discussion on this some years ago, the overwhelming consensus being that image flipping (left to right) was not to be encouraged, because it could be seen as misleading; but I can&#039;t find it now. That said, our image policies and guidelines are spread about over many pages, and it&#039;s often difficult to find even simple things - like the policy on recommended sizes is not on the same page as the policy on captions. --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1f339; ([[User talk:Redrose64|talk]]) 16:48, 2 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Mystery image appearing at top of InfoBox ==&lt;br /&gt;
&lt;br /&gt;
The article [[Nile]] in English Wikipedia has an infobox, and it displays the image [[commons:File:Cairo_skyline,_Panoramic_view,_Egypt.jpg]] at the top.  But that image is not mentioend anywhere in the page&#039;s markup.  Where is the image coming from?  And how would one remove it from that InfoBox? [[User:Noleander|Noleander]] ([[User talk:Noleander|talk]]) 02:51, 5 January 2026 (UTC)&lt;br /&gt;
:{{replyto|Noleander}} By default, [[Template:Infobox river]] pulls an image from Commons based upon the information at the appropriate Wikidata page, which for [[Nile]] is [[d:Q3392]], specifically the property [[d:Q3392#P18]]. The actual infobox code is &amp;lt;syntaxhighlight lang=wikitext&amp;gt;{{#invoke:WikidataIB |getValue|rank=best|P18 |name=image |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced=no |noicon=yes |maxvals=1 |{{{image|}}}}}&amp;lt;/syntaxhighlight&amp;gt; which for [[Nile]] emits &amp;lt;samp&amp;gt;{{#invoke:WikidataIB |getValue|rank=best|P18 |name=image |qid=Q3392 |suppressfields= |fetchwikidata=ALL |onlysourced=no |noicon=yes |maxvals=1 }}&amp;lt;/samp&amp;gt;. This may be overridden by filling in the article&#039;s infobox with a valid non-blank value for {{para|image}}, or suppressed entirely using {{para|suppressfields|image}}. --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1F98C; ([[User talk:Redrose64|talk]]) 11:00, 5 January 2026 (UTC)&lt;br /&gt;
::Thanks; excellent information. [[User:Noleander|Noleander]] ([[User talk:Noleander|talk]]) 15:30, 5 January 2026 (UTC)&lt;br /&gt;
:Also replied at [[Template talk:Infobox river#How hide wikidata photo at top of the InfoBox?]]. Please avoid cross-posting &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 12:34, 5 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Autoheaders but off for one element ==&lt;br /&gt;
&lt;br /&gt;
With {{tl|Infobox radio station}} I am running into an increasing amount of articles (e.g. [[Chapman Radio]]) where I want to have city and country show all the time, even if none of the parameters beneath has been specified (e.g. for internet radio stations). The infobox has autoheaders turned on. How do I keep it for the other headers but make the first header always display?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wikitext&amp;gt;&lt;br /&gt;
| header1     = {{ubl|{{{city|}}}|{{Country name|{{{country|}}}|notfound={{{country|}}} }} }}&lt;br /&gt;
&lt;br /&gt;
| label2      = Broadcast area&lt;br /&gt;
| class2      = label&lt;br /&gt;
|  data2      = {{{area|}}}&lt;br /&gt;
&lt;br /&gt;
| label3      = [[Frequency|Frequenc{{pluralize from text|{{if empty|{{{frequency|}}}|{{{frequencies|}}}}}|plural=ies|singular=y}}]]&lt;br /&gt;
|  data3      = {{if empty|{{{frequency|}}}|{{{frequencies|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label4      = [[Radio Data System|RDS]]&lt;br /&gt;
|  data4      = {{{rds|}}}&lt;br /&gt;
&lt;br /&gt;
| label5      = Branding&lt;br /&gt;
|  data5      = {{{branding|}}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; [[User:Sammi Brie|&amp;lt;span style=&amp;quot;color:#ba4168&amp;quot;&amp;gt;Sammi Brie&amp;lt;/span&amp;gt;]] (she/her · [[User talk:Sammi Brie|t]] · [[Special:Contributions/Sammi Brie|c]]) 04:58, 17 February 2026 (UTC)&lt;br /&gt;
:{{replyto|Sammi Brie}} Have you considered setting {{para|area|Internet}} in the articles concerned? --[[User:Redrose64|&amp;lt;span style=&amp;quot;color:#a80000; background:#ffeeee; text-decoration:inherit&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;rose64]] &amp;amp;#x1f339; ([[User talk:Redrose64|talk]]) 14:42, 17 February 2026 (UTC)&lt;br /&gt;
::That&#039;s not a one-size-fits-all solution @[[User:Redrose64|Redrose64]]. The internet really isn&#039;t an area. There are also stations on DAB I have to deal with, or that have 20 FM frequencies that don&#039;t belong in an infobox. [[User:Sammi Brie|&amp;lt;span style=&amp;quot;color:#ba4168&amp;quot;&amp;gt;Sammi Brie&amp;lt;/span&amp;gt;]] (she/her · [[User talk:Sammi Brie|t]] · [[Special:Contributions/Sammi Brie|c]]) 21:19, 17 February 2026 (UTC)&lt;br /&gt;
:::Why not put those two in new data{{var|N}} parameters and modify the header. The header doesn&#039;t really describe all things in that section. That seems like the simplest and most correct fix. [[User:Gonnym|Gonnym]] ([[User talk:Gonnym|talk]]) 13:06, 18 February 2026 (UTC)&lt;br /&gt;
:::I agree with Gonnym. You can move the city/country into data1, perhaps with &amp;quot;Location&amp;quot; as label1. Then in header2 you can give a header for Broadcast area, Frequency and RDS. Have a look what I&#039;ve done in [[Template:Infobox radio station/sandbox]] &amp;amp;mdash;&amp;amp;nbsp;Martin &amp;lt;small&amp;gt;([[User:MSGJ|MSGJ]]&amp;amp;nbsp;·&amp;amp;nbsp;[[User talk:MSGJ|talk]])&amp;lt;/small&amp;gt; 15:02, 18 February 2026 (UTC)&lt;br /&gt;
::::Hmmmmm... That&#039;s not a bad idea. I&#039;m thinking about ways that this could be done without changing the formatting. There&#039;s no good header for the stuff right under there because it&#039;s often fundamentally basic information (that can&#039;t be buried in one of the header bins below). Linking [[Special:Permalink/1339018214|your revision]] because I think I want to do some of my own trial-and-error. [[User:Sammi Brie|&amp;lt;span style=&amp;quot;color:#ba4168&amp;quot;&amp;gt;Sammi Brie&amp;lt;/span&amp;gt;]] (she/her · [[User talk:Sammi Brie|t]] · [[Special:Contributions/Sammi Brie|c]]) 05:12, 21 February 2026 (UTC)&lt;br /&gt;
:::::Another option would be to set them as the {{para|subheader}}. [[User:Primefac|Primefac]] ([[User talk:Primefac|talk]]) 08:51, 27 March 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Auto implement [[Template:longitem]] ==&lt;br /&gt;
&lt;br /&gt;
I have recently been adding {{tl|longitem}} to numerous Infoboxes ([[Special:Diff/1343081710/1353100912|example]]) to better wrap long items in labels. It has occurred to me, shouldn&#039;t this be automatic? Is there any situation where you would &#039;&#039;&#039;not&#039;&#039;&#039; want better wrap labels that take up 2 lines? It would seem to me that it would be a much better solution to automatically do this at the level of {{tl|Infobox}}/[[Module:Infobox]] rather then having to individually wrap any infobox label that has the potential to wrap to a second line. &lt;br /&gt;
&lt;br /&gt;
If there is an objection to automatically implementing this on every infobox, could we implement it but &#039;&#039;hide&#039;&#039; it behind a flag like {{para|auto_longitem}} (to mimic the way {{para|autoheaders}} is used)? &lt;br /&gt;
&lt;br /&gt;
Boils down to 2 questions:&lt;br /&gt;
# Is there any objection to adding such a feature?&lt;br /&gt;
# How technically feasible is it to achieve?&lt;br /&gt;
&lt;br /&gt;
Pinging users who have done major work on this module: {{ping|Izno|Fayenatic london|Pppery|Plastikspork|Frietjes|Gonnym|Primefac}} &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 17:50, 9 May 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I don&#039;t see a need for something needed so irregularly in a generic template. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 18:47, 9 May 2026 (UTC)&lt;br /&gt;
::{{ping|izno}} can you say more? {{tq|Needed so irregularly}}? It seems to be used quite a lot so not sure I understand your meaning? &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 18:58, 9 May 2026 (UTC)&lt;br /&gt;
:::You&#039;ve added it to a dozen templates in the past month and a half but only to a handful of parameters each. It doesn&#039;t need to be supported at that level of use. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 19:03, 9 May 2026 (UTC)&lt;br /&gt;
::::I guess my point is rather than having to add it one by one, wouldn&#039;t it be easier to just have it automatically implemented? I&#039;m genuinely asking as I don&#039;t have enough of an understanding of the Module to know, is there a downside to automatically wrapping long labels with less padding that would make this a bad idea to do? I agree I&#039;ve only added it to a few templates recently, but wouldn&#039;t it be better to not have to search for these cases and manually add it and instead have it automatically done. What am I missing? &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 21:06, 9 May 2026 (UTC)&lt;br /&gt;
:::::So I was able to pretty quickly and easily achieve this with [[Special:Diff/1316064257/1353378980|this edit]] to [[Module:Infobox/styles.css]]. Please someone let me know (or simply revert it) if there is any issue with this that I am overlooking. &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 23:06, 9 May 2026 (UTC)&lt;br /&gt;
::::::Ugh so it caused an issue with [[Template:Infobox soap character]]. Open to ideas... &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 02:25, 10 May 2026 (UTC)&lt;br /&gt;
::::::@[[User:Zackmann08|Zackmann08]] Never ever make test edits to a module so widely transcluded. Please don&#039;t do that again. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 15:53, 10 May 2026 (UTC)&lt;br /&gt;
:::::::To be fair, I tested the edits repeatedly... My edit summary doesn&#039;t accurately portray that and I will be sure to better summarize in the future. This was quite extensively tested. An unforeseen &#039;&#039;&#039;very minor&#039;&#039;&#039; issue cropped up and I &#039;&#039;&#039;immediately&#039;&#039;&#039; reverted my edit, but this was a minor style issue. It is not like I blanked data or broke templates. Your warning is noted, but I feel overly dramatic. &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 15:56, 10 May 2026 (UTC)&lt;br /&gt;
::::::::I could have told you, if that was what you intended to implement, that it would cause issues. It is not a minor issue. I could have told you that your change would break how the template works if you had proposed the actual change on the talk page using a sandbox (and would probably also affect mobile poorly, based on the specific change). Do better.&lt;br /&gt;
::::::::An immediate revert is insufficient; you&#039;re still dropping 3 million pages into the job queue. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 16:00, 10 May 2026 (UTC)&lt;br /&gt;
::::::::Making that change is also incompatible with where the template will eventually go (see [[User:Izno/Sandbox/Infobox]]).&lt;br /&gt;
::::::::If you want to handle long items, you will need to continue implementing them ad hoc. [[User:Izno|Izno]] ([[User talk:Izno|talk]]) 16:01, 10 May 2026 (UTC)&lt;br /&gt;
:::::::::{{ping|Izno}} that is duly noted. I felt I tried to solicit your input and you were pretty dismissive of the idea as a whole. In the future I will be more careful and I do apologize. I admit I completely neglected to realize that I was {{Tq|dropping 3 million pages into the job queue}}. Clearly I still have lots to learn. Rest assured I hear you loud and clear and I will do better moving forward. I &#039;&#039;&#039;had&#039;&#039;&#039; planned to continue with this idea at [[Module:Infobox/styles.css/sandbox]] &#039;&#039;&#039;and&#039;&#039;&#039; to request a review and leave it to someone else to actually implement in the live version of the code. Based on the wholly negative reaction I guess it is best to just walk away and focus on other projects. &#039;&#039;&#039;[[User:Zackmann08|&amp;lt;span style=&amp;quot;color:#00d5ff !important&amp;quot;&amp;gt;Zack&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#007F94 !important&amp;quot;&amp;gt;mann&amp;lt;/span&amp;gt;]]&#039;&#039;&#039; (&amp;lt;sup&amp;gt;[[User_talk:Zackmann08|Talk to me]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Zackmann08|&amp;lt;span style=&amp;quot;color:orange !important&amp;quot;&amp;gt;What I been doing&amp;lt;/span&amp;gt;]]&amp;lt;/sub&amp;gt;) 16:06, 10 May 2026 (UTC)&lt;br /&gt;
:Thanks for the ping, but this is beyond my skill set. I merely updated some category names. – [[User:Fayenatic london|Fayenatic]] [[User talk:Fayenatic london|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;L&amp;lt;/span&amp;gt;&#039;&#039;&#039;ondon]] 14:34, 10 May 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Dark Mode==&lt;br /&gt;
I&#039;m confused. Why exactly is Infobox styling completely hidden in dark mode while other CSS isn&#039;t? &amp;lt;span style=&amp;quot;font-family: Times New Roman, serif; font-size: 16px;&amp;quot;&amp;gt;--&#039;&#039;&#039;&#039;&#039;[[User:DollarStoreBa&#039;al|&amp;lt;span style=&amp;quot;color:#023020&amp;quot;&amp;gt;DollarStoreBa&#039;al&amp;lt;/span&amp;gt;]][[User Talk:DollarStoreBa&#039;al|&amp;lt;sup&amp;gt;&amp;lt;span style=&amp;quot;color:#000080&amp;quot;&amp;gt;Converse&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;]]&#039;&#039;&#039;&#039;&#039;&amp;lt;/span&amp;gt; 22:44, 9 May 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Hlist/styles.css&amp;diff=131</id>
		<title>Template:Hlist/styles.css</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Hlist/styles.css&amp;diff=131"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
/* &lt;br /&gt;
 * hlist styles are defined in core and Minerva and differ in Minerva. The&lt;br /&gt;
 * current definitions here (2023-01-01) are sufficient to override Minerva&lt;br /&gt;
 * without use of the hlist-separated class. The most problematic styles were&lt;br /&gt;
 * related to margin, padding, and the bullet. Check files listed at&lt;br /&gt;
 * [[MediaWiki talk:Common.css/to do#hlist-separated]]&lt;br /&gt;
 */&lt;br /&gt;
/*&lt;br /&gt;
 * TODO: When the majority of readership supports it (or some beautiful world&lt;br /&gt;
 * in which grade C support is above the minimum threshold), use :is()&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
	/*&lt;br /&gt;
	 * don&#039;t trust the note that says margin doesn&#039;t work with inline&lt;br /&gt;
	 * removing margin: 0 makes dds have margins again&lt;br /&gt;
	 * We also want to reset margin-right in Minerva&lt;br /&gt;
	 */&lt;br /&gt;
	margin: 0; &lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display requested top-level lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist dl dl,&lt;br /&gt;
.hlist dl ol,&lt;br /&gt;
.hlist dl ul,&lt;br /&gt;
.hlist ol dl,&lt;br /&gt;
.hlist ol ol,&lt;br /&gt;
.hlist ol ul,&lt;br /&gt;
.hlist ul dl,&lt;br /&gt;
.hlist ul ol,&lt;br /&gt;
.hlist ul ul {&lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide empty list items */&lt;br /&gt;
.hlist .mw-empty-li {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* TODO: :not() can maybe be used here to remove the later rule. naive test&lt;br /&gt;
 * seems to work. more testing needed. like so:&lt;br /&gt;
 *.hlist dt:not(:last-child)::after {&lt;br /&gt;
 *	content: &amp;quot;: &amp;quot;;&lt;br /&gt;
 *}&lt;br /&gt;
 *.hlist dd:not(:last-child)::after,&lt;br /&gt;
 *.hlist li:not(:last-child)::after {&lt;br /&gt;
 *	content: &amp;quot; · &amp;quot;;&lt;br /&gt;
 *	font-weight: bold;&lt;br /&gt;
 *}&lt;br /&gt;
 */&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt::after {&lt;br /&gt;
	content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd::after,&lt;br /&gt;
.hlist li::after {&lt;br /&gt;
	content: &amp;quot;\a0· &amp;quot;;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd:last-child::after,&lt;br /&gt;
.hlist dt:last-child::after,&lt;br /&gt;
.hlist li:last-child::after {&lt;br /&gt;
	content: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child::before,&lt;br /&gt;
.hlist dd dt:first-child::before,&lt;br /&gt;
.hlist dd li:first-child::before,&lt;br /&gt;
.hlist dt dd:first-child::before,&lt;br /&gt;
.hlist dt dt:first-child::before,&lt;br /&gt;
.hlist dt li:first-child::before,&lt;br /&gt;
.hlist li dd:first-child::before,&lt;br /&gt;
.hlist li dt:first-child::before,&lt;br /&gt;
.hlist li li:first-child::before {&lt;br /&gt;
	content: &amp;quot; (&amp;quot;;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd dd:last-child::after,&lt;br /&gt;
.hlist dd dt:last-child::after,&lt;br /&gt;
.hlist dd li:last-child::after,&lt;br /&gt;
.hlist dt dd:last-child::after,&lt;br /&gt;
.hlist dt dt:last-child::after,&lt;br /&gt;
.hlist dt li:last-child::after,&lt;br /&gt;
.hlist li dd:last-child::after,&lt;br /&gt;
.hlist li dt:last-child::after,&lt;br /&gt;
.hlist li li:last-child::after {&lt;br /&gt;
	content: &amp;quot;)&amp;quot;;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
	counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
	counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist ol &amp;gt; li::before {&lt;br /&gt;
	content: &amp;quot; &amp;quot; counter(listitem) &amp;quot;\a0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child::before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child::before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child::before {&lt;br /&gt;
	content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot;\a0&amp;quot;;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Plainlist/styles.css&amp;diff=129</id>
		<title>Template:Plainlist/styles.css</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Plainlist/styles.css&amp;diff=129"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template|small=yes}} */&lt;br /&gt;
.plainlist ol,&lt;br /&gt;
.plainlist ul {&lt;br /&gt;
	line-height: inherit;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0; /* Reset Minerva default */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.plainlist ol li,&lt;br /&gt;
.plainlist ul li {&lt;br /&gt;
	margin-bottom: 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Infobox/doc&amp;diff=127</id>
		<title>Module:Infobox/doc</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Infobox/doc&amp;diff=127"/>
		<updated>2026-05-26T02:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-use|3308957|all-pages = yes}}&lt;br /&gt;
{{module rating|protected}}&lt;br /&gt;
{{Lua|Module:Italic title|Module:Navbar|Module:Yesno}}&lt;br /&gt;
{{Uses TemplateStyles|Module:Infobox/styles.css|Template:Hlist/styles.css|Template:Plainlist/styles.css}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module:Infobox&#039;&#039;&#039; is a [[WP:Module|module]] that implements the {{tl|Infobox}} template. Please see the template page for usage instructions.&lt;br /&gt;
&lt;br /&gt;
== Tracking categories ==&lt;br /&gt;
* {{clc|Pages using infobox templates with ignored data cells}}&lt;br /&gt;
* {{clc|Articles using infobox templates with no data rows}}&lt;br /&gt;
* {{clc|Pages using embedded infobox templates with the title parameter}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
[[Category:Wikipedia infoboxes]]&lt;br /&gt;
[[Category:Infobox modules]]&lt;br /&gt;
[[Category:Modules that check for strip markers]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Message_box/ombox.css&amp;diff=125</id>
		<title>Module:Message box/ombox.css</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Message_box/ombox.css&amp;diff=125"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.ombox {&lt;br /&gt;
	margin: 4px 0;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	border: 1px solid #a2a9b1;    /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
	background-color: var(--background-color-neutral-subtle, #f8f9fa);&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
    color: var(--color-base, #202122);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
.ombox.mbox-small {&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-speedy {&lt;br /&gt;
	border: 2px solid #b32424;    /* Red */&lt;br /&gt;
	background-color: #fee7e6;    /* Pink */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-delete {&lt;br /&gt;
	border: 2px solid #b32424;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-content {&lt;br /&gt;
	border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-style {&lt;br /&gt;
	border: 1px solid #fc3;       /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-move {&lt;br /&gt;
	border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-protection {&lt;br /&gt;
	border: 2px solid #a2a9b1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 0.25em 0.9em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0 2px 0.9em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0.9em 2px 0;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ombox .mbox-empty-cell {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* keep synced with each other type of message box as this isn&#039;t qualified */&lt;br /&gt;
.mbox-invalid-type {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.ombox {&lt;br /&gt;
		margin: 4px 10%;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.ombox.mbox-small {&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		clear: right;&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		float: right;&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		margin: 4px 0 4px 1em;&lt;br /&gt;
		width: 238px;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** T367463 */&lt;br /&gt;
body.skin--responsive table.ombox img {&lt;br /&gt;
	max-width: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night .ombox-speedy {&lt;br /&gt;
		background-color: #310402;    /* Dark red, same hue/saturation as light */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
	html.skin-theme-clientpref-os .ombox-speedy {&lt;br /&gt;
		background-color: #310402; /* Dark red, same hue/saturation as light */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Template_rating&amp;diff=123</id>
		<title>Template:Template rating</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Template_rating&amp;diff=123"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#if:{{{1|}}}&amp;lt;!-- Escape empty required first unnamed parameter --&amp;gt;|{{#switch:{{Namespace detect|template=t|module=m|demospace={{{demospace|}}}|page={{{demopage|}}}}}&lt;br /&gt;
|m&lt;br /&gt;
|t = &amp;lt;!-- ***** IF IN MODULE OR TEMPLATE NAMESPACE ***** --&amp;gt;{{ombox&lt;br /&gt;
 | type      = notice&lt;br /&gt;
 | image     = {{#switch: {{lc:{{{1|}}}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa | experimental = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=]]&lt;br /&gt;
   | alpha | a                                = [[File:Greek lc alpha icon.svg|class=skin-invert|26x26px|link=|alt=]]&lt;br /&gt;
   | beta | b                                 = [[File:Greek lc beta icon.svg|class=skin-invert|40x40px|link=|alt=]]&lt;br /&gt;
   | release | r | general | g | stable | protected | protect | p | semiprotected | semiprotect | semi = [[File:Green check.svg|40x40px|link=|alt=]]&lt;br /&gt;
   | broken | br | unstable = [[File:Red x.svg|40x40px|link=|alt=]]&lt;br /&gt;
   | deprecated | d | defunct = [[File:Historical.svg|40x40px|link=|alt=]]&lt;br /&gt;
  }}&lt;br /&gt;
 | style     = &lt;br /&gt;
 | textstyle = &lt;br /&gt;
 | text      = {{#switch: {{lc:{{{1|}}}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa | experimental = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]] is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in pre-alpha development|pre-alpha]]. It is incomplete and may or may not be in active development. Do not use it in [[Wikipedia:Article namespace|article namespace]] pages. A {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}} remains in pre-alpha until its developer, or another editor who adopts it if it is abandoned for some time, considers the basic structure complete.&lt;br /&gt;
   | alpha | a                 = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]]  is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in alpha|alpha]]. It is ready for limited use and third-party feedback. It may be used on a small number of pages, but should be monitored closely. Suggestions for new features or adjustments to input and output are welcome.&lt;br /&gt;
   | beta | b                  = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]]  is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in beta|beta]]. It is considered ready for widespread use, but as it is still relatively new, it should be applied with some caution to ensure results are as expected.&lt;br /&gt;
   | release | r | general | g | stable | protected | protect | p | semiprotected | semiprotect | semi = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]]  is rated as [[:Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s for general use|ready for general use]]. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on [[Wikipedia:Help pages|help pages]] and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through [[Wikipedia:Template sandbox and test cases|sandbox testing]] rather than repeated trial-and-error editing.&lt;br /&gt;
   | broken | br | unstable    = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]]  is rated as [[:Category:Unstable {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|unstable]]. It has missing dependencies, compatibility issues, or output errors that make it unusable. Editors are encouraged to [[Special:EditPage/{{FULLPAGENAME}}|improve its compatibility]] or [[Wikipedia:Templates for discussion|nominate it for deletion]] if it cannot be fixed.&lt;br /&gt;
   | deprecated | d | defunct  = This [[Wikipedia:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}|{{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}]]  is rated as &#039;&#039;&#039;[[:Category:Deprecated {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|deprecated]]&#039;&#039;&#039; and defunct.{{#if:{{{replaced|}}}|{{space}}It is recommended editors use [[{{{replaced}}}]].}}{{#if:{{{message|}}}|{{space}}{{{message}}}}}&lt;br /&gt;
   | #default                  = {{error|Page using [[Template:Template rating]] with &amp;lt;u&amp;gt;invalid&amp;lt;/u&amp;gt; template or module rating in {{para|1}} parameter.}}[[Category:Pages using template rating template with unknown parameters|{{FULLPAGENAME}}]]&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;!-- Categorize.&lt;br /&gt;
--&amp;gt;{{#if:{{{demopage|}}}{{{demospace|}}}||&lt;br /&gt;
      {{#switch: {{lc:{{SUBPAGENAME}}}}&lt;br /&gt;
         | doc | sandbox =&amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         | {{#ifeq: {{{nocat|}}} | true &lt;br /&gt;
             | &amp;lt;!-- No category if user sets nocat=true --&amp;gt; &lt;br /&gt;
             | {{#switch: {{lc:{{{1|}}}}}&lt;br /&gt;
                 | pre-alpha | prealpha | pa | experimental = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in pre-alpha development|{{PAGENAME}}]]&lt;br /&gt;
                 | alpha | a                                = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in alpha|{{PAGENAME}}]]&lt;br /&gt;
                 | beta | b                                 = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s in beta|{{PAGENAME}}]]&lt;br /&gt;
                 | release | r | general | g | stable | protected | p | semiprotected | semiprotect | semi = [[Category:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}s for general use|{{PAGENAME}}]]&lt;br /&gt;
                 | deprecated | d | defunct = [[Category:Deprecated {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|{{PAGENAME}}]]&lt;br /&gt;
				 | broken | br | unstable = [[Category:Unstable {{lc:{{NAMESPACE:{{{demopage|{{FULLPAGENAME}}}}}}}}}s|{{PAGENAME}}]]&lt;br /&gt;
               }}&lt;br /&gt;
           }}&lt;br /&gt;
       }}&lt;br /&gt;
}}&lt;br /&gt;
| #default = &amp;lt;!-- ***** Error not in Template or Module namespaces ***** --&amp;gt;{{if preview|1={{error|Error: {{tl|Template rating}} can only be used on pages in the [[Wikipedia:Template namespace|Template:]] or [[Wikipedia:Module namespace|Module: namespaces]].}}}}[[Category:Pages with templates in the wrong namespace]]&lt;br /&gt;
}}&amp;lt;!-- End switch. --&amp;gt;|{{If preview|1={{error|Page using [[Template:Template rating]] with &amp;lt;u&amp;gt;empty&amp;lt;/u&amp;gt; {{para|1}} module rating parameter.}}}}[[Category:Pages using template rating template with unknown parameters|{{FULLPAGENAME}}]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;!-- End if. Display protection template if necessary, this will obviously show it for /doc page too since it uses {{FULLPAGENAME}}: --&amp;gt;{{#switch:{{Namespace detect|template=t|module=m|demospace={{{demospace|}}}}}&lt;br /&gt;
|t|m = {{#if:{{{suppress-pp|}}}&lt;br /&gt;
           |&lt;br /&gt;
           |{{#switch:{{#invoke:Effective protection level|edit|1={{{demopage|{{FULLPAGENAME}}}}}}}&lt;br /&gt;
                |*|user = &amp;lt;!-- If not protected page, do nothing. --&amp;gt;&lt;br /&gt;
                |#default = {{#ifeq:{{lc:{{SUBPAGENAME}}}}|doc&lt;br /&gt;
                    |&amp;lt;!-- {{#if:{{{2|}}}{{{doc-reason|}}}{{{3|}}}{{{doc-action|}}} --&amp;gt;&amp;lt;!-- &lt;br /&gt;
                      --&amp;gt;&amp;lt;!-- | --&amp;gt;{{pp|{{{2|{{{doc-reason|}}}}}}|action={{{3|{{{doc-action|}}}}}}}}&amp;lt;!--&lt;br /&gt;
                  --&amp;gt;&amp;lt;!-- }} --&amp;gt;&lt;br /&gt;
                 --&amp;gt;|{{pp|1={{{reason|{{{doc-reason|}}}}}}|action={{{action|{{{doc-action|}}}}}}|demolevel={{{demolevel|}}}}}&amp;lt;!-- &lt;br /&gt;
             --&amp;gt;}}&amp;lt;!--&lt;br /&gt;
        --&amp;gt;}}&amp;lt;!-- &lt;br /&gt;
    --&amp;gt;}}&lt;br /&gt;
|#default = &amp;lt;!-- If not in template or module namespace, do nothing&lt;br /&gt;
--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
  End template, start tracking.&lt;br /&gt;
--&amp;gt;{{#invoke:Check for unknown parameters| check&lt;br /&gt;
| unknown = {{#if:{{{demopage|}}}{{{demospace|}}}||{{#switch:{{Namespace detect|template=t|module=m}}|m|t=[[Category:Pages using template rating template with unknown parameters|_VALUE_{{FULLPAGENAME}}]]}}}}&lt;br /&gt;
| preview = Page using [[Template:Template rating]] with unknown parameter &amp;quot;_VALUE_&amp;quot;&lt;br /&gt;
| ignoreblank=y | demospace | demopage | 1 | 2 | 3 | reason | action | doc-reason | doc-action | nocat | replaced | message | demolevel | suppress-pp | demopage&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;!-- End tracking. --&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{template rating/sandbox|release|nocat=true|demospace=template|demopage=template:template rating|demolevel=edit}}&lt;br /&gt;
{{mbox|text=The above template is a demo.}}&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go in Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/I&amp;diff=121</id>
		<title>Module:Transclusion count/data/I</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Transclusion_count/data/I&amp;diff=121"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
[&amp;quot;IAST&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;IA_SCOTUS_URL&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;IBDB_name&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;ICD10&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;ICD9&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;ICS&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;ICS_flag&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;IDN&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;IMDb_episode&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;IMDb_episodes&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;IMDb_name&amp;quot;] = 171000,&lt;br /&gt;
[&amp;quot;IMDb_title&amp;quot;] = 209000,&lt;br /&gt;
[&amp;quot;IMO_Number&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;IMSLP&amp;quot;] = 9100,&lt;br /&gt;
[&amp;quot;INA&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;IND&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;INR&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;INRConvert&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;INRConvert/CurrentRate&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;INRConvert/USD&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;INRConvert/out&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;IOBDB_name&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;IP&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;IPA&amp;quot;] = 179000,&lt;br /&gt;
[&amp;quot;IPA_audio_link&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;IPA_link&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;IPAblink&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;IPAc-cmn&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;IPAc-en&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;IPAc-pl&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;IPSummary&amp;quot;] = 82000,&lt;br /&gt;
[&amp;quot;IP_summary&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;IPtalk&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;IPuser&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;IPvandal&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;IRC&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;IRI&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;IRL&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;IRN&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;ISBN&amp;quot;] = 474000,&lt;br /&gt;
[&amp;quot;ISBN?&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;ISBNT&amp;quot;] = 46000,&lt;br /&gt;
[&amp;quot;ISBN_missing&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;ISFDB_name&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;ISFDB_title&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;ISL&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;ISO_15924/script-example-character&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;ISO_15924/wp-article&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;ISO_15924/wp-article/format&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;ISO_15924/wp-article/label&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;ISO_3166_code&amp;quot;] = 239000,&lt;br /&gt;
[&amp;quot;ISO_3166_name&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;ISO_639_name&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;ISP&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;ISR&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;ISSN&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;ISSN_link&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;ISTAT&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;ISU_figure_skater&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;ITA&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;ITF&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;ITF_profile&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;ITIS&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;ITN_talk&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;ITN_talk/date&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;IUCN_banner&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;I_sup&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Ice_hockey_box&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Ice_hockey_stats&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Icehockeystats&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Icelandic_name&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Icon&amp;quot;] = 659000,&lt;br /&gt;
[&amp;quot;If&amp;quot;] = 426000,&lt;br /&gt;
[&amp;quot;If_all&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;If_autoconfirmed&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;If_between&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;If_both&amp;quot;] = 204000,&lt;br /&gt;
[&amp;quot;If_dark&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;If_dark/styles.css&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;If_either&amp;quot;] = 41000,&lt;br /&gt;
[&amp;quot;If_empty&amp;quot;] = 6650000,&lt;br /&gt;
[&amp;quot;If_first_display_both&amp;quot;] = 119000,&lt;br /&gt;
[&amp;quot;If_in_category&amp;quot;] = 179000,&lt;br /&gt;
[&amp;quot;If_in_page&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;If_last_display_both&amp;quot;] = 37000,&lt;br /&gt;
[&amp;quot;If_mobile&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;If_mobile/styles.css&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;If_preview&amp;quot;] = 65000,&lt;br /&gt;
[&amp;quot;If_then_show&amp;quot;] = 435000,&lt;br /&gt;
[&amp;quot;Ifempty&amp;quot;] = 900000,&lt;br /&gt;
[&amp;quot;Ifeq&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Iferror_then_show&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Ifexist_not_redirect&amp;quot;] = 1850000,&lt;br /&gt;
[&amp;quot;Ifnotempty&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Ifnoteq_then_show&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Ifnumber&amp;quot;] = 72000,&lt;br /&gt;
[&amp;quot;Ifsubst&amp;quot;] = 1020000,&lt;br /&gt;
[&amp;quot;Ih&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Ill&amp;quot;] = 211000,&lt;br /&gt;
[&amp;quot;Illm&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Image_frame&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Image_label&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Image_label_begin&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Image_label_end&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Image_label_small&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Image_needed&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Image_other&amp;quot;] = 190000,&lt;br /&gt;
[&amp;quot;Image_requested&amp;quot;] = 137000,&lt;br /&gt;
[&amp;quot;Image_requested/Category_helper&amp;quot;] = 127000,&lt;br /&gt;
[&amp;quot;Imbox&amp;quot;] = 992000,&lt;br /&gt;
[&amp;quot;Imdb_name&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Imdb_title&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Importance&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Importance/colour&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Importance_mask&amp;quot;] = 615000,&lt;br /&gt;
[&amp;quot;Improve_categories&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Improve_documentation&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Improve_plot&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;In_class&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;In_lang&amp;quot;] = 384000,&lt;br /&gt;
[&amp;quot;In_progress&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;In_string&amp;quot;] = 302000,&lt;br /&gt;
[&amp;quot;In_title&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Inactive_userpage_blanked&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Inaturalist_taxon&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Include-USGov&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Incomplete_list&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Inconclusive&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Increase&amp;quot;] = 60000,&lt;br /&gt;
[&amp;quot;Incumbent_pope&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Indent&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Indented_plainlist&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Independent_sources&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;IndexFungorum&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Indian_English&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Indian_railway_code&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Indian_rupee&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Inflation&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Inflation-fn&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Inflation-year&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Inflation/IN/startyear&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Inflation/UK&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Inflation/UK/dataset&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Inflation/UK/startyear&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Inflation/US&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Inflation/US-GDP&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Inflation/US-GDP/dataset&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Inflation/US-GDP/startyear&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Inflation/US/dataset&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Inflation/US/startyear&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Inflation/fn&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Inflation/year&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Info&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Infobox&amp;quot;] = 3400000,&lt;br /&gt;
[&amp;quot;Infobox/Columns&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox/mobileviewfix.css&amp;quot;] = 173000,&lt;br /&gt;
[&amp;quot;Infobox/styles-images.css&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Infobox3cols&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Infobox_AFL_biography&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_Athletics_Championships&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Infobox_Australian_place&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_Australian_place/styles.css&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_Australian_place/table&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_COA_wide&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Infobox_Canada_electoral_district&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_Chinese&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Infobox_Chinese/Chinese&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_Chinese/Footer&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Infobox_Chinese/Header&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Infobox_Christian_leader&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Infobox_French_commune&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Infobox_French_subdivision&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_Gaelic_games_biography&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Infobox_Gaelic_games_player&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_German_location&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_German_place&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_Grand_Prix_race_report&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_Greece_place&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Infobox_Greek_Dimos&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_Hindu_temple&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_Indian_constituency&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Infobox_Indian_constituency/defaultdata&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Infobox_Italian_comune&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Infobox_Korean&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_Korean/auto&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_Korean/auto/categories&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_Korean/base&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_Korean/base/auto&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_Korean/categories&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_Korean_name&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_Korean_name/auto&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_Korean_television_name&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_NASCAR_driver&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_NASCAR_race_report&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_NCAA_basketball_conference_tournament&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_NCAA_team_season&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_NFL_biography&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Infobox_NFL_team_season&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_NRHP&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Infobox_NRHP/conv&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Infobox_NRHP/locmapin2region&amp;quot;] = 67000,&lt;br /&gt;
[&amp;quot;Infobox_Olympic_event&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Infobox_Olympic_event/event_link&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Infobox_Olympic_event/games_text&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Infobox_Pan_American_Games_event&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_Paralympic_event&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_Paralympic_event/games_text&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_Romanian_subdivision&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_Russian_district&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_Russian_inhabited_locality&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Infobox_Russian_inhabited_locality/PosMapFS&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Infobox_Russian_inhabited_locality/federal_subject&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Infobox_SCOTUS_case&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Infobox_SSSI&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_Site_of_Special_Scientific_Interest&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_Slovak_place&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_Swiss_town&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_Switzerland_municipality&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_Turkey_place&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Infobox_U.S._county&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_U.S._county/district&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_U.S._legislation&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_UK_constituency&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_UK_constituency/year&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_UK_legislation&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Infobox_UK_place&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/NoDialCode&amp;quot;] = 8200,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/NoPostCode&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/area&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/dens&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/dist&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/local&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Infobox_UK_place/styles.css&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Infobox_UNESCO_World_Heritage_Site&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_UN_resolution&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_US_Supreme_Court_case&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_US_Supreme_Court_case/courts&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_United_States_legislative_district&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_United_States_legislative_district/representative&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_Wikipedia_user&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Infobox_academic&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Infobox_aircraft&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_aircraft/styles.css&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_aircraft_occurrence&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_airline&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_airline/styles.css&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_airport&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_airport/datatable&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_airport/styles.css&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_album&amp;quot;] = 168000,&lt;br /&gt;
[&amp;quot;Infobox_album/color&amp;quot;] = 207000,&lt;br /&gt;
[&amp;quot;Infobox_album/link&amp;quot;] = 168000,&lt;br /&gt;
[&amp;quot;Infobox_anatomy&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Infobox_ancient_site&amp;quot;] = 6800,&lt;br /&gt;
[&amp;quot;Infobox_animanga/Footer&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Infobox_animanga/Header&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Infobox_animanga/Print&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Infobox_animanga/Video&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Infobox_architect&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Infobox_artist&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Infobox_artist_discography&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Infobox_artwork&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_automobile&amp;quot;] = 9200,&lt;br /&gt;
[&amp;quot;Infobox_award&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_badminton_player&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_baseball_biography&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Infobox_baseball_biography/style&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Infobox_baseball_biography/styles.css&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Infobox_baseball_team_season&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_baseball_team_season/leagueseason&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_baseball_team_season/season&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_baseball_team_season/styles.css&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_basketball_biography&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Infobox_basketball_biography/style&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Infobox_basketball_club&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_basketball_club/styles.css&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_beauty_pageant&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_bilateral_relations&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Infobox_bishop_styles&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Infobox_body_of_water&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Infobox_book&amp;quot;] = 62000,&lt;br /&gt;
[&amp;quot;Infobox_book/styles.css&amp;quot;] = 62000,&lt;br /&gt;
[&amp;quot;Infobox_boxer&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Infobox_brand&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_brand/styles.css&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_bridge&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Infobox_building&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Infobox_bus_company&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_cemetery&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_character&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Infobox_character/styles.css&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Infobox_chess_biography&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Infobox_chess_player&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Infobox_church&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_church/denomination&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_church/font_color&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_civil_conflict&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Infobox_civilian_attack&amp;quot;] = 7500,&lt;br /&gt;
[&amp;quot;Infobox_college_coach&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_college_football_game&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_college_football_player&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_college_sports_team_season&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Infobox_college_sports_team_season/link&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Infobox_college_sports_team_season/name&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Infobox_college_sports_team_season/succession&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Infobox_college_sports_team_season/team&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Infobox_comedian&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_comic_book_title&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_comics_character&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Infobox_comics_creator&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Infobox_comics_creator/styles.css&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Infobox_company&amp;quot;] = 92000,&lt;br /&gt;
[&amp;quot;Infobox_company/styles.css&amp;quot;] = 92000,&lt;br /&gt;
[&amp;quot;Infobox_computing_device&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_concert&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Infobox_constituency&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Infobox_country&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;Infobox_country/formernext&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Infobox_country/imagetable&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Infobox_country/multirow&amp;quot;] = 9200,&lt;br /&gt;
[&amp;quot;Infobox_country/status_text&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Infobox_country/styles.css&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Infobox_country_at_games&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_country_at_games/core&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_country_at_games/see_also&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_court_case&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Infobox_court_case/images&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_court_case/styles.css&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Infobox_cricket_tournament&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_cricketer&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_cricketer/career&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_cricketer/national_side&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Infobox_criminal&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Infobox_curler&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_cycling_race_report&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Infobox_cyclist&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Infobox_dam&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Infobox_deity&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_deity/color&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_designation_list&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Infobox_designation_list/entry&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Infobox_dim&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Infobox_diocese&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Infobox_drug&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/chemical_formula&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/data_page_link&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatATC&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatCASnumber&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatChEBI&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatChEMBL&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatChemDBNIAID&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatChemSpider&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatCompTox&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatDrugBank&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatIUPHARBPS&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatJmol&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatKEGG&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatPDBligand&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatPubChemCID&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatPubChemSID&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/formatUNII&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/legal_status&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Infobox_drug/licence&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Infobox_drug/maintenance_categories&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/non-ref-space&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Infobox_drug/pregnancy_category&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/styles.css&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_drug/title&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_economist&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_election&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Infobox_election/shortname&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_election/styles.css&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Infobox_enzyme&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Infobox_ethnic_group&amp;quot;] = 8000,&lt;br /&gt;
[&amp;quot;Infobox_event&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;Infobox_family&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_field_hockey_player&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_figure_skater&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Infobox_film&amp;quot;] = 169000,&lt;br /&gt;
[&amp;quot;Infobox_film/short_description&amp;quot;] = 165000,&lt;br /&gt;
[&amp;quot;Infobox_film_awards&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Infobox_film_awards/link&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Infobox_film_awards/style&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Infobox_film_or_theatre_festival&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_food&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Infobox_football_biography&amp;quot;] = 218000,&lt;br /&gt;
[&amp;quot;Infobox_football_club&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Infobox_football_club_season&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Infobox_football_league&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_football_league_season&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Infobox_football_match&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Infobox_football_tournament&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_football_tournament_season&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;Infobox_former_subdivision&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Infobox_former_subdivision/styles.css&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Infobox_galaxy&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_game&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Infobox_game_score&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Infobox_games&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_gene&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_given_name&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Infobox_golfer&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_golfer/highest_ranking&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_government_agency&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_government_cabinet&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Infobox_gridiron_football_biography&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Infobox_gridiron_football_biography/position&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Infobox_gridiron_football_team_season&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Infobox_gymnast&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Infobox_handball_biography&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Infobox_historic_site&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_holiday&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_holiday/date&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_horseraces&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_hospital&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Infobox_hospital/care_system&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Infobox_hospital/lists&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Infobox_hurling_championship&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_ice_hockey_biography&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Infobox_ice_hockey_player&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Infobox_ice_hockey_team&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_ice_hockey_team_season&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_international_football_competition&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Infobox_islands&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Infobox_islands/area&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_islands/density&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_islands/length&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Infobox_islands/styles.css&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Infobox_journal&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_journal/Abbreviation_search&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_journal/Bluebook_check&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_journal/Former_check&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_journal/ISO_4_check&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_journal/ISSN-eISSN&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_journal/Indexing_search&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_journal/MathSciNet_check&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_journal/NLM_check&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_journal/frequency&amp;quot;] = 9000,&lt;br /&gt;
[&amp;quot;Infobox_journal/openaccess&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_judoka&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_lake&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Infobox_language&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_language/family-color&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Infobox_language/genetic&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Infobox_language/lingualist&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_language/linguistlist&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Infobox_language/ref&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Infobox_law_enforcement_agency&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_legislation&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_legislative_district&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_legislative_election&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_legislative_election/row&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_legislative_election/styles.css&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_legislative_term&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_legislature&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Infobox_library&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_lighthouse&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_lighthouse/light&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_locomotive&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Infobox_magazine&amp;quot;] = 8200,&lt;br /&gt;
[&amp;quot;Infobox_manner_of_address&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Infobox_martial_artist&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Infobox_martial_artist/record&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Infobox_medal_templates&amp;quot;] = 475000,&lt;br /&gt;
[&amp;quot;Infobox_medical_condition&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Infobox_medical_condition_(new)&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Infobox_medical_details&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_medical_person&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Infobox_militant_organization&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_military_conflict&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Infobox_military_installation&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_military_person&amp;quot;] = 53000,&lt;br /&gt;
[&amp;quot;Infobox_military_unit&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Infobox_mine&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_mineral&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_mobile_phone&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Infobox_mobile_phone/size&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_mobile_phone/weight&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_model&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Infobox_monument&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Infobox_mountain&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Infobox_multi-sport_competition_event&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_museum&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Infobox_musical_artist&amp;quot;] = 131000,&lt;br /&gt;
[&amp;quot;Infobox_musical_artist/hCard_class&amp;quot;] = 121000,&lt;br /&gt;
[&amp;quot;Infobox_musical_composition&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Infobox_name&amp;quot;] = 8800,&lt;br /&gt;
[&amp;quot;Infobox_name_module&amp;quot;] = 9100,&lt;br /&gt;
[&amp;quot;Infobox_newspaper&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_newspaper/styles.css&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_noble&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;Infobox_officeholder&amp;quot;] = 275000,&lt;br /&gt;
[&amp;quot;Infobox_officeholder/office&amp;quot;] = 283000,&lt;br /&gt;
[&amp;quot;Infobox_official_post&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;Infobox_organization&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Infobox_pageant_titleholder&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_park&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;Infobox_person&amp;quot;] = 568000,&lt;br /&gt;
[&amp;quot;Infobox_person/Wikidata&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Infobox_person/height&amp;quot;] = 114000,&lt;br /&gt;
[&amp;quot;Infobox_person/length&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Infobox_person/weight&amp;quot;] = 73000,&lt;br /&gt;
[&amp;quot;Infobox_philosopher&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Infobox_planet&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_play&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Infobox_political_party&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Infobox_power_station&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_prepared_food&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_professional_wrestler&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Infobox_professional_wrestling_event&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_protected_area&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Infobox_protein_family&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Infobox_publisher&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_racehorse&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Infobox_racing_driver&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Infobox_racing_driver_series_section&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Infobox_radio_show&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_radio_station&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Infobox_radio_station/styles.css&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Infobox_rail&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_rail_line&amp;quot;] = 8000,&lt;br /&gt;
[&amp;quot;Infobox_rail_service&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_reality_competition_season&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Infobox_record_label&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Infobox_recurring_event&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Infobox_religious_biography&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Infobox_religious_building&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_religious_building/color&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Infobox_restaurant&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Infobox_river&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_river/calcunit&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_river/discharge&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_river/row-style&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_river/source&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Infobox_road&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Infobox_road/meta/mask/category&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Infobox_road/meta/mask/country&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Infobox_road/styles.css&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Infobox_road_small&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_rockunit&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Infobox_royalty&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Infobox_royalty/short_description&amp;quot;] = 8900,&lt;br /&gt;
[&amp;quot;Infobox_rugby_biography&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Infobox_rugby_biography/correct_date&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Infobox_rugby_biography/depcheck&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Infobox_rugby_league_biography&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_rugby_league_biography/PLAYER&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_rugby_team&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_sailboat_specifications&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_saint&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Infobox_school&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Infobox_school/short_description&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Infobox_school/styles.css&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Infobox_school_district&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Infobox_school_district/styles.css&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Infobox_scientist&amp;quot;] = 56000,&lt;br /&gt;
[&amp;quot;Infobox_settlement&amp;quot;] = 597000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/areadisp&amp;quot;] = 259000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/columns&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/columns/styles.css&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/densdisp&amp;quot;] = 457000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/lengthdisp&amp;quot;] = 182000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/link&amp;quot;] = 107000,&lt;br /&gt;
[&amp;quot;Infobox_settlement/styles.css&amp;quot;] = 597000,&lt;br /&gt;
[&amp;quot;Infobox_ship&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Infobox_ship/career&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Infobox_ship/characteristics&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Infobox_ship/class_overview&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Infobox_ship/image&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Infobox_ship/service_record&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_shopping_mall&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Infobox_short_story&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_skier&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_soap_character&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_social_media_personality&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Infobox_software&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_software/simple&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_song&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Infobox_song/color&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Infobox_song/link&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Infobox_song_contest_national_year/Year&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_spaceflight&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Infobox_spaceflight/styles.css&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Infobox_speed_skater&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_sport_event&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Infobox_sports_competition_event&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Infobox_sports_competition_event/medalrow&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Infobox_sports_league&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Infobox_sports_season&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Infobox_sports_team&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Infobox_sportsperson&amp;quot;] = 156000,&lt;br /&gt;
[&amp;quot;Infobox_stadium&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Infobox_station&amp;quot;] = 57000,&lt;br /&gt;
[&amp;quot;Infobox_station/services&amp;quot;] = 57000,&lt;br /&gt;
[&amp;quot;Infobox_station/styles.css&amp;quot;] = 57000,&lt;br /&gt;
[&amp;quot;Infobox_street&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Infobox_swimmer&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_television&amp;quot;] = 63000,&lt;br /&gt;
[&amp;quot;Infobox_television/Short_description&amp;quot;] = 61000,&lt;br /&gt;
[&amp;quot;Infobox_television/styles.css&amp;quot;] = 63000,&lt;br /&gt;
[&amp;quot;Infobox_television_channel&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Infobox_television_channel/styles.css&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Infobox_television_episode&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_television_episode/styles.css&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Infobox_television_season&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_television_station&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_television_station/styles.css&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_tennis_biography&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_event&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament/heading&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament/style&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament_event&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament_year&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament_year/color&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Infobox_tennis_tournament_year/footer&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Infobox_tournament_season&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Infobox_train&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Infobox_university&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Infobox_user&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Infobox_venue&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Infobox_video_game&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Infobox_video_game/styles.css&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Infobox_volleyball_biography&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Infobox_weapon&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Infobox_weather_event&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/Effects&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/Footer&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/History&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/SSHWS&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/meteorology&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/scale&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Infobox_weather_event/styles.css&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Infobox_website&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Infobox_writer&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Information&amp;quot;] = 98000,&lt;br /&gt;
[&amp;quot;Information/styles.css&amp;quot;] = 98000,&lt;br /&gt;
[&amp;quot;Inlang&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Inline&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Inline_block&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Inprogress&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Input_link&amp;quot;] = 32000,&lt;br /&gt;
[&amp;quot;Instagram&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;InterSportStats&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Interlanguage_link&amp;quot;] = 257000,&lt;br /&gt;
[&amp;quot;Interlanguage_link_multi&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;International_Paralympic_Committee&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Internet_Archive&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Internet_Archive_SCOTUS_URL&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Internet_Archive_author&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Internet_Archive_film&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Intitle&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Ip&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Iptalk&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;IranCensus2006&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;IranNCSGN&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Iran_Census_2006&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Irish_place_name&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;IsIPAddress&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;IsValidPageName&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Is_MLB_league&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Is_NPB_league&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Is_continent&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Is_country_in_Central_America&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Is_country_in_the_Caribbean&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Is_interwiki_link&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Is_italic_taxon&amp;quot;] = 647000,&lt;br /&gt;
[&amp;quot;Is_redirect&amp;quot;] = 378000,&lt;br /&gt;
[&amp;quot;Is_time&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Is_valid_page_name&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Isbn&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Isnum&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Isnumeric&amp;quot;] = 117000,&lt;br /&gt;
[&amp;quot;Iso2continent&amp;quot;] = 82000,&lt;br /&gt;
[&amp;quot;Iso2country&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Iso2country/article&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Iso2country/data&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Issubst&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Italic_dab2&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Italic_disambiguation&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Italic_title&amp;quot;] = 257000,&lt;br /&gt;
[&amp;quot;Italic_title_prefixed&amp;quot;] = 8800,&lt;br /&gt;
[&amp;quot;Italictitle&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Ivmbox&amp;quot;] = 142000,&lt;br /&gt;
[&amp;quot;Ivory_messagebox&amp;quot;] = 184000,&lt;br /&gt;
[&amp;quot;Ivory_messagebox/styles.css&amp;quot;] = 184000,&lt;br /&gt;
[&amp;quot;Module:I18n/complex_date&amp;quot;] = 46000,&lt;br /&gt;
[&amp;quot;Module:IP&amp;quot;] = 147000,&lt;br /&gt;
[&amp;quot;Module:IPA&amp;quot;] = 181000,&lt;br /&gt;
[&amp;quot;Module:IPA/data&amp;quot;] = 164000,&lt;br /&gt;
[&amp;quot;Module:IPA/styles.css&amp;quot;] = 149000,&lt;br /&gt;
[&amp;quot;Module:IPA_symbol&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Module:IPA_symbol/data&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Module:IPAc-en&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Module:IPAc-en/data&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Module:IPAc-en/phonemes&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Module:IPAc-en/pronunciation&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;Module:IPAddress&amp;quot;] = 213000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166&amp;quot;] = 907000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/AT&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/BA&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/CA&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/CH&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/CN&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/DE&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/ES&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/FR&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/GB&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/GR&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/IN&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/IR&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/IT&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/National&amp;quot;] = 907000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/PL&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/RS&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/RU&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/UA&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Module:ISO_3166/data/US&amp;quot;] = 87000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639-1&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639-2&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639-2B&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639-3&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639-3_(dep)&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639-5&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639_deprecated&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639_name_to_code&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Module:ISO_639_name/ISO_639_override&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:ISOdate&amp;quot;] = 46000,&lt;br /&gt;
[&amp;quot;Module:Ice_hockey_box&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Module:Icon&amp;quot;] = 671000,&lt;br /&gt;
[&amp;quot;Module:Icon/data&amp;quot;] = 671000,&lt;br /&gt;
[&amp;quot;Module:Icon_box&amp;quot;] = 255000,&lt;br /&gt;
[&amp;quot;Module:Icon_box/data&amp;quot;] = 255000,&lt;br /&gt;
[&amp;quot;Module:If_any_equal&amp;quot;] = 250000,&lt;br /&gt;
[&amp;quot;Module:If_empty&amp;quot;] = 6650000,&lt;br /&gt;
[&amp;quot;Module:If_in_category&amp;quot;] = 179000,&lt;br /&gt;
[&amp;quot;Module:If_in_page&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Module:If_not_given_or_empty&amp;quot;] = 78000,&lt;br /&gt;
[&amp;quot;Module:If_preview&amp;quot;] = 1140000,&lt;br /&gt;
[&amp;quot;Module:If_preview/configuration&amp;quot;] = 1140000,&lt;br /&gt;
[&amp;quot;Module:If_preview/styles.css&amp;quot;] = 1140000,&lt;br /&gt;
[&amp;quot;Module:In_lang&amp;quot;] = 385000,&lt;br /&gt;
[&amp;quot;Module:Indent&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Module:Infobox&amp;quot;] = 4650000,&lt;br /&gt;
[&amp;quot;Module:Infobox/dates&amp;quot;] = 77000,&lt;br /&gt;
[&amp;quot;Module:Infobox/styles.css&amp;quot;] = 4920000,&lt;br /&gt;
[&amp;quot;Module:Infobox/utilities&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Module:Infobox3cols&amp;quot;] = 319000,&lt;br /&gt;
[&amp;quot;Module:InfoboxBuilder&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:InfoboxImage&amp;quot;] = 5580000,&lt;br /&gt;
[&amp;quot;Module:InfoboxImage/data&amp;quot;] = 3320000,&lt;br /&gt;
[&amp;quot;Module:Infobox_body_of_water_tracking&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:Infobox_cyclist_tracking&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Module:Infobox_dim&amp;quot;] = 374000,&lt;br /&gt;
[&amp;quot;Module:Infobox_dim/data&amp;quot;] = 229000,&lt;br /&gt;
[&amp;quot;Module:Infobox_election&amp;quot;] = 41000,&lt;br /&gt;
[&amp;quot;Module:Infobox_gene&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Module:Infobox_mapframe&amp;quot;] = 1690000,&lt;br /&gt;
[&amp;quot;Module:Infobox_military_conflict&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Module:Infobox_military_conflict/styles.css&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Module:Infobox_multi-lingual_name&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Module:Infobox_multi-lingual_name/data&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Module:Infobox_power_station&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Module:Infobox_road&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/browselinks&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/errors&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/length&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/locations&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/map&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/route&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Module:Infobox_road/sections&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Module:Infobox_ship&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Module:Infobox_ship/data&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Module:Infobox_ship/styles.css&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Module:Infobox_television&amp;quot;] = 63000,&lt;br /&gt;
[&amp;quot;Module:Infobox_television_disambiguation_check&amp;quot;] = 71000,&lt;br /&gt;
[&amp;quot;Module:Infobox_television_episode&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Module:Infobox_television_season_disambiguation_check&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Module:Infobox_television_season_name&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Module:Internet_Archive&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Is_article&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Module:Is_infobox_in_lead&amp;quot;] = 461000,&lt;br /&gt;
[&amp;quot;Module:Is_instance&amp;quot;] = 358000,&lt;br /&gt;
[&amp;quot;Module:Iso2nationality&amp;quot;] = 96000,&lt;br /&gt;
[&amp;quot;Module:Italic_title&amp;quot;] = 1250000,&lt;br /&gt;
[&amp;quot;Module:Italic_title2&amp;quot;] = 5800,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Uses_TemplateStyles/config&amp;diff=119</id>
		<title>Module:Uses TemplateStyles/config</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Uses_TemplateStyles/config&amp;diff=119"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local cfg = {} -- Don’t touch this line.&lt;br /&gt;
&lt;br /&gt;
-- Subpage blacklist: these subpages will not be categorized (except for the&lt;br /&gt;
-- error category, which is always added if there is an error).&lt;br /&gt;
-- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have&lt;br /&gt;
-- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules,&lt;br /&gt;
-- so they *will* have categories. All rules should be in the&lt;br /&gt;
--   [&#039;&amp;lt;subpage name&amp;gt;&#039;] = true,&lt;br /&gt;
-- format.&lt;br /&gt;
cfg[&#039;subpage_blacklist&#039;] = {&lt;br /&gt;
	[&#039;doc&#039;] = true,&lt;br /&gt;
	[&#039;sandbox&#039;] = true,&lt;br /&gt;
	[&#039;sandbox2&#039;] = true,&lt;br /&gt;
	[&#039;testcases&#039;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Sandbox title: if the stylesheet’s title is &amp;lt;template&amp;gt;/&amp;lt;stylesheet&amp;gt;.css, the&lt;br /&gt;
-- stylesheet’s sandbox is expected to be at &amp;lt;template&amp;gt;/&amp;lt;sandbox_title&amp;gt;/&amp;lt;stylesheet&amp;gt;.css&lt;br /&gt;
-- Set to nil to disable sandbox links.&lt;br /&gt;
cfg[&#039;sandbox_title&#039;] = &#039;sandbox&#039;&lt;br /&gt;
&lt;br /&gt;
-- Error category: this category is added if the module call contains errors&lt;br /&gt;
-- (e.g. no stylesheet listed). A category name without namespace, or nil&lt;br /&gt;
-- to disable categorization (not recommended).&lt;br /&gt;
cfg[&#039;error_category&#039;] = &#039;Uses TemplateStyles templates with errors&#039;&lt;br /&gt;
&lt;br /&gt;
-- Default category: this category is added if no custom category is specified&lt;br /&gt;
-- in module/template call. A category name without namespace, or nil&lt;br /&gt;
-- to disable categorization.&lt;br /&gt;
cfg[&#039;default_category&#039;] = &#039;Templates using TemplateStyles&#039;&lt;br /&gt;
&lt;br /&gt;
-- Protection conflict category: this category is added if the protection level&lt;br /&gt;
-- of any stylesheet is lower than the protection level of the template. A category name&lt;br /&gt;
-- without namespace, or nil to disable categorization (not recommended).&lt;br /&gt;
cfg[&#039;protection_conflict_category&#039;] = &#039;Templates using TemplateStyles with a different protection level&#039;&lt;br /&gt;
&lt;br /&gt;
-- Hierarchy of protection levels, used to determine whether one protection level is lower&lt;br /&gt;
-- than another and thus should populate protection_conflict_category. No protection is treated as zero &lt;br /&gt;
cfg[&#039;protection_hierarchy&#039;]  = {&lt;br /&gt;
	autoconfirmed = 1,&lt;br /&gt;
	extendedconfirmed = 2,&lt;br /&gt;
	templateeditor = 3,&lt;br /&gt;
	sysop = 4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil&lt;br /&gt;
-- to disable padlock check.&lt;br /&gt;
cfg[&#039;padlock_pattern&#039;] = &#039;{{pp-&#039;&lt;br /&gt;
&lt;br /&gt;
-- Missing padlock category: this category is added if a protected stylesheet&lt;br /&gt;
-- doesn’t contain any padlock template (specified by the above Lua pattern).&lt;br /&gt;
-- A category name without namespace (no nil allowed) if the pattern is not nil,&lt;br /&gt;
-- unused (and thus may be nil) otherwise.&lt;br /&gt;
cfg[&#039;missing_padlock_category&#039;] = &#039;Templates using TemplateStyles without padlocks&#039;&lt;br /&gt;
&lt;br /&gt;
-- Default subpage for the stylesheet if none is given&lt;br /&gt;
cfg[&#039;default_subpage_name&#039;] = &#039;styles.css&#039;&lt;br /&gt;
return cfg -- Don’t touch this line.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Uses_TemplateStyles&amp;diff=117</id>
		<title>Module:Uses TemplateStyles</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Uses_TemplateStyles&amp;diff=117"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
local mList = require(&#039;Module:List&#039;)&lt;br /&gt;
local mTableTools = require(&#039;Module:TableTools&#039;)&lt;br /&gt;
local mMessageBox = require(&#039;Module:Message box&#039;)&lt;br /&gt;
local TNT = require(&#039;Module:TNT&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function format(msg, ...)&lt;br /&gt;
	return TNT.format(&#039;I18n/Uses TemplateStyles&#039;, msg, ...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getConfig()&lt;br /&gt;
	return mw.loadData(&#039;Module:Uses TemplateStyles/config&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeEditSup(pageName)&lt;br /&gt;
	return string.format(&#039;&amp;lt;sup&amp;gt;&amp;amp;lbrack;[[Special:Edit/%s|e]]&amp;amp;rbrack;&amp;lt;/sup&amp;gt;&#039;, pageName)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Build just the &amp;quot;(sandbox)&amp;quot; suffix using the i18n message, without duplicating the main link.&lt;br /&gt;
local function makeSandboxSuffix(tsSandboxPrefixed)&lt;br /&gt;
	-- i18n message is: &amp;quot;$1 ([[$2|sandbox]])&amp;quot;&lt;br /&gt;
	-- Passing empty $1 yields &amp;quot; ([[:...|sandbox]])&amp;quot; -&amp;gt; trim leading whitespace to get &amp;quot;(sandbox)&amp;quot; portion.&lt;br /&gt;
	local s = format(&#039;sandboxlink&#039;, &#039;&#039;, &#039;:&#039; .. tsSandboxPrefixed)&lt;br /&gt;
	return (s:gsub(&#039;^%s+&#039;, &#039;&#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBox(tStyles)&lt;br /&gt;
	local boxArgs = {&lt;br /&gt;
		type = &#039;notice&#039;,&lt;br /&gt;
		small = true,&lt;br /&gt;
		image = string.format(&#039;[[File:Farm-Fresh css add.svg|32px|alt=%s]]&#039;, format(&#039;logo-alt&#039;))&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if #tStyles &amp;lt; 1 then&lt;br /&gt;
		boxArgs.text = string.format(&#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;%s&amp;lt;/strong&amp;gt;&#039;, format(&#039;error-emptylist&#039;))&lt;br /&gt;
	else&lt;br /&gt;
		local cfg = getConfig()&lt;br /&gt;
		local tStylesLinks = {}&lt;br /&gt;
&lt;br /&gt;
		for i, ts in ipairs(tStyles) do&lt;br /&gt;
			local viewLink = string.format(&#039;[[:%s]]&#039;, ts)&lt;br /&gt;
			local editSup = makeEditSup(ts)&lt;br /&gt;
&lt;br /&gt;
			local out = viewLink .. editSup&lt;br /&gt;
&lt;br /&gt;
			-- Optional sandbox link + sandbox edit link&lt;br /&gt;
			local tsTitle = mw.title.new(ts)&lt;br /&gt;
			if tsTitle and cfg[&#039;sandbox_title&#039;] then&lt;br /&gt;
				local tsSandboxTitle = mw.title.new(string.format(&lt;br /&gt;
					&#039;%s:%s/%s/%s&#039;,&lt;br /&gt;
					tsTitle.nsText,&lt;br /&gt;
					tsTitle.baseText,&lt;br /&gt;
					cfg[&#039;sandbox_title&#039;],&lt;br /&gt;
					tsTitle.subpageText&lt;br /&gt;
				))&lt;br /&gt;
&lt;br /&gt;
				if tsSandboxTitle and tsSandboxTitle.exists then&lt;br /&gt;
					local sandboxSuffix = makeSandboxSuffix(tsSandboxTitle.prefixedText)&lt;br /&gt;
					local sandboxEditSup = makeEditSup(tsSandboxTitle.prefixedText)&lt;br /&gt;
					out = out .. &#039; &#039; .. sandboxSuffix .. &#039; &#039; .. sandboxEditSup&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			tStylesLinks[i] = out&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local tStylesList = mList.makeList(&#039;bulleted&#039;, tStylesLinks)&lt;br /&gt;
		boxArgs.text = format(&lt;br /&gt;
			mw.title.getCurrentTitle():inNamespaces(828, 829) and &#039;header-module&#039; or &#039;header-template&#039;&lt;br /&gt;
		) .. &#039;\n&#039; .. tStylesList&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mMessageBox.main(&#039;mbox&#039;, boxArgs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories(args, tStyles, titleObj)&lt;br /&gt;
	if yesno(args.nocat) then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local cfg = getConfig()&lt;br /&gt;
	local cats = {}&lt;br /&gt;
&lt;br /&gt;
	-- Error category&lt;br /&gt;
	if #tStyles &amp;lt; 1 and cfg[&#039;error_category&#039;] then&lt;br /&gt;
		cats[#cats + 1] = cfg[&#039;error_category&#039;]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- TemplateStyles category&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle()&lt;br /&gt;
	if (titleObj.namespace == 10 or titleObj.namespace == 828)&lt;br /&gt;
		and not cfg[&#039;subpage_blacklist&#039;][titleObj.subpageText]&lt;br /&gt;
	then&lt;br /&gt;
		local category = args.category or cfg[&#039;default_category&#039;]&lt;br /&gt;
		if category then&lt;br /&gt;
			cats[#cats + 1] = category&lt;br /&gt;
		end&lt;br /&gt;
		if not yesno(args.noprotcat) and (cfg[&#039;protection_conflict_category&#039;] or cfg[&#039;padlock_pattern&#039;]) then&lt;br /&gt;
			local currentProt = titleObj.protectionLevels[&amp;quot;edit&amp;quot;] and titleObj.protectionLevels[&amp;quot;edit&amp;quot;][1] or nil&lt;br /&gt;
			local addedLevelCat = false&lt;br /&gt;
			local addedPadlockCat = false&lt;br /&gt;
			for _, ts in ipairs(tStyles) do&lt;br /&gt;
				local tsTitleObj = mw.title.new(ts)&lt;br /&gt;
				local tsProt = tsTitleObj.protectionLevels[&amp;quot;edit&amp;quot;] and tsTitleObj.protectionLevels[&amp;quot;edit&amp;quot;][1] or nil&lt;br /&gt;
				if cfg[&#039;padlock_pattern&#039;] and tsProt and not addedPadlockCat then&lt;br /&gt;
					local content = tsTitleObj:getContent()&lt;br /&gt;
					if not content:find(cfg[&#039;padlock_pattern&#039;]) then&lt;br /&gt;
						cats[#cats + 1] = cfg[&#039;missing_padlock_category&#039;]&lt;br /&gt;
						addedPadlockCat = true&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if cfg[&#039;protection_conflict_category&#039;] and currentProt and tsProt ~= currentProt and not addedLevelCat then&lt;br /&gt;
					currentProt = cfg[&#039;protection_hierarchy&#039;][currentProt] or 0&lt;br /&gt;
					tsProt = cfg[&#039;protection_hierarchy&#039;][tsProt] or 0&lt;br /&gt;
					if tsProt &amp;lt; currentProt then&lt;br /&gt;
						addedLevelCat = true&lt;br /&gt;
						cats[#cats + 1] = cfg[&#039;protection_conflict_category&#039;]&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;
	for i, cat in ipairs(cats) do&lt;br /&gt;
		cats[i] = string.format(&#039;[[Category:%s]]&#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(cats)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local cfg = getConfig()&lt;br /&gt;
	if #args == 0 then&lt;br /&gt;
		local prefixed = mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
		prefixed = prefixed:gsub(&amp;quot;/doc&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		args[1] = prefixed .. &amp;quot;/&amp;quot; .. cfg[&amp;quot;default_subpage_name&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	local tStyles = mTableTools.compressSparseArray(args)&lt;br /&gt;
	local box = renderBox(tStyles)&lt;br /&gt;
	local trackingCategories = renderTrackingCategories(args, tStyles)&lt;br /&gt;
	return box .. trackingCategories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local origArgs = frame:getParent().args&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(origArgs) do&lt;br /&gt;
		v = v:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
		if v ~= &#039;&#039; then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Template:Uses_TemplateStyles&amp;diff=115</id>
		<title>Template:Uses TemplateStyles</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Template:Uses_TemplateStyles&amp;diff=115"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Uses TemplateStyles|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;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>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Submit_an_edit_request/config&amp;diff=113</id>
		<title>Module:Submit an edit request/config</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Submit_an_edit_request/config&amp;diff=113"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module contains configuration data for [[Module:Submit an edit request]].&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Messages&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- The default display value for edit requests.&lt;br /&gt;
[&#039;default-display-value&#039;] = &#039;Submit an edit request&#039;,&lt;br /&gt;
&lt;br /&gt;
-- The template that stores the edit request preload text&lt;br /&gt;
[&#039;preload-template&#039;] = &#039;Template:Submit an edit request/preload&#039;,&lt;br /&gt;
&lt;br /&gt;
-- The section heading that is generated when a user clicks on an edit request&lt;br /&gt;
-- link. $1 is the protection level text, e.g. &amp;quot;Semi-protected&amp;quot; or&lt;br /&gt;
-- &amp;quot;Template-protected&amp;quot;. $2 is the current date, in the format specified by the&lt;br /&gt;
-- &amp;quot;preload-title-date-format&amp;quot; message.&lt;br /&gt;
[&#039;preload-title-text&#039;] = &#039;$1 edit request on $2&#039;,&lt;br /&gt;
&lt;br /&gt;
-- The date format for the automatically-generated section heading. The format&lt;br /&gt;
-- must be valid input for the #time parser function.&lt;br /&gt;
[&#039;preload-title-date-format&#039;] = &#039;j F Y&#039;,&lt;br /&gt;
&lt;br /&gt;
-- What do do with the generated section header if another header with the same section already exists&lt;br /&gt;
-- $1 is the original section header. $2 is an automatically generated number, starting at 2 and increasing&lt;br /&gt;
-- by one until a unique header is found.&lt;br /&gt;
[&#039;preload-title-dedup-suffix&#039;] = &#039;$1 ($2)&#039;,&lt;br /&gt;
&lt;br /&gt;
-- The names of pages (and their subpages) that make up the content of the main page for this wiki&lt;br /&gt;
[&#039;main-page-content&#039;] = {&lt;br /&gt;
	[&#039;Wikipedia:Today\&#039;s featured article&#039;] = true,&lt;br /&gt;
	[&#039;Template:In the news&#039;] = true,&lt;br /&gt;
	[&#039;Template:Did you know&#039;] = true,&lt;br /&gt;
	[&#039;Wikipedia:Selected anniversaries&#039;] = true,&lt;br /&gt;
	[&#039;Template:POTD protected&#039;] = true,&lt;br /&gt;
	[&#039;Wikipedia:Today\&#039;s featured list&#039;] = true&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The page used to request changes to things on the Main Page.&lt;br /&gt;
[&#039;main-page-request-page&#039;] = &#039;Wikipedia:Main Page/Errors&#039;,&lt;br /&gt;
&lt;br /&gt;
-- The page used to request edits to protected talk pages.&lt;br /&gt;
[&#039;protected-talk-page-request-page&#039;] = &#039;Wikipedia:Requests for page protection/Edit&#039;,&lt;br /&gt;
&lt;br /&gt;
-- The names of the templates to be used as wrappers for the &amp;quot;link&amp;quot; and &amp;quot;button&amp;quot;&lt;br /&gt;
-- functions. These are passed as arguments to the &amp;quot;wrappers&amp;quot; option of&lt;br /&gt;
-- [[Module:Arguments]].&lt;br /&gt;
[&#039;link-wrapper-template&#039;] = &#039;Template:Submit an edit request/link&#039;,&lt;br /&gt;
[&#039;button-wrapper-template&#039;] = &#039;Template:Submit an edit request&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection level config&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
protectionLevels = {&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- These settings are for the different protection levels which the module can&lt;br /&gt;
-- output edit request links for.&lt;br /&gt;
--&lt;br /&gt;
-- editintro:&lt;br /&gt;
-- The template to use as the edit intro users see when they click on an edit&lt;br /&gt;
-- request link.&lt;br /&gt;
--&lt;br /&gt;
-- request-template:&lt;br /&gt;
-- The name of the edit request template for that protection level. Do not&lt;br /&gt;
-- include the &amp;quot;Template:&amp;quot; text.&lt;br /&gt;
--&lt;br /&gt;
-- protectionlevel:&lt;br /&gt;
-- The name of the protection level, used for formatting the automatically-&lt;br /&gt;
-- generated section headings.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- Semi-protection&lt;br /&gt;
semi = {&lt;br /&gt;
	editintro = &#039;Template:Edit semi-protected/editintro&#039;,&lt;br /&gt;
	requestTemplate = &#039;edit semi-protected&#039;,&lt;br /&gt;
	levelText = &#039;Semi-protected&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Extended-confirmed-protection&lt;br /&gt;
extended = {&lt;br /&gt;
	editintro = &#039;Template:Edit extended-protected/editintro&#039;,&lt;br /&gt;
	requestTemplate = &#039;edit extended-protected&#039;,&lt;br /&gt;
	levelText = &#039;Extended-confirmed-protected&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Template-protection&lt;br /&gt;
template = {&lt;br /&gt;
	editintro = &#039;Template:Edit template-protected/editintro&#039;,&lt;br /&gt;
	requestTemplate = &#039;edit template-protected&#039;,&lt;br /&gt;
	levelText = &#039;Template-protected&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Full protection&lt;br /&gt;
full = {&lt;br /&gt;
	editintro = &#039;Template:Edit fully-protected/editintro&#039;,&lt;br /&gt;
	requestTemplate = &#039;edit fully-protected&#039;,&lt;br /&gt;
	levelText = &#039;Protected&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Interface-protection&lt;br /&gt;
interface = {&lt;br /&gt;
	editintro = &#039;Template:Edit interface-protected/editintro&#039;,&lt;br /&gt;
	requestTemplate = &#039;edit interface-protected&#039;,&lt;br /&gt;
	levelText = &#039;Interface-protected&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://rpiwiki.org/index.php?title=Module:Submit_an_edit_request&amp;diff=111</id>
		<title>Module:Submit an edit request</title>
		<link rel="alternate" type="text/html" href="https://rpiwiki.org/index.php?title=Module:Submit_an_edit_request&amp;diff=111"/>
		<updated>2026-05-26T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{Submit an edit request}}.&lt;br /&gt;
&lt;br /&gt;
local CONFIG_MODULE = &#039;Module:Submit an edit request/config&#039;&lt;br /&gt;
&lt;br /&gt;
-- Load necessary modules&lt;br /&gt;
local mRedirect = require(&#039;Module:Redirect&#039;)&lt;br /&gt;
local cfg = mw.loadData(CONFIG_MODULE)&lt;br /&gt;
local effectiveProtectionLevel = require(&#039;Module:Effective protection level&#039;)._main&lt;br /&gt;
local escape = require(&amp;quot;Module:String&amp;quot;)._escapePattern&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local validLevels = {&lt;br /&gt;
	semi = &#039;semi&#039;,&lt;br /&gt;
	extended = &#039;extended&#039;,&lt;br /&gt;
	template = &#039;template&#039;,&lt;br /&gt;
	full = &#039;full&#039;,&lt;br /&gt;
	interface = &#039;interface&#039;,&lt;br /&gt;
	manual = &#039;manual&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function message(key, ...)&lt;br /&gt;
	local params = {...}&lt;br /&gt;
	local msg = cfg[key]&lt;br /&gt;
	if #params &amp;lt; 1 then&lt;br /&gt;
		return msg&lt;br /&gt;
	else&lt;br /&gt;
		return mw.message.newRawMessage(msg):params(params):plain()&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function validateLevel(level)&lt;br /&gt;
	return level and validLevels[level] or &#039;full&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLevelInfo(level, field)&lt;br /&gt;
	return cfg.protectionLevels[level][field]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function resolveRedirect(page)&lt;br /&gt;
	return mRedirect.luaMain(page)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isProtected(page)&lt;br /&gt;
	local action = mw.title.new(page).exists and &#039;edit&#039; or &#039;create&#039;&lt;br /&gt;
	return effectiveProtectionLevel(action, page) ~= &#039;*&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeRequestUrl(level, titleObj)&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle()&lt;br /&gt;
	local basePage = titleObj.basePageTitle.fullText&lt;br /&gt;
	if cfg[&#039;main-page-content&#039;][basePage] then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(message(&#039;main-page-request-page&#039;)))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local talkPageName = titleObj.talkPageTitle&lt;br /&gt;
	if talkPageName == nil then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(message(&#039;protected-talk-page-request-page&#039;)))&lt;br /&gt;
	end&lt;br /&gt;
	talkPageName = resolveRedirect(talkPageName.prefixedText)&lt;br /&gt;
	if isProtected(talkPageName) then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(message(&#039;protected-talk-page-request-page&#039;)))&lt;br /&gt;
	end&lt;br /&gt;
	level = validateLevel(level)&lt;br /&gt;
	if level == &#039;manual&#039; then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(talkPageName, {&lt;br /&gt;
			action = &#039;edit&#039;,&lt;br /&gt;
			section = &#039;new&#039;&lt;br /&gt;
		}))&lt;br /&gt;
	end&lt;br /&gt;
	local sectionname = message(&lt;br /&gt;
			&#039;preload-title-text&#039;,&lt;br /&gt;
			getLevelInfo(level, &#039;levelText&#039;),&lt;br /&gt;
			lang:formatDate(message(&#039;preload-title-date-format&#039;))&lt;br /&gt;
	)&lt;br /&gt;
	local content = mw.title.new(talkPageName):getContent()&lt;br /&gt;
	if content and content:find(&amp;quot;== *&amp;quot; .. escape(sectionname) .. &amp;quot; *==&amp;quot;) then&lt;br /&gt;
		local dedup = 2&lt;br /&gt;
		while true do&lt;br /&gt;
			local newname = message(&amp;quot;preload-title-dedup-suffix&amp;quot;, sectionname, dedup)&lt;br /&gt;
			if not content:find(&amp;quot;== *&amp;quot; .. escape(newname) .. &amp;quot; *==&amp;quot;) then&lt;br /&gt;
				sectionname = newname&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
			dedup = dedup + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local url = mw.uri.fullUrl(talkPageName, {&lt;br /&gt;
		action = &#039;edit&#039;,&lt;br /&gt;
		editintro = getLevelInfo(level, &#039;editintro&#039;),&lt;br /&gt;
		preload = message(&#039;preload-template&#039;),&lt;br /&gt;
		preloadtitle = sectionname,&lt;br /&gt;
		section = &#039;new&#039;&lt;br /&gt;
	})&lt;br /&gt;
	url = tostring(url)&lt;br /&gt;
&lt;br /&gt;
	-- Add the preload parameters. @TODO: merge this into the mw.uri.fullUrl&lt;br /&gt;
	-- query table once [[phab:T93059]] is fixed.&lt;br /&gt;
	local function encodeParam(key, val)&lt;br /&gt;
		return string.format(&#039;&amp;amp;%s=%s&#039;, mw.uri.encode(key), mw.uri.encode(val))&lt;br /&gt;
	end&lt;br /&gt;
	url = url .. encodeParam(&#039;preloadparams[]&#039;, getLevelInfo(level, &#039;requestTemplate&#039;))&lt;br /&gt;
	url = url .. encodeParam(&#039;preloadparams[]&#039;, titleObj.prefixedText)&lt;br /&gt;
&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._link(args)&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&#039;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
		p.makeRequestUrl(args.type),&lt;br /&gt;
		args.display or message(&#039;default-display-value&#039;)&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._button(args)&lt;br /&gt;
	return require(&#039;Module:Clickable button&#039;).main{&lt;br /&gt;
		[1] = args.display or message(&#039;default-display-value&#039;),&lt;br /&gt;
		url = p.makeRequestUrl(args.type),&lt;br /&gt;
		class = &#039;mw-ui-progressive&#039;&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(func, wrapper)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
			wrappers = {wrapper}&lt;br /&gt;
		})&lt;br /&gt;
		return func(args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.link = makeInvokeFunc(p._link, message(&#039;link-wrapper-template&#039;))&lt;br /&gt;
p.button = makeInvokeFunc(p._button, message(&#039;button-wrapper-template&#039;))&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>