<?xml version='1.1' encoding='utf-8'?>
<lgr xmlns="urn:ietf:params:xml:ns:lgr-1.0">
    <meta>
        <version comment="IDN Reference table for Bangla (Bengali) Script">4.0</version>
        <date>2023-06-20</date>
        <language>und-Beng</language>
        <description type="text/plain">
            <![CDATA[
    # Description:
	# ============
    # This table contains all the single and sequential code points and
	# their variants to be used for the registration of Bangla IDNs.
	# The Bangla table also supports the hyphen character and Latin digits.
	#
    # Contact Information:
	# ====================
    # Contact Name: IDN Support
    # Contact Email: registry-help@registry.godaddy
    # Contact: +1 (480) 651-9999
    ]]>
        </description>
        <unicode-version>6.3.0</unicode-version>
    </meta>
    <data>
        <char cp="002D" tag="hyphen" not-when="hyphen-rules"/>
        <char cp="0030" tag="digit">
            <var cp="09E6" type="blocked"/>
        </char>
        <char cp="0031" tag="digit">
            <var cp="09E7" type="blocked"/>
        </char>
        <char cp="0032" tag="digit">
            <var cp="09E8" type="blocked"/>
        </char>
        <char cp="0033" tag="digit">
            <var cp="09E9" type="blocked"/>
        </char>
        <char cp="0034" tag="digit">
            <var cp="09EA" type="blocked"/>
        </char>
        <char cp="0035" tag="digit">
            <var cp="09EB" type="blocked"/>
        </char>
        <char cp="0036" tag="digit">
            <var cp="09EC" type="blocked"/>
        </char>
        <char cp="0037" tag="digit">
            <var cp="09ED" type="blocked"/>
        </char>
        <char cp="0038" tag="digit">
            <var cp="09EE" type="blocked"/>
        </char>
        <char cp="0039" tag="digit">
            <var cp="09EF" type="blocked"/>
        </char>
        <char cp="0981" tag="B" when="b-follow-only-c-n-m-v"/>
        <char cp="0982" tag="D" when="d-follow-only-c-n-m-v-b"/>
        <char cp="0983" tag="X" when="x-follow-only-c-n-m-v-b"/>
        <char cp="0985" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0985 09CD 09AF 09BE" not-when="v-s-cannot-be-preceded-by-h" comment="Bengali letter A with Ya-phalaa"/>
        <char cp="0986" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0987" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0988" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0989" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="098A" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="098B" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="098F" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="098F 09CD 09AF 09BE" not-when="v-s-cannot-be-preceded-by-h" comment="Bengali letter E with Ya-phalaa"/>
        <char cp="0990" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0993" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0994" tag="V" not-when="v-s-cannot-be-preceded-by-h"/>
        <char cp="0995" tag="C"/>
        <char cp="0996" tag="C"/>
        <char cp="0997" tag="C"/>
        <char cp="0998" tag="C"/>
        <char cp="0999" tag="C"/>
        <char cp="099A" tag="C"/>
        <char cp="099B" tag="C"/>
        <char cp="099C" tag="C"/>
        <char cp="099D" tag="C"/>
        <char cp="099E" tag="C"/>
        <char cp="099F" tag="C"/>
        <char cp="09A0" tag="C"/>
        <char cp="09A1" tag="C"/>
        <char cp="09A2" tag="C"/>
        <char cp="09A3" tag="C"/>
        <char cp="09A4" tag="C"/>
        <char cp="09A5" tag="C"/>
        <char cp="09A6" tag="C"/>
        <char cp="09A7" tag="C"/>
        <char cp="09A8" tag="C"/>
        <char cp="09AA" tag="C"/>
        <char cp="09AB" tag="C"/>
        <char cp="09AC" tag="C"/>
        <char cp="09AD" tag="C"/>
        <char cp="09AE" tag="C"/>
        <char cp="09AF" tag="C"/>
        <char cp="09B0" tag="C">
            <var cp="09F0" type="blocked" />
        </char>
        <char cp="09B2" tag="C"/>
        <char cp="09B6" tag="C"/>
        <char cp="09B7" tag="C"/>
        <char cp="09B8" tag="C"/>
        <char cp="09B9" tag="C"/>
        <char cp="09BC" tag="N" when="nukta-succeeding-consonant"/>
        <char cp="09BE" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09BF" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C0" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C1" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C2" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C3" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C4" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C7" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09C8" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09CB" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09CC" tag="M" when="m-can-only-follow-c-or-n"/>
        <char cp="09CD" tag="H" when="h-follow-only-c-or-n"/>
        <char cp="09CE" tag="C Z" when="z-follow-only-v-c-n-m-d-b-x-p"/>
        <char cp="09A8 09CD 09A5">
            <var cp="09A8 09CD 09B9" type="blocked"/>
        </char>
        <char cp="09A8 09CD 09B9">
            <var cp="09A8 09CD 09A5" type="blocked"/>
        </char>
        <char cp="09B8 09CD 09A5">
            <var cp="09B8 09CD 09B9" type="blocked"/>
        </char>
        <char cp="09B8 09CD 09B9">
            <var cp="09B8 09CD 09A5" type="blocked"/>
        </char>
        <char cp="09E6" tag="bengali-digit">
            <var cp="0030" type="blocked"/>
        </char>
        <char cp="09E7" tag="bengali-digit">
            <var cp="0031" type="blocked"/>
        </char>
        <char cp="09E8" tag="bengali-digit">
            <var cp="0032" type="blocked"/>
        </char>
        <char cp="09E9" tag="bengali-digit">
            <var cp="0033" type="blocked"/>
        </char>
        <char cp="09EA" tag="bengali-digit">
            <var cp="0034" type="blocked"/>
        </char>
        <char cp="09EB" tag="bengali-digit">
            <var cp="0035" type="blocked"/>
        </char>
        <char cp="09EC" tag="bengali-digit">
            <var cp="0036" type="blocked"/>
        </char>
        <char cp="09ED" tag="bengali-digit">
            <var cp="0037" type="blocked"/>
        </char>
        <char cp="09EE" tag="bengali-digit">
            <var cp="0038" type="blocked"/>
        </char>
        <char cp="09EF" tag="bengali-digit">
            <var cp="0039" type="blocked"/>
        </char>
        <char cp="09F0" tag="C">
            <var cp="09B0" type="blocked"/>
        </char>
        <char cp="09F1" tag="C"/>
    </data>
    <rules>
        <class name="consonant-subset-nukta" comment="The characters that Nukta can follow">09A1 09A2 09AF</class>
        <class name="digits" from-tag="digit"/>
        <class name="bengali-digits" from-tag="bengali-digit"/>
        <class name="vowel" from-tag="V"/>
        <class name="consonant" from-tag="C"/>
        <class name="nukta" from-tag="N"/>
        <class name="matra" from-tag="M"/>
        <class name="chandrabindu" from-tag="B"/>
        <class name="visarga" from-tag="X"/>
        <class name="anusvara" from-tag="D"/>
        <class name="halant" from-tag="H"/>

        <rule name="nukta-succeeding-consonant">
            <look-behind>
                <class by-ref="consonant-subset-nukta"/>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="b-follow-only-c-n-m-v">
            <look-behind>
                <choice>
                    <class by-ref="consonant"/>
                    <class by-ref="nukta"/>
                    <class by-ref="matra"/>
                    <class by-ref="vowel"/>
                </choice>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="d-follow-only-c-n-m-v-b">
            <look-behind>
                <choice>
                    <class by-ref="consonant"/>
                    <class by-ref="nukta"/>
                    <class by-ref="matra"/>
                    <class by-ref="vowel"/>
                    <class by-ref="chandrabindu"/>
                </choice>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="x-follow-only-c-n-m-v-b">
            <look-behind>
                <choice>
                    <class by-ref="consonant"/>
                    <class by-ref="nukta"/>
                    <class by-ref="matra"/>
                    <class by-ref="vowel"/>
                    <class by-ref="chandrabindu"/>
                </choice>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="m-can-only-follow-c-or-n">
            <look-behind>
                <choice>
                    <class by-ref="consonant"/>
                    <class by-ref="nukta"/>
                </choice>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="h-follow-only-c-or-n">
            <look-behind>
                <choice>
                    <class by-ref="consonant"/>
                    <class by-ref="nukta"/>
                </choice>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="v-s-cannot-be-preceded-by-h">
            <look-behind>
                <class by-ref="halant"/>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="z-follow-only-v-c-n-m-d-b-x-p" comment="Khanda Ta(Z) must be preceded by V, C, N, M, D, B, X, Ra-Hasanta">
            <look-behind>
                <choice>
                    <class by-ref="vowel"/>
                    <class by-ref="consonant"/>
                    <class by-ref="nukta"/>
                    <class by-ref="matra"/>
                    <class by-ref="anusvara"/>
                    <class by-ref="chandrabindu"/>
                    <class by-ref="visarga"/>
                    <char cp="09B0 09CD" comment="ra-hasanta(p)"/>
                    <char cp="09F0 09CD" comment="ra-hasanta(p)"/>
                </choice>
            </look-behind>
            <anchor/>
        </rule>

        <rule name="no-mix-09B0-09F0" comment="09B0 and 09F0 cannot be mixed.">
            <choice>
                <rule>
                    <char cp="09B0"/>
                    <any count="0+"/>
                    <char cp="09F0"/>
                </rule>
                <rule>
                    <char cp="09F0"/>
                    <any count="0+"/>
                    <char cp="09B0"/>
                </rule>
            </choice>
        </rule>

        <rule name="no-digit-mixing">
            <choice>
                <rule>
                    <class by-ref="digits"/>
                    <any count="0+"/>
                    <class by-ref="bengali-digits"/>
                </rule>
                <rule>
                    <class by-ref="bengali-digits"/>
                    <any count="0+"/>
                    <class by-ref="digits"/>
                </rule>
            </choice>
        </rule>

        <rule name="hyphen-rules">
            <choice>
                <rule comment="no leading hyphen">
                    <look-behind>
                        <start/>
                    </look-behind>
                    <anchor/>
                </rule>
                <rule comment="no trailing hyphen">
                    <anchor/>
                    <look-ahead>
                        <end/>
                    </look-ahead>
                </rule>
                <rule comment="no consecutive hyphens in third and fourth">
                    <look-behind>
                        <start/>
                        <any/>
                        <any/>
                        <char cp="002D" comment="hyphen-minus"/>
                    </look-behind>
                    <anchor/>
                </rule>
            </choice>
        </rule>
        <action disp="invalid" match="no-digit-mixing" />
        <action disp="invalid" match="no-mix-09B0-09F0" />
        <action disp="blocked" any-variant="blocked" comment="any variant label containing blocked variants is blocked"/>
        <action disp="valid" comment="catch all (default action)" />
    </rules>
</lgr>