<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Ath-pron</id>
	<title>Module:th-pron - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Ath-pron"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:th-pron&amp;action=history"/>
	<updated>2026-05-19T06:52:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:th-pron&amp;diff=495681&amp;oldid=prev</id>
		<title>Sware: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:th-pron&amp;diff=495681&amp;oldid=prev"/>
		<updated>2026-04-21T12:44:34Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:44, 21 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:th-pron&amp;diff=495680&amp;oldid=prev</id>
		<title>wikt&gt;WingerBot: use mw.loadData(&quot;Module:headword/data&quot;).pagename in place of directly fetching pagename using mw.title.getCurrentTitle().text or .subpageText to properly support mammoth (split) pages and unsupported titles (manually assisted)</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:th-pron&amp;diff=495680&amp;oldid=prev"/>
		<updated>2025-12-12T22:27:09Z</updated>

		<summary type="html">&lt;p&gt;use mw.loadData(&amp;quot;Module:headword/data&amp;quot;).pagename in place of directly fetching pagename using mw.title.getCurrentTitle().text or .subpageText to properly support mammoth (split) pages and unsupported titles (manually assisted)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local gsub = mw.ustring.gsub&lt;br /&gt;
local sub = mw.ustring.sub&lt;br /&gt;
local match = mw.ustring.match&lt;br /&gt;
local find = mw.ustring.find&lt;br /&gt;
&lt;br /&gt;
local failed_cat = &amp;quot;[[Category:Entries with failed Thai transliterations]]&amp;quot;&lt;br /&gt;
local namespace = mw.title.getCurrentTitle().nsText&lt;br /&gt;
local thai_range = &amp;quot;[ก-๛̄]&amp;quot;&lt;br /&gt;
local categories = {}&lt;br /&gt;
&lt;br /&gt;
local systems = {&lt;br /&gt;
	[&amp;quot;paiboon&amp;quot;] = 1,&lt;br /&gt;
	[&amp;quot;royin&amp;quot;] = 2,&lt;br /&gt;
	[&amp;quot;ipa&amp;quot;] = 3,&lt;br /&gt;
	[&amp;quot;charPhon&amp;quot;] = 4,&lt;br /&gt;
	[&amp;quot;homophone&amp;quot;] = 5,&lt;br /&gt;
	[&amp;quot;file&amp;quot;] = 6&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local initial = {&lt;br /&gt;
	[&amp;quot;ก&amp;quot;] = { &amp;quot;g&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;จ&amp;quot;] = { &amp;quot;j&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;t͡ɕ&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;ด&amp;quot;] = { &amp;quot;d&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;d&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฎ&amp;quot;] = { &amp;quot;d&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;d&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฏ&amp;quot;] = { &amp;quot;dt&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;ต&amp;quot;] = { &amp;quot;dt&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;บ&amp;quot;] = { &amp;quot;b&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;b&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;ป&amp;quot;] = { &amp;quot;bp&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	[&amp;quot;อ&amp;quot;] = { &amp;quot;&amp;quot;, &amp;quot;@&amp;quot;, &amp;quot;ʔ&amp;quot;, class = &amp;quot;mid&amp;quot; },&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ง&amp;quot;] = { &amp;quot;ng&amp;quot;, &amp;quot;$ng&amp;quot;, &amp;quot;ŋ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ณ&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;น&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ม&amp;quot;] = { &amp;quot;m&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;m&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ญ&amp;quot;] = { &amp;quot;y&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;j&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ย&amp;quot;] = { &amp;quot;y&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;j&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ร&amp;quot;] = { &amp;quot;r&amp;quot;, &amp;quot;r&amp;quot;, &amp;quot;r&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ล&amp;quot;] = { &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฬ&amp;quot;] = { &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ว&amp;quot;] = { &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ค&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;kh&amp;quot;, &amp;quot;kʰ&amp;quot;, class = &amp;quot;low&amp;quot; }, &lt;br /&gt;
	[&amp;quot;ฅ&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;kh&amp;quot;, &amp;quot;kʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฆ&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;kh&amp;quot;, &amp;quot;kʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ข&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;kh&amp;quot;, &amp;quot;kʰ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฃ&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;kh&amp;quot;, &amp;quot;kʰ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ช&amp;quot;] = { &amp;quot;ch&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;t͡ɕʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฌ&amp;quot;] = { &amp;quot;ch&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;t͡ɕʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฉ&amp;quot;] = { &amp;quot;ch&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;t͡ɕʰ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฑ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;th&amp;quot;, &amp;quot;tʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฒ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;th&amp;quot;, &amp;quot;tʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ท&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;th&amp;quot;, &amp;quot;tʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ธ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;th&amp;quot;, &amp;quot;tʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฐ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;th&amp;quot;, &amp;quot;tʰ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ถ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;th&amp;quot;, &amp;quot;tʰ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;พ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;ph&amp;quot;, &amp;quot;pʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ภ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;ph&amp;quot;, &amp;quot;pʰ&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ผ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;ph&amp;quot;, &amp;quot;pʰ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฟ&amp;quot;] = { &amp;quot;f&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;f&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฝ&amp;quot;] = { &amp;quot;f&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;f&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ซ&amp;quot;] = { &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ศ&amp;quot;] = { &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ษ&amp;quot;] = { &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ส&amp;quot;] = { &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฮ&amp;quot;] = { &amp;quot;h&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;h&amp;quot;, class = &amp;quot;low&amp;quot; },&lt;br /&gt;
	[&amp;quot;ห&amp;quot;] = { &amp;quot;h&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;h&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;หง&amp;quot;] = { &amp;quot;ng&amp;quot;, &amp;quot;$ng&amp;quot;, &amp;quot;ŋ&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หน&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หม&amp;quot;] = { &amp;quot;m&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;m&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หญ&amp;quot;] = { &amp;quot;y&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;j&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หย&amp;quot;] = { &amp;quot;y&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;j&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หร&amp;quot;] = { &amp;quot;r&amp;quot;, &amp;quot;r&amp;quot;, &amp;quot;r&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หล&amp;quot;] = { &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;หว&amp;quot;] = { &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;w&amp;quot;, class = &amp;quot;high&amp;quot; },&lt;br /&gt;
		&lt;br /&gt;
	[&amp;quot;…&amp;quot;] = { &amp;quot;…&amp;quot;, &amp;quot;…&amp;quot;, &amp;quot;…&amp;quot;, class = &amp;quot;&amp;quot; },&lt;br /&gt;
	[&amp;quot;&amp;quot;] = { failed_cat, failed_cat, &amp;quot;&amp;quot;, class = &amp;quot;&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local vowel = {&lt;br /&gt;
	[&amp;quot;open&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;ะ&amp;quot;] = { &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot; },&lt;br /&gt;
		[&amp;quot;&amp;quot;] = { &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot; },&lt;br /&gt;
		[&amp;quot;ิ&amp;quot;] = { &amp;quot;i&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;i&amp;quot; },&lt;br /&gt;
		[&amp;quot;ึ&amp;quot;] = { &amp;quot;ʉ&amp;quot;, &amp;quot;ue&amp;quot;, &amp;quot;ɯ&amp;quot; },&lt;br /&gt;
		[&amp;quot;ุ&amp;quot;] = { &amp;quot;u&amp;quot;, &amp;quot;u&amp;quot;, &amp;quot;u&amp;quot; },&lt;br /&gt;
		[&amp;quot;เะ&amp;quot;] = { &amp;quot;e&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;eʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;แะ&amp;quot;] = { &amp;quot;ɛ&amp;quot;, &amp;quot;ae&amp;quot;, &amp;quot;ɛʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;โะ&amp;quot;] = { &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;oʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;เาะ&amp;quot;] = { &amp;quot;ɔ&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;ɔʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;็&amp;quot;] = { &amp;quot;ɔ&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;ɔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;เิ&amp;quot;] = { &amp;quot;ə&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ɤ&amp;quot; },&lt;br /&gt;
		[&amp;quot;เอะ&amp;quot;] = { &amp;quot;ə&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ɤʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;า&amp;quot;] = { &amp;quot;aa&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;aː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ี&amp;quot;] = { &amp;quot;ii&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;iː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ู&amp;quot;] = { &amp;quot;uu&amp;quot;, &amp;quot;u&amp;quot;, &amp;quot;uː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ือ&amp;quot;] = { &amp;quot;ʉʉ&amp;quot;, &amp;quot;ue&amp;quot;, &amp;quot;ɯː&amp;quot; },&lt;br /&gt;
		[&amp;quot;เ&amp;quot;] = { &amp;quot;ee&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;eː&amp;quot; },&lt;br /&gt;
		[&amp;quot;แ&amp;quot;] = { &amp;quot;ɛɛ&amp;quot;, &amp;quot;ae&amp;quot;, &amp;quot;ɛː&amp;quot; },&lt;br /&gt;
		[&amp;quot;โ&amp;quot;] = { &amp;quot;oo&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;oː&amp;quot; },&lt;br /&gt;
		[&amp;quot;อ&amp;quot;] = { &amp;quot;ɔɔ&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;ɔː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ร&amp;quot;] = { &amp;quot;ɔɔn&amp;quot;, &amp;quot;on&amp;quot;, &amp;quot;ɔːn&amp;quot; },&lt;br /&gt;
		[&amp;quot;เอ&amp;quot;] = { &amp;quot;əə&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ɤː&amp;quot; },&lt;br /&gt;
		[&amp;quot;เียะ&amp;quot;] = { &amp;quot;ia&amp;quot;, &amp;quot;ia&amp;quot;, &amp;quot;ia̯ʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;เือะ&amp;quot;] = { &amp;quot;ʉa&amp;quot;, &amp;quot;uea&amp;quot;, &amp;quot;ɯa̯ʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;ัวะ&amp;quot;] = { &amp;quot;ua&amp;quot;, &amp;quot;ua&amp;quot;, &amp;quot;ua̯ʔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;เีย&amp;quot;] = { &amp;quot;iia&amp;quot;, &amp;quot;ia&amp;quot;, &amp;quot;ia̯&amp;quot; },&lt;br /&gt;
		[&amp;quot;เือ&amp;quot;] = { &amp;quot;ʉʉa&amp;quot;, &amp;quot;uea&amp;quot;, &amp;quot;ɯa̯&amp;quot; },&lt;br /&gt;
		[&amp;quot;ัว&amp;quot;] = { &amp;quot;uua&amp;quot;, &amp;quot;ua&amp;quot;, &amp;quot;ua̯&amp;quot; },&lt;br /&gt;
		[&amp;quot;ิว&amp;quot;] = { &amp;quot;iu&amp;quot;, &amp;quot;io&amp;quot;, &amp;quot;iw&amp;quot; },&lt;br /&gt;
		[&amp;quot;ีว&amp;quot;] = { &amp;quot;iiu&amp;quot;, &amp;quot;io&amp;quot;, &amp;quot;iːw&amp;quot; },&lt;br /&gt;
		[&amp;quot;เ็ว&amp;quot;] = { &amp;quot;eo&amp;quot;, &amp;quot;eo&amp;quot;, &amp;quot;ew&amp;quot; },&lt;br /&gt;
		[&amp;quot;แ็ว&amp;quot;] = { &amp;quot;ɛo&amp;quot;, &amp;quot;aeo&amp;quot;, &amp;quot;ɛw&amp;quot; },&lt;br /&gt;
		[&amp;quot;เา&amp;quot;] = { &amp;quot;ao&amp;quot;, &amp;quot;ao&amp;quot;, &amp;quot;aw&amp;quot; },&lt;br /&gt;
		[&amp;quot;เว&amp;quot;] = { &amp;quot;eeo&amp;quot;, &amp;quot;eo&amp;quot;, &amp;quot;eːw&amp;quot; },&lt;br /&gt;
		[&amp;quot;แว&amp;quot;] = { &amp;quot;ɛɛo&amp;quot;, &amp;quot;aeo&amp;quot;, &amp;quot;ɛːw&amp;quot; },&lt;br /&gt;
		[&amp;quot;าว&amp;quot;] = { &amp;quot;aao&amp;quot;, &amp;quot;ao&amp;quot;, &amp;quot;aːw&amp;quot; },&lt;br /&gt;
		[&amp;quot;เอว&amp;quot;] = { &amp;quot;əəo&amp;quot;, &amp;quot;oeu&amp;quot;, &amp;quot;ɤːw&amp;quot; }, --royin inferred&lt;br /&gt;
		[&amp;quot;โว&amp;quot;] = { &amp;quot;oow&amp;quot;, &amp;quot;ou&amp;quot;, &amp;quot;oːw&amp;quot; }, --royin inferred&lt;br /&gt;
		[&amp;quot;เียว&amp;quot;] = { &amp;quot;iao&amp;quot;, &amp;quot;iao&amp;quot;, &amp;quot;ia̯w&amp;quot; },&lt;br /&gt;
		[&amp;quot;ัย&amp;quot;] = { &amp;quot;ai&amp;quot;, &amp;quot;ai&amp;quot;, &amp;quot;aj&amp;quot; },&lt;br /&gt;
		[&amp;quot;ใ&amp;quot;] = { &amp;quot;ai&amp;quot;, &amp;quot;ai&amp;quot;, &amp;quot;aj&amp;quot; },&lt;br /&gt;
		[&amp;quot;ไ&amp;quot;] = { &amp;quot;ai&amp;quot;, &amp;quot;ai&amp;quot;, &amp;quot;aj&amp;quot; },&lt;br /&gt;
		[&amp;quot;ไย&amp;quot;] = { &amp;quot;ai&amp;quot;, &amp;quot;ai&amp;quot;, &amp;quot;aj&amp;quot; },&lt;br /&gt;
		[&amp;quot;ึย&amp;quot;] = { &amp;quot;ʉi&amp;quot;, &amp;quot;uei&amp;quot;, &amp;quot;ɯj&amp;quot; },&lt;br /&gt;
		[&amp;quot;็อย&amp;quot;] = { &amp;quot;ɔi&amp;quot;, &amp;quot;oi&amp;quot;, &amp;quot;ɔj&amp;quot; },&lt;br /&gt;
		[&amp;quot;เิ็ย&amp;quot;] = { &amp;quot;əi&amp;quot;, &amp;quot;oei&amp;quot;, &amp;quot;ɤj&amp;quot; },&lt;br /&gt;
		[&amp;quot;ุย&amp;quot;] = { &amp;quot;ui&amp;quot;, &amp;quot;ui&amp;quot;, &amp;quot;uj&amp;quot; },&lt;br /&gt;
		[&amp;quot;าย&amp;quot;] = { &amp;quot;aai&amp;quot;, &amp;quot;ai&amp;quot;, &amp;quot;aːj&amp;quot; },&lt;br /&gt;
		[&amp;quot;อย&amp;quot;] = { &amp;quot;ɔɔi&amp;quot;, &amp;quot;oi&amp;quot;, &amp;quot;ɔːj&amp;quot; },&lt;br /&gt;
		[&amp;quot;โย&amp;quot;] = { &amp;quot;ooi&amp;quot;, &amp;quot;oi&amp;quot;, &amp;quot;oːj&amp;quot; },&lt;br /&gt;
		[&amp;quot;เย&amp;quot;] = { &amp;quot;əəi&amp;quot;, &amp;quot;oei&amp;quot;, &amp;quot;ɤːj&amp;quot; },&lt;br /&gt;
		[&amp;quot;ูย&amp;quot;] = { &amp;quot;uui&amp;quot;, &amp;quot;ui&amp;quot;, &amp;quot;uːj&amp;quot; },&lt;br /&gt;
		[&amp;quot;วย&amp;quot;] = { &amp;quot;uai&amp;quot;, &amp;quot;uai&amp;quot;, &amp;quot;ua̯j&amp;quot; },&lt;br /&gt;
		[&amp;quot;เือย&amp;quot;] = { &amp;quot;ʉai&amp;quot;, &amp;quot;ueai&amp;quot;, &amp;quot;ɯa̯j&amp;quot; },&lt;br /&gt;
		[&amp;quot;ำ&amp;quot;] = { &amp;quot;am&amp;quot;, &amp;quot;am&amp;quot;, &amp;quot;am&amp;quot; },&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;closed&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;ั&amp;quot;] = { &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot; },&lt;br /&gt;
		[&amp;quot;รร&amp;quot;] = { &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;a&amp;quot; },&lt;br /&gt;
		[&amp;quot;ิ&amp;quot;] = { &amp;quot;i&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;i&amp;quot; },&lt;br /&gt;
		[&amp;quot;ึ&amp;quot;] = { &amp;quot;ʉ&amp;quot;, &amp;quot;ue&amp;quot;, &amp;quot;ɯ&amp;quot; },&lt;br /&gt;
		[&amp;quot;ุ&amp;quot;] = { &amp;quot;u&amp;quot;, &amp;quot;u&amp;quot;, &amp;quot;u&amp;quot; },&lt;br /&gt;
		[&amp;quot;เ&amp;quot;] = { &amp;quot;ee&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;eː&amp;quot; },&lt;br /&gt;
		[&amp;quot;เ็&amp;quot;] = { &amp;quot;e&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;e&amp;quot; },&lt;br /&gt;
		[&amp;quot;แ็&amp;quot;] = { &amp;quot;ɛ&amp;quot;, &amp;quot;ae&amp;quot;, &amp;quot;ɛ&amp;quot; },&lt;br /&gt;
		[&amp;quot;แ&amp;quot;] = { &amp;quot;ɛɛ&amp;quot;, &amp;quot;ae&amp;quot;, &amp;quot;ɛː&amp;quot; },&lt;br /&gt;
		[&amp;quot;&amp;quot;] = { &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;o&amp;quot; },&lt;br /&gt;
		[&amp;quot;็อ&amp;quot;] = { &amp;quot;ɔ&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;ɔ&amp;quot; },&lt;br /&gt;
		[&amp;quot;เิ็&amp;quot;] = { &amp;quot;ə&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ɤ&amp;quot; },&lt;br /&gt;
		[&amp;quot;า&amp;quot;] = { &amp;quot;aa&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;aː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ี&amp;quot;] = { &amp;quot;ii&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;iː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ื&amp;quot;] = { &amp;quot;ʉʉ&amp;quot;, &amp;quot;ue&amp;quot;, &amp;quot;ɯː&amp;quot; },&lt;br /&gt;
		[&amp;quot;ู&amp;quot;] = { &amp;quot;uu&amp;quot;, &amp;quot;u&amp;quot;, &amp;quot;uː&amp;quot; },&lt;br /&gt;
		[&amp;quot;โ&amp;quot;] = { &amp;quot;oo&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;oː&amp;quot; },&lt;br /&gt;
		[&amp;quot;อ&amp;quot;] = { &amp;quot;ɔɔ&amp;quot;, &amp;quot;o&amp;quot;, &amp;quot;ɔː&amp;quot; },&lt;br /&gt;
		[&amp;quot;เิ&amp;quot;] = { &amp;quot;əə&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ɤː&amp;quot; },&lt;br /&gt;
		[&amp;quot;เอ&amp;quot;] = { &amp;quot;əə&amp;quot;, &amp;quot;oe&amp;quot;, &amp;quot;ɤː&amp;quot; },&lt;br /&gt;
		[&amp;quot;เีย&amp;quot;] = { &amp;quot;iia&amp;quot;, &amp;quot;ia&amp;quot;, &amp;quot;ia̯&amp;quot; },&lt;br /&gt;
		[&amp;quot;เือ&amp;quot;] = { &amp;quot;ʉʉa&amp;quot;, &amp;quot;uea&amp;quot;, &amp;quot;ɯa̯&amp;quot; },&lt;br /&gt;
		[&amp;quot;ว&amp;quot;] = { &amp;quot;uua&amp;quot;, &amp;quot;ua&amp;quot;, &amp;quot;ua̯&amp;quot; },&lt;br /&gt;
		[&amp;quot;ไ&amp;quot;] = { &amp;quot;ai&amp;quot;, &amp;quot;ai&amp;quot;, &amp;quot;aj&amp;quot; },&lt;br /&gt;
		[&amp;quot;เา&amp;quot;] = { &amp;quot;ao&amp;quot;, &amp;quot;ao&amp;quot;, &amp;quot;aw&amp;quot; },&lt;br /&gt;
		[&amp;quot;็อย&amp;quot;] = { &amp;quot;ɔi&amp;quot;, &amp;quot;oi&amp;quot;, &amp;quot;ɔj&amp;quot; },&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local unromLong = {&lt;br /&gt;
	[&amp;quot;เีย&amp;quot;] = true, [&amp;quot;เือ&amp;quot;] = true, [&amp;quot;ัว&amp;quot;] = true, [&amp;quot;ว&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;เือย&amp;quot;] = true, [&amp;quot;วาย&amp;quot;] = true, [&amp;quot;เอว&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;เียว&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local liveExc = {&lt;br /&gt;
	[&amp;quot;ัย&amp;quot;] = true, [&amp;quot;ใ&amp;quot;] = true, [&amp;quot;ไ&amp;quot;] = true, [&amp;quot;ไย&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;ุย&amp;quot;] = true, [&amp;quot;วย&amp;quot;] = true, [&amp;quot;็อย&amp;quot;] = true, [&amp;quot;เิ็ย&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;เา&amp;quot;] = true, [&amp;quot;ิว&amp;quot;] = true, [&amp;quot;เ็ว&amp;quot;] = true, [&amp;quot;แ็ว&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;ำ&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- ย,ว are not included.&lt;br /&gt;
-- ช,ซ,ส,ฟ,ล are changed for loanwords.&lt;br /&gt;
-- ห,อ,ฮ can never be codas.&lt;br /&gt;
-- ฯ (ʔ) is for Arabic loanwords.&lt;br /&gt;
local coda = {&lt;br /&gt;
	[&amp;quot;ก&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ข&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฃ&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ค&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฅ&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฆ&amp;quot;] = { &amp;quot;k&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;k̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;จ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฉ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ช&amp;quot;] = { &amp;quot;ch&amp;quot;, &amp;quot;ch&amp;quot;, &amp;quot;t͡ɕʰ&amp;quot; },&lt;br /&gt;
	[&amp;quot;ซ&amp;quot;] = { &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฌ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฎ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฏ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฐ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฑ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฒ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ด&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ต&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ถ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ท&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ธ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ศ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ษ&amp;quot;] = { &amp;quot;t&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;t̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ส&amp;quot;] = { &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;s&amp;quot; },&lt;br /&gt;
	[&amp;quot;บ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ป&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ผ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฝ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;พ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฟ&amp;quot;] = { &amp;quot;f&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;f&amp;quot; },&lt;br /&gt;
	[&amp;quot;ภ&amp;quot;] = { &amp;quot;p&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;p̚&amp;quot; },&lt;br /&gt;
	[&amp;quot;ง&amp;quot;] = { &amp;quot;ng&amp;quot;, &amp;quot;ng$&amp;quot;, &amp;quot;ŋ&amp;quot; },&lt;br /&gt;
	[&amp;quot;ญ&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot; },&lt;br /&gt;
	[&amp;quot;ณ&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot; },&lt;br /&gt;
	[&amp;quot;น&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot; },&lt;br /&gt;
	[&amp;quot;ร&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot; },&lt;br /&gt;
	[&amp;quot;ล&amp;quot;] = { &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot;, &amp;quot;l&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฬ&amp;quot;] = { &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot;, &amp;quot;n&amp;quot; },&lt;br /&gt;
	[&amp;quot;ม&amp;quot;] = { &amp;quot;m&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;m&amp;quot; },&lt;br /&gt;
	[&amp;quot;ฯ&amp;quot;] = { &amp;quot;ʔ&amp;quot;, &amp;quot;ʔ&amp;quot;, &amp;quot;ʔ&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local tFromMark = {&lt;br /&gt;
	-- common&lt;br /&gt;
	[&amp;quot;่&amp;quot;] = { [&amp;quot;high&amp;quot;] = &amp;quot;low&amp;quot;,     [&amp;quot;mid&amp;quot;] = &amp;quot;low&amp;quot;,     [&amp;quot;low&amp;quot;] = &amp;quot;falling&amp;quot; },&lt;br /&gt;
	[&amp;quot;้&amp;quot;] = { [&amp;quot;high&amp;quot;] = &amp;quot;falling&amp;quot;, [&amp;quot;mid&amp;quot;] = &amp;quot;falling&amp;quot;, [&amp;quot;low&amp;quot;] = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;๊&amp;quot;] = { [&amp;quot;high&amp;quot;] = &amp;quot;high&amp;quot;,    [&amp;quot;mid&amp;quot;] = &amp;quot;high&amp;quot;,    [&amp;quot;low&amp;quot;] = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;๋&amp;quot;] = { [&amp;quot;high&amp;quot;] = &amp;quot;rising&amp;quot;,  [&amp;quot;mid&amp;quot;] = &amp;quot;rising&amp;quot;,  [&amp;quot;low&amp;quot;] = &amp;quot;rising&amp;quot; },&lt;br /&gt;
	-- forced mid tone&lt;br /&gt;
	[&amp;quot;̄&amp;quot;] = { [&amp;quot;high&amp;quot;] = &amp;quot;mid&amp;quot;,     [&amp;quot;mid&amp;quot;] = &amp;quot;mid&amp;quot;,     [&amp;quot;low&amp;quot;] = &amp;quot;mid&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local tNoMark = {&lt;br /&gt;
	[&amp;quot;dead-short&amp;quot;] = { [&amp;quot;high&amp;quot;] = &amp;quot;low&amp;quot;,    [&amp;quot;mid&amp;quot;] = &amp;quot;low&amp;quot;,  [&amp;quot;low&amp;quot;] = &amp;quot;high&amp;quot; },&lt;br /&gt;
	[&amp;quot;dead-long&amp;quot;]  = { [&amp;quot;high&amp;quot;] = &amp;quot;low&amp;quot;,    [&amp;quot;mid&amp;quot;] = &amp;quot;low&amp;quot;,  [&amp;quot;low&amp;quot;] = &amp;quot;falling&amp;quot; },&lt;br /&gt;
	[&amp;quot;live&amp;quot;]       = { [&amp;quot;high&amp;quot;] = &amp;quot;rising&amp;quot;, [&amp;quot;mid&amp;quot;] = &amp;quot;mid&amp;quot;,  [&amp;quot;low&amp;quot;] = &amp;quot;mid&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local tRomMarks = {&lt;br /&gt;
	[&amp;quot;high&amp;quot;] = &amp;quot;́&amp;quot;, [&amp;quot;mid&amp;quot;] = &amp;quot;&amp;quot;, [&amp;quot;low&amp;quot;] = &amp;quot;̀&amp;quot;,&lt;br /&gt;
	[&amp;quot;rising&amp;quot;] = &amp;quot;̌&amp;quot;, [&amp;quot;falling&amp;quot;] = &amp;quot;̂&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local tLevels = {&lt;br /&gt;
	[&amp;quot;high&amp;quot;] = &amp;quot;˦˥&amp;quot;, [&amp;quot;mid&amp;quot;] = &amp;quot;˧&amp;quot;, [&amp;quot;low&amp;quot;] = &amp;quot;˨˩&amp;quot;,&lt;br /&gt;
	[&amp;quot;rising&amp;quot;] = &amp;quot;˩˩˦&amp;quot;, [&amp;quot;falling&amp;quot;] = &amp;quot;˥˩&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local symbols = {&lt;br /&gt;
	[&amp;quot;๐&amp;quot;] = 0, [&amp;quot;๑&amp;quot;] = 1, [&amp;quot;๒&amp;quot;] = 2, [&amp;quot;๓&amp;quot;] = 3, [&amp;quot;๔&amp;quot;] = 4,&lt;br /&gt;
	[&amp;quot;๕&amp;quot;] = 5, [&amp;quot;๖&amp;quot;] = 6, [&amp;quot;๗&amp;quot;] = 7, [&amp;quot;๘&amp;quot;] = 8, [&amp;quot;๙&amp;quot;] = 9,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local permitted_cluster = {&lt;br /&gt;
	[&amp;quot;ks&amp;quot;] = 1, [&amp;quot;ms&amp;quot;] = 1, [&amp;quot;ns&amp;quot;] = 1, [&amp;quot;ps&amp;quot;] = 1, [&amp;quot;ts&amp;quot;] = 1,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- modified ISO 11940 (to make sound values are more apparent), uses spacing marks for signs&lt;br /&gt;
local char_table = {&lt;br /&gt;
	[&amp;quot;ก&amp;quot;] = &amp;quot;k&amp;quot;, [&amp;quot;ข&amp;quot;] = &amp;quot;kʰ&amp;quot;, [&amp;quot;ฃ&amp;quot;] = &amp;quot;x&amp;quot;, [&amp;quot;ค&amp;quot;] = &amp;quot;g&amp;quot;, [&amp;quot;ฅ&amp;quot;] = &amp;quot;ɣ&amp;quot;, [&amp;quot;ฆ&amp;quot;] = &amp;quot;gʰ&amp;quot;, [&amp;quot;ง&amp;quot;] = &amp;quot;ŋ&amp;quot;,&lt;br /&gt;
	[&amp;quot;จ&amp;quot;] = &amp;quot;t͡ɕ&amp;quot;, [&amp;quot;ฉ&amp;quot;] = &amp;quot;t͡ɕʰ&amp;quot;, [&amp;quot;ช&amp;quot;] = &amp;quot;d͡ʑ&amp;quot;, [&amp;quot;ซ&amp;quot;] = &amp;quot;z&amp;quot;, [&amp;quot;ฌ&amp;quot;] = &amp;quot;d͡ʑʰ&amp;quot;, [&amp;quot;ญ&amp;quot;] = &amp;quot;ɲ&amp;quot;, &lt;br /&gt;
	[&amp;quot;ฎ&amp;quot;] = &amp;quot;ᶑ&amp;quot;, [&amp;quot;ฏ&amp;quot;] = &amp;quot;ʈ&amp;quot;, [&amp;quot;ฐ&amp;quot;] = &amp;quot;ʈʰ&amp;quot;, [&amp;quot;ฑ&amp;quot;] = &amp;quot;ɖ&amp;quot;, [&amp;quot;ฒ&amp;quot;] = &amp;quot;ɖʰ&amp;quot;, [&amp;quot;ณ&amp;quot;] = &amp;quot;ɳ&amp;quot;,&lt;br /&gt;
	[&amp;quot;ด&amp;quot;] = &amp;quot;ɗ&amp;quot;, [&amp;quot;ต&amp;quot;] = &amp;quot;t&amp;quot;, [&amp;quot;ถ&amp;quot;] = &amp;quot;tʰ&amp;quot;, [&amp;quot;ท&amp;quot;] = &amp;quot;d&amp;quot;, [&amp;quot;ธ&amp;quot;] = &amp;quot;dʰ&amp;quot;, [&amp;quot;น&amp;quot;] = &amp;quot;n&amp;quot;,&lt;br /&gt;
	[&amp;quot;บ&amp;quot;] = &amp;quot;ɓ&amp;quot;, [&amp;quot;ป&amp;quot;] = &amp;quot;p&amp;quot;, [&amp;quot;ผ&amp;quot;] = &amp;quot;pʰ&amp;quot;, [&amp;quot;ฝ&amp;quot;] = &amp;quot;f&amp;quot;, [&amp;quot;พ&amp;quot;] = &amp;quot;b&amp;quot;, [&amp;quot;ฟ&amp;quot;] = &amp;quot;v&amp;quot;, [&amp;quot;ภ&amp;quot;] = &amp;quot;bʰ&amp;quot;, [&amp;quot;ม&amp;quot;] = &amp;quot;m&amp;quot;,&lt;br /&gt;
	[&amp;quot;ย&amp;quot;] = &amp;quot;y&amp;quot;, [&amp;quot;ร&amp;quot;] = &amp;quot;r&amp;quot;, [&amp;quot;ฤ&amp;quot;] = &amp;quot;ṛ&amp;quot;, [&amp;quot;ล&amp;quot;] = &amp;quot;l&amp;quot;, [&amp;quot;ฦ&amp;quot;] = &amp;quot;ḷ&amp;quot;, [&amp;quot;ว&amp;quot;] = &amp;quot;w&amp;quot;,&lt;br /&gt;
	[&amp;quot;ศ&amp;quot;] = &amp;quot;ɕ&amp;quot;, [&amp;quot;ษ&amp;quot;] = &amp;quot;ʂ&amp;quot;, [&amp;quot;ส&amp;quot;] = &amp;quot;s&amp;quot;, [&amp;quot;ห&amp;quot;] = &amp;quot;h&amp;quot;, [&amp;quot;ฬ&amp;quot;] = &amp;quot;ɭ&amp;quot;, [&amp;quot;อ&amp;quot;] = &amp;quot;ɒ&amp;quot;, [&amp;quot;ฮ&amp;quot;] = &amp;quot;ɦ&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ะ&amp;quot;] = &amp;quot;a&amp;quot;, [&amp;quot;ั&amp;quot;] = &amp;quot;ạ&amp;quot;, [&amp;quot;า&amp;quot;] = &amp;quot;ā&amp;quot;, [&amp;quot;ำ&amp;quot;] = &amp;quot;å&amp;quot;, [&amp;quot;ิ&amp;quot;] = &amp;quot;i&amp;quot;, [&amp;quot;ี&amp;quot;] = &amp;quot;ī&amp;quot;,&lt;br /&gt;
	[&amp;quot;ึ&amp;quot;] = &amp;quot;ụ&amp;quot;, [&amp;quot;ื&amp;quot;] = &amp;quot;ụ̄&amp;quot;, [&amp;quot;ุ&amp;quot;] = &amp;quot;u&amp;quot;, [&amp;quot;ู&amp;quot;] = &amp;quot;ū&amp;quot;, [&amp;quot;ๅ&amp;quot;] = &amp;quot;ɨ&amp;quot;, [&amp;quot;ฺ&amp;quot;] = &amp;quot;̥&amp;quot;, [&amp;quot;฿&amp;quot;] = &amp;quot;฿&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;เ&amp;quot;] = &amp;quot;e&amp;quot;, [&amp;quot;แ&amp;quot;] = &amp;quot;æ&amp;quot;, [&amp;quot;โ&amp;quot;] = &amp;quot;o&amp;quot;, [&amp;quot;ใ&amp;quot;] = &amp;quot;au&amp;quot;, [&amp;quot;ไ&amp;quot;] = &amp;quot;ai&amp;quot;, &lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;่&amp;quot;] = &amp;quot;ˋ&amp;quot;, [&amp;quot;้&amp;quot;] = &amp;quot;ˆ&amp;quot;, [&amp;quot;๊&amp;quot;] = &amp;quot;ˊ&amp;quot;, [&amp;quot;๋&amp;quot;] = &amp;quot;ˇ&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ฯ&amp;quot;] = &amp;quot;ǂ&amp;quot;, [&amp;quot;ๆ&amp;quot;] = &amp;quot;«&amp;quot;, [&amp;quot;็&amp;quot;] = &amp;quot;˘&amp;quot;,&lt;br /&gt;
	[&amp;quot;์&amp;quot;] = &amp;quot;ʻ&amp;quot;, [&amp;quot;ํ&amp;quot;] = &amp;quot;˚&amp;quot;, [&amp;quot;๎&amp;quot;] = &amp;quot;~&amp;quot;, [&amp;quot;๏&amp;quot;] = &amp;quot;§&amp;quot;,&lt;br /&gt;
	[&amp;quot;๚&amp;quot;] = &amp;quot;ǁ&amp;quot;, [&amp;quot;๛&amp;quot;] = &amp;quot;»&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;๐&amp;quot;] = &amp;quot;0&amp;quot;, [&amp;quot;๑&amp;quot;] = &amp;quot;1&amp;quot;, [&amp;quot;๒&amp;quot;] = &amp;quot;2&amp;quot;, [&amp;quot;๓&amp;quot;] = &amp;quot;3&amp;quot;, [&amp;quot;๔&amp;quot;] = &amp;quot;4&amp;quot;, &lt;br /&gt;
	[&amp;quot;๕&amp;quot;] = &amp;quot;5&amp;quot;, [&amp;quot;๖&amp;quot;] = &amp;quot;6&amp;quot;, [&amp;quot;๗&amp;quot;] = &amp;quot;7&amp;quot;, [&amp;quot;๘&amp;quot;] = &amp;quot;8&amp;quot;, [&amp;quot;๙&amp;quot;] = &amp;quot;9&amp;quot;, &lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot; &amp;quot;] = &amp;quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;, [&amp;quot;-&amp;quot;] = &amp;quot;&amp;amp;ndash;&amp;quot;, [&amp;quot;…&amp;quot;] = &amp;quot;…&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local mgvc_pattern = &amp;quot;^([รลว]?)([ิึุ็ีืัำู]?[าอรยว]?[วยร]?ะ?)([คฅฆกขฃพฟภบปชฌฑฒทธจฎฏดตฐถศษสมญณนรลฬงฯ]?)$&amp;quot;&lt;br /&gt;
local full_pattern = &amp;quot;^([เแโใไ]?)(หฺ[ก-รลว-ฮ])(ฺ?[รลว]?)([ิึุ็ีืัู]?็?[่้๊๋̄]?[าอรยวำ]?[วยร]?ะ?)([คฅฆกขฃพฟภบปชฌฑฒทธจฎฏดตฐถศษสมญณนรลฬงฯ]?[คฅฆกขฃพฟภบปชฌฑฒทธจฎฏดตฐถศษสมญณนรลฬงฯ]?)$&amp;quot;&lt;br /&gt;
local partial_pattern = &amp;quot;^([เแโใไ]?)([ก-รลว-ฮ])(ฺ?[รลว]?)([ิึุ็ีืัู]?็?[่้๊๋̄]?[าอรยวำ]?[วยร]?ะ?)([คฅฆกขฃพฟภบปชฌฑฒทธจฎฏดตฐถศษสมญณนรลฬงฯ]?[คฅฆกขฃพฟภบปชฌฑฒทธจฎฏดตฐถศษสมญณนรลฬงฯ]?)$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function export.translit(text, lang, sc, mode, source)&lt;br /&gt;
	local seq = systems[mode]&lt;br /&gt;
	for word in mw.ustring.gmatch(text, thai_range .. &amp;quot;+&amp;quot;) do&lt;br /&gt;
		local orig_word = word&lt;br /&gt;
		if match(word, &amp;quot;[่้๊๋̄].?[่้๊๋̄]&amp;quot;) then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local function c2_decomp(c2_char, seq, source)&lt;br /&gt;
			local converted_c2 = {}&lt;br /&gt;
			for character in mw.text.gsplit(c2_char, &amp;quot;&amp;quot;) do&lt;br /&gt;
				table.insert(converted_c2, coda[character] and coda[character][seq] or nil)&lt;br /&gt;
			end&lt;br /&gt;
			local cluster = table.concat(converted_c2)&lt;br /&gt;
			if source == &amp;quot;translit-module&amp;quot; and not permitted_cluster[gsub(cluster, &amp;quot;̚&amp;quot;, &amp;quot;&amp;quot;)] then&lt;br /&gt;
				return c2_char&lt;br /&gt;
			else&lt;br /&gt;
				return cluster&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local tone&lt;br /&gt;
		local function syllable(v1, c1, g, v2, c2)&lt;br /&gt;
			local tMark = match(v2, &amp;quot;[่้๊๋̄]&amp;quot;)&lt;br /&gt;
			v2 = gsub(v2, &amp;quot;[่้๊๋̄]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
			&lt;br /&gt;
			if match(c1, &amp;quot;^ห.$&amp;quot;) then&lt;br /&gt;
				if match(sub(c1, 2, 2) .. g .. v2 .. c2, mgvc_pattern) then&lt;br /&gt;
					c1, g, v2, c2 = &amp;quot;ห&amp;quot;, match(sub(c1, 2, 2) .. g .. v2 .. c2, mgvc_pattern)&lt;br /&gt;
					if g ~= &amp;quot;&amp;quot; and not v2 == &amp;quot;ย&amp;quot; then c1, g = c1 .. g, &amp;quot;&amp;quot; end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if g == &amp;quot;ล&amp;quot; and v2 .. c2 == &amp;quot;&amp;quot; then&lt;br /&gt;
				c2 = g&lt;br /&gt;
				g = &amp;quot;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local openness = c2 ~= &amp;quot;&amp;quot; and &amp;quot;closed&amp;quot; or &amp;quot;open&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
			if source == &amp;quot;pron-module&amp;quot;&lt;br /&gt;
				and (mw.ustring.len(c1) &amp;gt; 1 or match(g, &amp;quot;[รล]&amp;quot;))&lt;br /&gt;
				and not match(c1 .. g, &amp;quot;ฺ&amp;quot;) then&lt;br /&gt;
					&lt;br /&gt;
				error(&amp;quot;Please replace &amp;quot; ..  c1 .. g .. &amp;quot; in the respelling with &amp;quot; .. &lt;br /&gt;
					sub(c1, 1, 1) .. &amp;quot;ฺ&amp;quot; .. (sub(c1, 2, -1) or &amp;quot;&amp;quot;) .. g .. &amp;quot;.&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local orig_v, v&lt;br /&gt;
			if vowel[openness][v1 .. g .. v2] then&lt;br /&gt;
				orig_v = v1 .. g .. v2&lt;br /&gt;
				v, g = vowel[openness][v1 .. g .. v2][seq], &amp;quot;&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				orig_v = v1 .. v2&lt;br /&gt;
				v = vowel[openness][v1 .. v2] and vowel[openness][v1 .. v2][seq] or (v1 .. v2)&lt;br /&gt;
				g = (initial[gsub(g, &amp;quot;ฺ&amp;quot;, &amp;quot;&amp;quot;)] or initial[&amp;quot;&amp;quot;])[seq]&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			c1 = gsub(c1, &amp;quot;ฺ&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
			local ini, class = &amp;quot;&amp;quot;, &amp;quot;&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
			if initial[c1] then&lt;br /&gt;
				ini, class = initial[c1][seq], initial[c1].class&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local length = (match(v, &amp;quot;([aiʉueɛoɔə])%1&amp;quot;) or match(v, &amp;quot;ː&amp;quot;) or unromLong[orig_v]) and &amp;quot;long&amp;quot; or &amp;quot;short&amp;quot;&lt;br /&gt;
			local life = (match(c2, &amp;quot;[มญณนรลฬง]&amp;quot;) or (match(orig_v, &amp;quot;ย$&amp;quot;) and match(v, &amp;quot;i$&amp;quot;)) or&lt;br /&gt;
				c2..length == &amp;quot;long&amp;quot; or liveExc[orig_v]) and &amp;quot;live&amp;quot; or &amp;quot;dead&amp;quot;&lt;br /&gt;
			c2 = coda[c2] and coda[c2][seq] or c2_decomp(c2, seq, source)&lt;br /&gt;
&lt;br /&gt;
			-- note: not add tone for royin&lt;br /&gt;
			tone = tMark and tFromMark[tMark][class] or (tNoMark[life..&amp;quot;-&amp;quot;..length] or tNoMark[life])[class]&lt;br /&gt;
			if mode == &amp;quot;paiboon&amp;quot; then&lt;br /&gt;
				v = gsub(v, &amp;quot;^([^aiʉueɛoɔə]*)([aiʉueɛoɔə])&amp;quot;, &amp;quot;%1%2&amp;quot; .. tRomMarks[tone])&lt;br /&gt;
			elseif mode == &amp;quot;ipa&amp;quot; then&lt;br /&gt;
				c2 = c2 .. tLevels[tone]&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			return ini .. g .. v .. c2&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		word = gsub(word, full_pattern, syllable)&lt;br /&gt;
		word = gsub(word, partial_pattern, syllable)&lt;br /&gt;
&lt;br /&gt;
		text = gsub(text, orig_word, word, 1)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	text = gsub(text, &amp;quot;[๐-๙]&amp;quot;, symbols)&lt;br /&gt;
&lt;br /&gt;
	-- postprocessing&lt;br /&gt;
	if mode == &amp;quot;royin&amp;quot; then&lt;br /&gt;
		-- initial อ&lt;br /&gt;
		text = gsub(text, &amp;quot;^@&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		text = gsub(text, &amp;quot;([%s%p])@&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
		text = gsub(text, &amp;quot;@&amp;quot;, &amp;quot;-&amp;quot;)&lt;br /&gt;
		-- initial ง&lt;br /&gt;
		text = gsub(text, &amp;quot;^%$ng&amp;quot;, &amp;quot;ng&amp;quot;)          &lt;br /&gt;
		text = gsub(text, &amp;quot;([%s%p])%$ng&amp;quot;, &amp;quot;%1ng&amp;quot;)&lt;br /&gt;
		text = gsub(text, &amp;quot;([aeiou])%$ng&amp;quot;, &amp;quot;%1-ng&amp;quot;)&lt;br /&gt;
		text = gsub(text, &amp;quot;%$ng&amp;quot;, &amp;quot;ng&amp;quot;)&lt;br /&gt;
		-- final ง&lt;br /&gt;
		text = gsub(text, &amp;quot;ng%$$&amp;quot;, &amp;quot;ng&amp;quot;)          &lt;br /&gt;
		text = gsub(text, &amp;quot;ng%$([%s%p])&amp;quot;, &amp;quot;ng%1&amp;quot;) -- includes hyphen&lt;br /&gt;
		text = gsub(text, &amp;quot;ng%$&amp;quot;, &amp;quot;ng&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local count_syl = 0&lt;br /&gt;
	if mode == &amp;quot;ipa&amp;quot; then&lt;br /&gt;
		text, count_syl = gsub(text, &amp;quot;[ %-–]&amp;quot;, &amp;quot;.&amp;quot;) -- space, common hyphen, en dash&lt;br /&gt;
		if not match(text, &amp;quot;%.$&amp;quot;) then&lt;br /&gt;
			count_syl = count_syl + 1&lt;br /&gt;
		end&lt;br /&gt;
		text = gsub(text, &amp;quot;([aiɯu])([˥-˩]+)$&amp;quot;, &amp;quot;%1ʔ%2&amp;quot;) -- add ʔ if last syllable ends with [aiɯu]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if match(text, thai_range) then&lt;br /&gt;
		if source == &amp;quot;translit-module&amp;quot; or namespace ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			return nil&lt;br /&gt;
		else&lt;br /&gt;
			return failed_cat&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(categories, count_syl &amp;gt; 0 and &amp;quot;[[Category:Thai &amp;quot; .. count_syl .. &amp;quot;-syllable words]]&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
		return mw.ustring.toNFC(text)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function annotate(c1_text, annotation)&lt;br /&gt;
	if not annotation then return c1_text end&lt;br /&gt;
	return tostring( mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
		:css( &amp;quot;border-bottom&amp;quot;, &amp;quot;1px dotted var(--wikt-palette-black, #000)&amp;quot; )&lt;br /&gt;
		:css( &amp;quot;cursor&amp;quot;, &amp;quot;help&amp;quot; )&lt;br /&gt;
		:attr( &amp;quot;title&amp;quot;, annotation )&lt;br /&gt;
		:wikitext( c1_text ))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local front_v = &amp;quot;[เแโใไ]&amp;quot;&lt;br /&gt;
local char_annotation = {&lt;br /&gt;
	[&amp;quot;์&amp;quot;] = &amp;quot;CANCEL&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function export.getCharSeqTbl(text)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for character in mw.text.gsplit(text, &amp;quot;&amp;quot;) do&lt;br /&gt;
		local charDetail = char_table[character] or nil&lt;br /&gt;
		&lt;br /&gt;
		if find(character, front_v) then&lt;br /&gt;
			table.insert(result, tostring( mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
				:css( &amp;quot;border&amp;quot;, &amp;quot;1px dotted var(--wikt-palette-grey-9,gray)&amp;quot; )&lt;br /&gt;
				:css( &amp;quot;border-radius&amp;quot;, &amp;quot;50%&amp;quot; )&lt;br /&gt;
				:css( &amp;quot;cursor&amp;quot;, &amp;quot;help&amp;quot; )&lt;br /&gt;
				:attr( &amp;quot;title&amp;quot;, &amp;quot;Vowel sign appearing in front of the initial consonant.&amp;quot; )&lt;br /&gt;
				:wikitext( charDetail )))&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(result, annotate(charDetail, char_annotation[character]))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getCharSeq(text)&lt;br /&gt;
	return &amp;quot;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;quot; .. &lt;br /&gt;
		table.concat(export.getCharSeqTbl(text), &amp;quot;&amp;amp;thinsp;&amp;quot;) .. &lt;br /&gt;
		&amp;quot;&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local note_set = {&lt;br /&gt;
	[&amp;quot;aaw&amp;quot;] = annotate(&lt;br /&gt;
		&amp;quot;-ɔɔ r-&amp;quot;, &lt;br /&gt;
		&amp;quot;In this word, the double consonant combinations กร, ทร, ธร, มร and หร are pronounced &amp;#039;gaaw ra&amp;#039;, two times &amp;#039;thaaw ra&amp;#039;, &amp;#039;maaw ra&amp;#039; and &amp;#039;haaw ra&amp;#039;, respectively.&amp;quot;&lt;br /&gt;
	),&lt;br /&gt;
	[&amp;quot;redup&amp;quot;] = annotate(&lt;br /&gt;
		&amp;quot;Reduplication&amp;quot;, &lt;br /&gt;
		&amp;quot;This word exhibits reduplication in pronunciation, i.e. one written consonant is used as the final consonant of a syllable as well as the initial consonant of the next syllable.&amp;quot;&lt;br /&gt;
	),&lt;br /&gt;
	[&amp;quot;short&amp;quot;] = annotate(&lt;br /&gt;
		&amp;quot;Short&amp;quot;, &lt;br /&gt;
		&amp;quot;The vowel in this word is pronounced irregularly short.&amp;quot;&lt;br /&gt;
	),&lt;br /&gt;
	[&amp;quot;unorthographical&amp;quot;] = annotate(&lt;br /&gt;
		&amp;quot;Unorthographical&amp;quot;, &lt;br /&gt;
		&amp;quot;This phonetic respelling violates Thai alphabet rules to indicate an irregular pronunciation.&amp;quot;&lt;br /&gt;
	),&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function getRhymeFromIPA(ipa)&lt;br /&gt;
	return match(ipa, &amp;quot;([a̯iɯueɛoɔɤː]+[ʔk̚ŋtnpmjwfls]-)[˥-˩]+$&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.show(frame)&lt;br /&gt;
	local lang, sc = &amp;quot;th&amp;quot;, &amp;quot;Thai&amp;quot;&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local pagename = args.pagename or mw.loadData(&amp;quot;Module:headword/data&amp;quot;).pagename&lt;br /&gt;
	local p, note = {}, {}&lt;br /&gt;
	&lt;br /&gt;
	if args[&amp;quot;note&amp;quot;] then&lt;br /&gt;
		for ind_note in mw.text.gsplit(args[&amp;quot;note&amp;quot;], &amp;quot;,&amp;quot;) do&lt;br /&gt;
			table.insert(note, note_set[ind_note])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		for index, item in ipairs(args) do&lt;br /&gt;
			table.insert(p, (item ~= &amp;quot;&amp;quot;) and item or nil)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(p, pagename)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local p_concatenated = table.concat(p, &amp;quot;/&amp;quot;)&lt;br /&gt;
	if match(p_concatenated, &amp;quot;็&amp;quot; .. thai_range .. &amp;quot;*[่้๊๋̄]&amp;quot;)&lt;br /&gt;
		or match(p_concatenated, &amp;quot;[่้๊๋̄]&amp;quot; .. thai_range .. &amp;quot;*็&amp;quot;) &lt;br /&gt;
		or match(p_concatenated, &amp;quot;ิ็&amp;quot;) then&lt;br /&gt;
			&lt;br /&gt;
		table.insert(note, note_set[&amp;quot;unorthographical&amp;quot;])&lt;br /&gt;
		if not match(args[&amp;quot;note&amp;quot;] or &amp;quot;&amp;quot;, &amp;quot;short&amp;quot;) then&lt;br /&gt;
			table.insert(note, note_set[&amp;quot;short&amp;quot;])&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	elseif match(p_concatenated, &amp;quot;็&amp;quot;)&lt;br /&gt;
		and not match(pagename, &amp;quot;็&amp;quot;)&lt;br /&gt;
		and not match(args[&amp;quot;note&amp;quot;] or &amp;quot;&amp;quot;, &amp;quot;short&amp;quot;) then&lt;br /&gt;
		table.insert(note, note_set[&amp;quot;short&amp;quot;])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	homEdit = tostring( mw.html.create( &amp;quot;div&amp;quot; )&lt;br /&gt;
		:css( &amp;quot;float&amp;quot;, &amp;quot;right&amp;quot; )&lt;br /&gt;
		:css( &amp;quot;clear&amp;quot;, &amp;quot;right&amp;quot; )&lt;br /&gt;
		:css( &amp;quot;font-size&amp;quot;, &amp;quot;60%&amp;quot; )&lt;br /&gt;
		:wikitext( tostring( mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
			:attr( &amp;quot;class&amp;quot;, &amp;quot;plainlinks&amp;quot; )&lt;br /&gt;
			:wikitext( &amp;quot;[&amp;quot; .. tostring( mw.uri.fullUrl( &lt;br /&gt;
				&amp;quot;Module:th-hom/data&amp;quot;, &lt;br /&gt;
				{ [&amp;quot;action&amp;quot;] = &amp;quot;edit&amp;quot; }&lt;br /&gt;
				)) ..&amp;quot; edit]&amp;quot; ))))&lt;br /&gt;
	&lt;br /&gt;
	function formatThai(text, pron, qualifiers)&lt;br /&gt;
		local readclass = &amp;#039;&amp;#039;&lt;br /&gt;
		if pron == true then&lt;br /&gt;
			readclass = &amp;#039;th-reading&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		return ((qualifiers and table.concat(qualifiers) ~= &amp;quot;&amp;quot;)&lt;br /&gt;
			and &amp;#039;&amp;lt;span style=&amp;quot;background-color:var(--wikt-palette-lightyellow,#ffffe0);color:inherit&amp;quot;&amp;gt;&amp;lt;small&amp;gt;[&amp;#039; .. &lt;br /&gt;
				table.concat(qualifiers, &amp;quot;, &amp;quot;) .. &amp;#039;]&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;#039;&lt;br /&gt;
			or &amp;#039;&amp;#039;) .. &amp;#039;&amp;lt;span lang=&amp;quot;th&amp;quot; class=&amp;quot;Thai &amp;#039; .. readclass .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. text .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local result = { &lt;br /&gt;
		[&amp;quot;charPhon&amp;quot;] = {}, &lt;br /&gt;
		[&amp;quot;paiboon&amp;quot;] = {}, &lt;br /&gt;
		[&amp;quot;royin&amp;quot;] = {}, &lt;br /&gt;
		[&amp;quot;ipa&amp;quot;] = {}, &lt;br /&gt;
		[&amp;quot;homophone&amp;quot;] = {}, &lt;br /&gt;
		[&amp;quot;file&amp;quot;] = {}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	table.insert(categories, &amp;quot;[[Category:Thai terms with IPA pronunciation]]&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local m_hom_data = require(&amp;quot;Module:th-hom/data&amp;quot;)&lt;br /&gt;
	local m_hom = require(&amp;quot;Module:th-hom&amp;quot;).makeList&lt;br /&gt;
	local m_fileData = require(&amp;quot;Module:th-pron/files&amp;quot;)&lt;br /&gt;
	local qualifiers = {}&lt;br /&gt;
	&lt;br /&gt;
	for system, _ in pairs(systems) do&lt;br /&gt;
		&lt;br /&gt;
		local function f(text, system)&lt;br /&gt;
			if system == &amp;quot;paiboon&amp;quot; or system == &amp;quot;royin&amp;quot; then&lt;br /&gt;
				return &amp;#039;&amp;lt;span class=&amp;quot;tr&amp;quot;&amp;gt;&amp;#039; .. text .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
				&lt;br /&gt;
			elseif system == &amp;quot;ipa&amp;quot; then&lt;br /&gt;
				rhyme = getRhymeFromIPA(text)&lt;br /&gt;
				return &amp;#039;&amp;lt;span class=&amp;quot;IPA&amp;quot;&amp;gt;/&amp;#039; .. text .. &amp;#039;/&amp;lt;/span&amp;gt;&amp;#039; ..&lt;br /&gt;
					(rhyme and (&amp;quot;&amp;lt;sup&amp;gt;([[:Category:Rhymes:Thai/&amp;quot; .. rhyme .. &amp;quot;|R]])&amp;lt;/sup&amp;gt;[[Category:Rhymes:Thai/&amp;quot; .. rhyme .. &amp;quot;]]&amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
				&lt;br /&gt;
			elseif system == &amp;quot;file&amp;quot; then&lt;br /&gt;
				local length = ((mw.ustring.len(gsub(text, &amp;quot;[^ %-]&amp;quot;, &amp;quot;&amp;quot;)) + 1) * 25 + 50)&lt;br /&gt;
				if m_fileData[text] then&lt;br /&gt;
					table.insert(categories, &amp;quot;[[Category:Thai terms with audio pronunciation]]&amp;quot;)&lt;br /&gt;
					return &amp;quot;[[File:&amp;quot; .. &lt;br /&gt;
						m_fileData[text] .. &lt;br /&gt;
						&amp;quot;|&amp;quot; .. (length &amp;gt; 200 and 200 or length) .. &lt;br /&gt;
						&amp;quot;px|center]]&amp;quot;&lt;br /&gt;
				else&lt;br /&gt;
					return &amp;quot;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			&lt;br /&gt;
			else&lt;br /&gt;
				return m_hom_data[text]&lt;br /&gt;
					and (#m_hom_data[text] &amp;gt; 3 &lt;br /&gt;
						and tostring( mw.html.create( &amp;quot;div&amp;quot; )&lt;br /&gt;
							:attr {&lt;br /&gt;
								[&amp;quot;class&amp;quot;] = &amp;quot;vsSwitcher&amp;quot;,&lt;br /&gt;
								[&amp;quot;data-toggle-category&amp;quot;] = &amp;quot;homophones&amp;quot;,&lt;br /&gt;
							}&lt;br /&gt;
							:wikitext( &lt;br /&gt;
								tostring( mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
									:attr( &amp;quot;class&amp;quot;, &amp;quot;vsToggleElement&amp;quot; )&lt;br /&gt;
									:wikitext( &amp;quot;&amp;amp;nbsp;&amp;quot; )) .. &lt;br /&gt;
								tostring( mw.html.create( &amp;quot;div&amp;quot; )&lt;br /&gt;
									:attr( &amp;quot;class&amp;quot;, &amp;quot;vsShow&amp;quot; )&lt;br /&gt;
									:css( &amp;quot;display&amp;quot;, &amp;quot;none&amp;quot; )) ..&lt;br /&gt;
								tostring( mw.html.create( &amp;quot;div&amp;quot; )&lt;br /&gt;
									:attr( &amp;quot;class&amp;quot;, &amp;quot;vsHide&amp;quot; )&lt;br /&gt;
									:wikitext(( gsub(m_hom(text), &amp;quot;, &amp;quot;, &amp;quot;&amp;lt;br&amp;gt;&amp;quot; ))))))&lt;br /&gt;
						or gsub(m_hom(text), &amp;quot;, &amp;quot;, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;))&lt;br /&gt;
					or &amp;quot;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		for i, spelling in ipairs(p) do&lt;br /&gt;
			if system == &amp;quot;charPhon&amp;quot; then&lt;br /&gt;
				qualifiers = {}&lt;br /&gt;
				if match(spelling, &amp;quot;%:&amp;quot;) then&lt;br /&gt;
					table.insert(qualifiers, match(spelling, &amp;quot;%:(.+)&amp;quot;))&lt;br /&gt;
					spelling = match(spelling, &amp;quot;([^%:]+)&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
				if match(spelling, &amp;quot;-$&amp;quot;) then&lt;br /&gt;
					table.insert(qualifiers, &amp;quot;bound form&amp;quot;)&lt;br /&gt;
					table.insert(categories, &amp;quot;[[Category:Thai prefixes]]&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				spelling = match(spelling, &amp;quot;([^%:]+)&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(result[system], tostring( mw.html.create( &amp;quot;td&amp;quot; )&lt;br /&gt;
				:css( &amp;quot;border-right&amp;quot;, i &amp;lt; #p and &amp;quot;1px solid var(--border-color-base,lightgray)&amp;quot; or &amp;quot;0px&amp;quot; )&lt;br /&gt;
				:wikitext( &lt;br /&gt;
					(system == &amp;quot;charPhon&amp;quot;&lt;br /&gt;
					and      tostring( mw.html.create( &amp;quot;div&amp;quot; )&lt;br /&gt;
                        :attr(&amp;quot;class&amp;quot;,&amp;quot;th-reading&amp;quot;)&lt;br /&gt;
                        :wikitext( formatThai(spelling, false, qualifiers) .. getCharSeq(spelling) ) )&lt;br /&gt;
					or f(find(system, &amp;quot;^[pri]&amp;quot;)&lt;br /&gt;
						and export.translit(spelling, lang, sc, system, &amp;quot;pron-module&amp;quot;)&lt;br /&gt;
						or spelling, system)))))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	has_hom = match(table.concat(result[&amp;quot;homophone&amp;quot;]), &amp;quot;Thai&amp;quot;) or false&lt;br /&gt;
	has_file = match(table.concat(result[&amp;quot;file&amp;quot;]), &amp;quot;File&amp;quot;) or false&lt;br /&gt;
	notes = (#note &amp;gt; 0 and &amp;quot;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;{&amp;quot; .. table.concat(note, &amp;quot;; &amp;quot;) .. &amp;quot;}&amp;lt;/small&amp;gt;&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local function row(a, b, o)&lt;br /&gt;
		return ((o and o[&amp;quot;pr&amp;quot;]) and &amp;quot;&amp;quot; or &amp;quot;\n&amp;lt;tr&amp;gt;&amp;quot;) ..&lt;br /&gt;
		tostring( mw.html.create( &amp;quot;th&amp;quot; )&lt;br /&gt;
			:attr( (o and o[&amp;quot;rom&amp;quot;]) and &amp;quot;rowspan&amp;quot; or &amp;quot;colspan&amp;quot;, (o and o[&amp;quot;pr&amp;quot;]) and 1 or 2 )&lt;br /&gt;
			:css( &amp;quot;background-color&amp;quot;, &amp;quot;var(--wikt-palette-paleblue,#f8f9fa)&amp;quot; )&lt;br /&gt;
			:css( &amp;quot;color&amp;quot;, &amp;quot;inherit&amp;quot; )&lt;br /&gt;
			:css( &amp;quot;border-bottom&amp;quot;, (o and o[&amp;quot;bt&amp;quot;]) and &amp;quot;0px&amp;quot; or &amp;quot;1px solid var(--border-color-base,lightgray)&amp;quot; )&lt;br /&gt;
			:css( &amp;quot;border-right&amp;quot;, &amp;quot;1px solid var(--border-color-base,lightgray)&amp;quot; )&lt;br /&gt;
			:css( &amp;quot;font-weight&amp;quot;, &amp;quot;bold&amp;quot; )&lt;br /&gt;
			:wikitext(a)) ..&lt;br /&gt;
&lt;br /&gt;
		((o and o[&amp;quot;rom&amp;quot;]) and &amp;quot;&amp;quot; or &lt;br /&gt;
			((o and o[&amp;quot;ortho&amp;quot;])&lt;br /&gt;
				and tostring(mw.html.create( &amp;quot;td&amp;quot; )&lt;br /&gt;
					:attr( &amp;quot;colspan&amp;quot;, #p )&lt;br /&gt;
					:css( &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid var(--border-color-base,lightgray)&amp;quot; )&lt;br /&gt;
					:wikitext(b))&lt;br /&gt;
				or b) ..&lt;br /&gt;
&lt;br /&gt;
			&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if find(pagename, &amp;quot;ทร&amp;quot;) and find(table.concat(result[&amp;quot;charPhon&amp;quot;]), &amp;quot;ซ&amp;quot;) then&lt;br /&gt;
		table.insert(categories, &amp;quot;[[Category:Thai terms spelled with ทร read as ซ]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return&lt;br /&gt;
	&amp;#039;&amp;lt;table cellpadding=10 style=&amp;quot;border-spacing: 2px; border: 1px solid var(--border-color-base,lightgray); text-align:center&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
	&lt;br /&gt;
	((namespace ~= &amp;quot;&amp;quot; and not args.pagename)&lt;br /&gt;
		&lt;br /&gt;
		and row(&lt;br /&gt;
			&amp;quot;&amp;#039;&amp;#039;[[w:Thai alphabet|Phonemic]]&amp;#039;&amp;#039;&amp;quot; .. notes,&lt;br /&gt;
            table.concat(result[&amp;quot;charPhon&amp;quot;]))&lt;br /&gt;
		&lt;br /&gt;
		or (pagename == table.concat(p)&lt;br /&gt;
			and row(&lt;br /&gt;
				&amp;quot;&amp;#039;&amp;#039;[[w:Thai alphabet|Orthographic/Phonemic]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
				formatThai(pagename,true) .. getCharSeq(pagename),&lt;br /&gt;
				{ [&amp;quot;ortho&amp;quot;] = true })&lt;br /&gt;
		&lt;br /&gt;
			or row(&lt;br /&gt;
				&amp;quot;&amp;#039;&amp;#039;[[w:Thai alphabet|Orthographic]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
				formatThai(pagename,true) .. getCharSeq(pagename),&lt;br /&gt;
				{ [&amp;quot;ortho&amp;quot;] = true }) ..&lt;br /&gt;
			&lt;br /&gt;
				row(&lt;br /&gt;
				&amp;quot;&amp;#039;&amp;#039;[[w:Thai alphabet|Phonemic]]&amp;#039;&amp;#039;&amp;quot; .. notes,&lt;br /&gt;
				table.concat(result[&amp;quot;charPhon&amp;quot;])))) ..&lt;br /&gt;
	&lt;br /&gt;
	row(&amp;quot;&amp;#039;&amp;#039;[[Wiktionary:Thai romanization|Romanization]]&amp;#039;&amp;#039;&amp;quot;, nil, { [&amp;quot;rom&amp;quot;] = true }) ..&lt;br /&gt;
	&lt;br /&gt;
	row(&lt;br /&gt;
		&amp;quot;&amp;#039;&amp;#039;[[Wiktionary:Thai romanization|Paiboon]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
		table.concat(result[&amp;quot;paiboon&amp;quot;]),&lt;br /&gt;
		{ [&amp;quot;pr&amp;quot;] = true }) .. &amp;quot;&amp;lt;tr&amp;gt;&amp;quot; ..&lt;br /&gt;
	&lt;br /&gt;
	row(&lt;br /&gt;
		&amp;quot;&amp;#039;&amp;#039;[[Wiktionary:Thai romanization|Royal Institute]]&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
		table.concat(result[&amp;quot;royin&amp;quot;]),&lt;br /&gt;
		{ [&amp;quot;pr&amp;quot;] = true }) ..&lt;br /&gt;
	&lt;br /&gt;
	row(&lt;br /&gt;
		&amp;quot;(&amp;#039;&amp;#039;[[w:Standard Thai|standard]]&amp;#039;&amp;#039;) &amp;quot; ..&lt;br /&gt;
		&amp;quot;[[Wiktionary:International Phonetic Alphabet|IPA]]&amp;quot; ..&lt;br /&gt;
		&amp;quot;&amp;lt;sup&amp;gt;([[Appendix:Thai pronunciation|key]])&amp;lt;/sup&amp;gt;&amp;quot;,&lt;br /&gt;
		&lt;br /&gt;
		table.concat(result[&amp;quot;ipa&amp;quot;]),&lt;br /&gt;
		{ [&amp;quot;bt&amp;quot;] = not has_hom and not has_file }) ..&lt;br /&gt;
	&lt;br /&gt;
	(has_hom&lt;br /&gt;
		and row(&lt;br /&gt;
			&amp;quot;&amp;#039;&amp;#039;Homophones&amp;#039;&amp;#039;&amp;quot; .. homEdit,&lt;br /&gt;
			table.concat(result[&amp;quot;homophone&amp;quot;]) or &amp;quot;&amp;quot;,&lt;br /&gt;
			{ [&amp;quot;bt&amp;quot;] = not has_file })&lt;br /&gt;
		or &amp;quot;&amp;quot;) ..&lt;br /&gt;
	&lt;br /&gt;
	(has_file&lt;br /&gt;
		and row(&lt;br /&gt;
			&amp;quot;&amp;#039;&amp;#039;Audio&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
			table.concat(result[&amp;quot;file&amp;quot;]) or &amp;quot;&amp;quot;,&lt;br /&gt;
			{ [&amp;quot;bt&amp;quot;] = true })&lt;br /&gt;
		or &amp;quot;&amp;quot;) ..&lt;br /&gt;
	&lt;br /&gt;
	&amp;quot;\n&amp;lt;/table&amp;gt;&amp;quot; .. (namespace == &amp;quot;&amp;quot; and table.concat(categories) or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>wikt&gt;WingerBot</name></author>
	</entry>
</feed>