﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
// ***************************************************************************
// *
// *  Copyright (C) 2004-2016, International Business Machines
// *  Corporation; Unicode, Inc.; and others.  All Rights Reserved.
// *
// ***************************************************************************
// File: root.txt
// Generated from CLDR 
//
root {
    RuleBasedTransliteratorIDs {
        Tone-Digit {
            alias {"Pinyin-NumericPinyin"}
        }
        Digit-Tone {
            alias {"NumericPinyin-Pinyin"}
        }
        Amharic-Latin/BGN {
            alias {"am-am_Latn/BGN"}
        }
        am-Latn-t-am-m0-bgn {
            alias {"am-am_Latn/BGN"}
        }
        am-am_Latn/BGN {
            file {
                resource:process(transliterator) {"am_am_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        und-t-d0-accents {
            alias {"Any-Accents"}
        }
        Any-Accents {
            file {
                resource:process(transliterator) {"Any_Accents.txt"}
                direction {"FORWARD"}
            }
        }
        und-t-s0-accents {
            alias {"Accents-Any"}
        }
        Accents-Any {
            file {
                resource:process(transliterator) {"Any_Accents.txt"}
                direction {"REVERSE"}
            }
        }

        und-t-d0-publish {
            alias {"Any-Publishing"}
        }
        Any-Publishing {
            file {
                resource:process(transliterator) {"Any_Publishing.txt"}
                direction {"FORWARD"}
            }
        }
        und-t-s0-publish {
            alias {"Publishing-Any"}
        }
        Publishing-Any {
            file {
                resource:process(transliterator) {"Any_Publishing.txt"}
                direction {"REVERSE"}
            }
        }

        Arabic-Latin {
            alias {"Arab-Latn"}
        }
        und-Latn-t-und-arab {
            alias {"Arab-Latn"}
        }
        Arab-Latn {
            file {
                resource:process(transliterator) {"Arab_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Arabic {
            alias {"Latn-Arab"}
        }
        und-Arab-t-und-latn {
            alias {"Latn-Arab"}
        }
        Latn-Arab {
            file {
                resource:process(transliterator) {"Arab_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        Arabic-Latin/BGN {
            alias {"ar-ar_Latn/BGN"}
        }
        ar-Latn-t-ar-m0-bgn {
            alias {"ar-ar_Latn/BGN"}
        }
        ar-ar_Latn/BGN {
            file {
                resource:process(transliterator) {"ar_ar_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Armenian-Latin/BGN {
            alias {"hy-hy_Latn/BGN"}
        }
        hy-Latn-t-hy-m0-bgn {
            alias {"hy-hy_Latn/BGN"}
        }
        hy-hy_Latn/BGN {
            file {
                resource:process(transliterator) {"hy_hy_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Azerbaijani-Latin/BGN {
            alias {"az_Cyrl-az/BGN"}
        }
        az-t-az-cyrl-m0-bgn {
            alias {"az_Cyrl-az/BGN"}
        }
        az_Cyrl-az/BGN {
            file {
                resource:process(transliterator) {"az_Cyrl_az_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Belarusian-Latin/BGN {
            alias {"be-be_Latn/BGN"}
        }
        be-Latn-t-be-m0-bgn {
            alias {"be-be_Latn/BGN"}
        }
        be-be_Latn/BGN {
            file {
                resource:process(transliterator) {"be_be_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Arabic {
            alias {"Beng-Arab"}
        }
        und-Arab-t-und-beng {
            alias {"Beng-Arab"}
        }
        Beng-Arab {
            file {
                resource:process(transliterator) {"Beng_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Devanagari {
            alias {"Beng-Deva"}
        }
        und-Deva-t-und-beng {
            alias {"Beng-Deva"}
        }
        Beng-Deva {
            file {
                resource:process(transliterator) {"Beng_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Gujarati {
            alias {"Beng-Gujr"}
        }
        und-Gujr-t-und-beng {
            alias {"Beng-Gujr"}
        }
        Beng-Gujr {
            file {
                resource:process(transliterator) {"Beng_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Gurmukhi {
            alias {"Beng-Guru"}
        }
        und-Guru-t-und-beng {
            alias {"Beng-Guru"}
        }
        Beng-Guru {
            file {
                resource:process(transliterator) {"Beng_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-InterIndic {
            internal {
                resource:process(transliterator) {"Bengali_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Kannada {
            alias {"Beng-Knda"}
        }
        und-Knda-t-und-beng {
            alias {"Beng-Knda"}
        }
        Beng-Knda {
            file {
                resource:process(transliterator) {"Beng_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Latin {
            alias {"Beng-Latn"}
        }
        und-Latn-t-und-beng {
            alias {"Beng-Latn"}
        }
        Beng-Latn {
            file {
                resource:process(transliterator) {"Beng_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Malayalam {
            alias {"Beng-Mlym"}
        }
        und-Mlym-t-und-beng {
            alias {"Beng-Mlym"}
        }
        Beng-Mlym {
            file {
                resource:process(transliterator) {"Beng_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Oriya {
            alias {"Beng-Orya"}
        }
        und-Orya-t-und-beng {
            alias {"Beng-Orya"}
        }
        Beng-Orya {
            file {
                resource:process(transliterator) {"Beng_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Tamil {
            alias {"Beng-Taml"}
        }
        und-Taml-t-und-beng {
            alias {"Beng-Taml"}
        }
        Beng-Taml {
            file {
                resource:process(transliterator) {"Beng_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Bengali-Telugu {
            alias {"Beng-Telu"}
        }
        und-Telu-t-und-beng {
            alias {"Beng-Telu"}
        }
        Beng-Telu {
            file {
                resource:process(transliterator) {"Beng_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Bulgarian-Latin/BGN {
            alias {"bg-bg_Latn/BGN"}
        }
        bg-Latn-t-bg-m0-bgn {
            alias {"bg-bg_Latn/BGN"}
        }
        bg-bg_Latn/BGN {
            file {
                resource:process(transliterator) {"bg_bg_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Cyrillic-Latin {
            alias {"Cyrl-Latn"}
        }
        und-Latn-t-und-cyrl {
            alias {"Cyrl-Latn"}
        }
        Cyrl-Latn {
            file {
                resource:process(transliterator) {"Cyrl_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Cyrillic {
            alias {"Latn-Cyrl"}
        }
        und-Cyrl-t-und-latn {
            alias {"Latn-Cyrl"}
        }
        Latn-Cyrl {
            file {
                resource:process(transliterator) {"Cyrl_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        Devanagari-Arabic {
            alias {"Deva-Arab"}
        }
        und-Arab-t-und-deva {
            alias {"Deva-Arab"}
        }
        Deva-Arab {
            file {
                resource:process(transliterator) {"Deva_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Bengali {
            alias {"Deva-Beng"}
        }
        und-Beng-t-und-deva {
            alias {"Deva-Beng"}
        }
        Deva-Beng {
            file {
                resource:process(transliterator) {"Deva_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Gujarati {
            alias {"Deva-Gujr"}
        }
        und-Gujr-t-und-deva {
            alias {"Deva-Gujr"}
        }
        Deva-Gujr {
            file {
                resource:process(transliterator) {"Deva_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Gurmukhi {
            alias {"Deva-Guru"}
        }
        und-Guru-t-und-deva {
            alias {"Deva-Guru"}
        }
        Deva-Guru {
            file {
                resource:process(transliterator) {"Deva_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-InterIndic {
            internal {
                resource:process(transliterator) {"Devanagari_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Kannada {
            alias {"Deva-Knda"}
        }
        und-Knda-t-und-deva {
            alias {"Deva-Knda"}
        }
        Deva-Knda {
            file {
                resource:process(transliterator) {"Deva_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Latin {
            alias {"Deva-Latn"}
        }
        und-Latn-t-und-deva {
            alias {"Deva-Latn"}
        }
        Deva-Latn {
            file {
                resource:process(transliterator) {"Deva_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Malayalam {
            alias {"Deva-Mlym"}
        }
        und-Mlym-t-und-deva {
            alias {"Deva-Mlym"}
        }
        Deva-Mlym {
            file {
                resource:process(transliterator) {"Deva_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Oriya {
            alias {"Deva-Orya"}
        }
        und-Orya-t-und-deva {
            alias {"Deva-Orya"}
        }
        Deva-Orya {
            file {
                resource:process(transliterator) {"Deva_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Tamil {
            alias {"Deva-Taml"}
        }
        und-Taml-t-und-deva {
            alias {"Deva-Taml"}
        }
        Deva-Taml {
            file {
                resource:process(transliterator) {"Deva_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Devanagari-Telugu {
            alias {"Deva-Telu"}
        }
        und-Telu-t-und-deva {
            alias {"Deva-Telu"}
        }
        Deva-Telu {
            file {
                resource:process(transliterator) {"Deva_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        und-t-d0-hwidth {
            alias {"Fullwidth-Halfwidth"}
        }
        Fullwidth-Halfwidth {
            file {
                resource:process(transliterator) {"Fullwidth_Halfwidth.txt"}
                direction {"FORWARD"}
            }
        }
        und-t-d0-fwidth {
            alias {"Halfwidth-Fullwidth"}
        }
        Halfwidth-Fullwidth {
            file {
                resource:process(transliterator) {"Fullwidth_Halfwidth.txt"}
                direction {"REVERSE"}
            }
        }

        Georgian-Latin {
            alias {"Geor-Latn"}
        }
        und-Latn-t-und-geor {
            alias {"Geor-Latn"}
        }
        Geor-Latn {
            file {
                resource:process(transliterator) {"Geor_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Georgian {
            alias {"Latn-Geor"}
        }
        und-Geor-t-und-latn {
            alias {"Latn-Geor"}
        }
        Latn-Geor {
            file {
                resource:process(transliterator) {"Geor_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        Georgian-Latin/BGN {
            alias {"ka-ka_Latn/BGN"}
        }
        ka-Latn-t-ka-m0-bgn {
            alias {"ka-ka_Latn/BGN"}
        }
        ka-ka_Latn/BGN {
            file {
                resource:process(transliterator) {"ka_ka_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Greek-Latin {
            alias {"Grek-Latn"}
        }
        und-Latn-t-und-grek {
            alias {"Grek-Latn"}
        }
        Grek-Latn {
            file {
                resource:process(transliterator) {"Grek_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Greek {
            alias {"Latn-Grek"}
        }
        und-Grek-t-und-latn {
            alias {"Latn-Grek"}
        }
        Latn-Grek {
            file {
                resource:process(transliterator) {"Grek_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        Greek-Latin/BGN {
            alias {"el-el_Latn/BGN"}
        }
        el-Latn-t-el-m0-bgn {
            alias {"el-el_Latn/BGN"}
        }
        el-el_Latn/BGN {
            file {
                resource:process(transliterator) {"el_el_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Greek-Latin/UNGEGN {
            alias {"Grek-Latn/UNGEGN"}
        }
        und-Latn-t-und-grek-m0-ungegn {
            alias {"Grek-Latn/UNGEGN"}
        }
        Grek-Latn/UNGEGN {
            file {
                resource:process(transliterator) {"Grek_Latn_UNGEGN.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Greek/UNGEGN {
            alias {"Latn-Grek/UNGEGN"}
        }
        und-Grek-t-und-latn-m0-ungegn {
            alias {"Latn-Grek/UNGEGN"}
        }
        Latn-Grek/UNGEGN {
            file {
                resource:process(transliterator) {"Grek_Latn_UNGEGN.txt"}
                direction {"REVERSE"}
            }
        }

        Gujarati-Arabic {
            alias {"Gujr-Arab"}
        }
        und-Arab-t-und-gujr {
            alias {"Gujr-Arab"}
        }
        Gujr-Arab {
            file {
                resource:process(transliterator) {"Gujr_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Bengali {
            alias {"Gujr-Beng"}
        }
        und-Beng-t-und-gujr {
            alias {"Gujr-Beng"}
        }
        Gujr-Beng {
            file {
                resource:process(transliterator) {"Gujr_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Devanagari {
            alias {"Gujr-Deva"}
        }
        und-Deva-t-und-gujr {
            alias {"Gujr-Deva"}
        }
        Gujr-Deva {
            file {
                resource:process(transliterator) {"Gujr_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Gurmukhi {
            alias {"Gujr-Guru"}
        }
        und-Guru-t-und-gujr {
            alias {"Gujr-Guru"}
        }
        Gujr-Guru {
            file {
                resource:process(transliterator) {"Gujr_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-InterIndic {
            internal {
                resource:process(transliterator) {"Gujarati_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Kannada {
            alias {"Gujr-Knda"}
        }
        und-Knda-t-und-gujr {
            alias {"Gujr-Knda"}
        }
        Gujr-Knda {
            file {
                resource:process(transliterator) {"Gujr_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Latin {
            alias {"Gujr-Latn"}
        }
        und-Latn-t-und-gujr {
            alias {"Gujr-Latn"}
        }
        Gujr-Latn {
            file {
                resource:process(transliterator) {"Gujr_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Malayalam {
            alias {"Gujr-Mlym"}
        }
        und-Mlym-t-und-gujr {
            alias {"Gujr-Mlym"}
        }
        Gujr-Mlym {
            file {
                resource:process(transliterator) {"Gujr_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Oriya {
            alias {"Gujr-Orya"}
        }
        und-Orya-t-und-gujr {
            alias {"Gujr-Orya"}
        }
        Gujr-Orya {
            file {
                resource:process(transliterator) {"Gujr_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Tamil {
            alias {"Gujr-Taml"}
        }
        und-Taml-t-und-gujr {
            alias {"Gujr-Taml"}
        }
        Gujr-Taml {
            file {
                resource:process(transliterator) {"Gujr_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Gujarati-Telugu {
            alias {"Gujr-Telu"}
        }
        und-Telu-t-und-gujr {
            alias {"Gujr-Telu"}
        }
        Gujr-Telu {
            file {
                resource:process(transliterator) {"Gujr_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Arabic {
            alias {"Guru-Arab"}
        }
        und-Arab-t-und-guru {
            alias {"Guru-Arab"}
        }
        Guru-Arab {
            file {
                resource:process(transliterator) {"Guru_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Bengali {
            alias {"Guru-Beng"}
        }
        und-Beng-t-und-guru {
            alias {"Guru-Beng"}
        }
        Guru-Beng {
            file {
                resource:process(transliterator) {"Guru_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Devanagari {
            alias {"Guru-Deva"}
        }
        und-Deva-t-und-guru {
            alias {"Guru-Deva"}
        }
        Guru-Deva {
            file {
                resource:process(transliterator) {"Guru_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Gujarati {
            alias {"Guru-Gujr"}
        }
        und-Gujr-t-und-guru {
            alias {"Guru-Gujr"}
        }
        Guru-Gujr {
            file {
                resource:process(transliterator) {"Guru_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-InterIndic {
            internal {
                resource:process(transliterator) {"Gurmukhi_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Kannada {
            alias {"Guru-Knda"}
        }
        und-Knda-t-und-guru {
            alias {"Guru-Knda"}
        }
        Guru-Knda {
            file {
                resource:process(transliterator) {"Guru_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Latin {
            alias {"Guru-Latn"}
        }
        und-Latn-t-und-guru {
            alias {"Guru-Latn"}
        }
        Guru-Latn {
            file {
                resource:process(transliterator) {"Guru_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Malayalam {
            alias {"Guru-Mlym"}
        }
        und-Mlym-t-und-guru {
            alias {"Guru-Mlym"}
        }
        Guru-Mlym {
            file {
                resource:process(transliterator) {"Guru_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Oriya {
            alias {"Guru-Orya"}
        }
        und-Orya-t-und-guru {
            alias {"Guru-Orya"}
        }
        Guru-Orya {
            file {
                resource:process(transliterator) {"Guru_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Tamil {
            alias {"Guru-Taml"}
        }
        und-Taml-t-und-guru {
            alias {"Guru-Taml"}
        }
        Guru-Taml {
            file {
                resource:process(transliterator) {"Guru_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Gurmukhi-Telugu {
            alias {"Guru-Telu"}
        }
        und-Telu-t-und-guru {
            alias {"Guru-Telu"}
        }
        Guru-Telu {
            file {
                resource:process(transliterator) {"Guru_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Han-Latin {
            alias {"Hani-Latn"}
        }
        und-Latn-t-und-hani {
            alias {"Hani-Latn"}
        }
        Hani-Latn {
            file {
                resource:process(transliterator) {"Hani_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        und-Latn-t-und-hani-m0-prprname {
            alias {"Han-Latin/Names"}
        }
        Han-Latin/Names {
            file {
                resource:process(transliterator) {"Han_Latin_Names.txt"}
                direction {"FORWARD"}
            }
        }

        Han-Spacedhan {
            internal {
                resource:process(transliterator) {"Han_Spacedhan.txt"}
                direction {"FORWARD"}
            }
        }
        Spacedhan-Han {
            internal {
                resource:process(transliterator) {"Han_Spacedhan.txt"}
                direction {"REVERSE"}
            }
        }

        Hangul-Latin {
            alias {"Hang-Latn"}
        }
        und-Latn-t-und-hang {
            alias {"Hang-Latn"}
        }
        Hang-Latn {
            file {
                resource:process(transliterator) {"Hang_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Hebrew-Latin {
            alias {"Hebr-Latn"}
        }
        und-Latn-t-und-hebr {
            alias {"Hebr-Latn"}
        }
        Hebr-Latn {
            file {
                resource:process(transliterator) {"Hebr_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Hebrew {
            alias {"Latn-Hebr"}
        }
        und-Hebr-t-und-latn {
            alias {"Latn-Hebr"}
        }
        Latn-Hebr {
            file {
                resource:process(transliterator) {"Hebr_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        Hebrew-Latin/BGN {
            alias {"he-he_Latn/BGN"}
        }
        he-Latn-t-he-m0-bgn {
            alias {"he-he_Latn/BGN"}
        }
        he-he_Latn/BGN {
            file {
                resource:process(transliterator) {"he_he_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Hiragana-Katakana {
            alias {"Hira-Kana"}
        }
        und-Kana-t-und-hira {
            alias {"Hira-Kana"}
        }
        Hira-Kana {
            file {
                resource:process(transliterator) {"Hira_Kana.txt"}
                direction {"FORWARD"}
            }
        }
        Katakana-Hiragana {
            alias {"Kana-Hira"}
        }
        und-Hira-t-und-kana {
            alias {"Kana-Hira"}
        }
        Kana-Hira {
            file {
                resource:process(transliterator) {"Hira_Kana.txt"}
                direction {"REVERSE"}
            }
        }

        Hiragana-Latin {
            alias {"Hira-Latn"}
        }
        und-Latn-t-und-hira {
            alias {"Hira-Latn"}
        }
        Hira-Latn {
            file {
                resource:process(transliterator) {"Hira_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Hiragana {
            alias {"Latn-Hira"}
        }
        und-Hira-t-und-latn {
            alias {"Latn-Hira"}
        }
        Latn-Hira {
            file {
                resource:process(transliterator) {"Hira_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        IPA-XSampa {
            alias {"und_FONIPA-und_FONXSAMP"}
        }
        und-fonxsamp-t-und-fonipa {
            alias {"und_FONIPA-und_FONXSAMP"}
        }
        und_FONIPA-und_FONXSAMP {
            file {
                resource:process(transliterator) {"und_FONIPA_und_FONXSAMP.txt"}
                direction {"FORWARD"}
            }
        }
        XSampa-IPA {
            alias {"und_FONXSAMP-und_FONIPA"}
        }
        und-fonipa-t-und-fonxsamp {
            alias {"und_FONXSAMP-und_FONIPA"}
        }
        und_FONXSAMP-und_FONIPA {
            file {
                resource:process(transliterator) {"und_FONIPA_und_FONXSAMP.txt"}
                direction {"REVERSE"}
            }
        }

        InterIndic-Arabic {
            internal {
                resource:process(transliterator) {"InterIndic_Arabic.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Bengali {
            internal {
                resource:process(transliterator) {"InterIndic_Bengali.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Devanagari {
            internal {
                resource:process(transliterator) {"InterIndic_Devanagari.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Gujarati {
            internal {
                resource:process(transliterator) {"InterIndic_Gujarati.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Gurmukhi {
            internal {
                resource:process(transliterator) {"InterIndic_Gurmukhi.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Kannada {
            internal {
                resource:process(transliterator) {"InterIndic_Kannada.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Latin {
            internal {
                resource:process(transliterator) {"InterIndic_Latin.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Malayalam {
            internal {
                resource:process(transliterator) {"InterIndic_Malayalam.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Oriya {
            internal {
                resource:process(transliterator) {"InterIndic_Oriya.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Tamil {
            internal {
                resource:process(transliterator) {"InterIndic_Tamil.txt"}
                direction {"FORWARD"}
            }
        }

        InterIndic-Telugu {
            internal {
                resource:process(transliterator) {"InterIndic_Telugu.txt"}
                direction {"FORWARD"}
            }
        }

        Jamo-Latin {
            alias {"Jamo-Latn"}
        }
        und-Latn-t-und-jamo {
            alias {"Jamo-Latn"}
        }
        Jamo-Latn {
            file {
                resource:process(transliterator) {"Jamo_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Arabic {
            alias {"Knda-Arab"}
        }
        und-Arab-t-und-knda {
            alias {"Knda-Arab"}
        }
        Knda-Arab {
            file {
                resource:process(transliterator) {"Knda_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Bengali {
            alias {"Knda-Beng"}
        }
        und-Beng-t-und-knda {
            alias {"Knda-Beng"}
        }
        Knda-Beng {
            file {
                resource:process(transliterator) {"Knda_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Devanagari {
            alias {"Knda-Deva"}
        }
        und-Deva-t-und-knda {
            alias {"Knda-Deva"}
        }
        Knda-Deva {
            file {
                resource:process(transliterator) {"Knda_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Gujarati {
            alias {"Knda-Gujr"}
        }
        und-Gujr-t-und-knda {
            alias {"Knda-Gujr"}
        }
        Knda-Gujr {
            file {
                resource:process(transliterator) {"Knda_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Gurmukhi {
            alias {"Knda-Guru"}
        }
        und-Guru-t-und-knda {
            alias {"Knda-Guru"}
        }
        Knda-Guru {
            file {
                resource:process(transliterator) {"Knda_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-InterIndic {
            internal {
                resource:process(transliterator) {"Kannada_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Latin {
            alias {"Knda-Latn"}
        }
        und-Latn-t-und-knda {
            alias {"Knda-Latn"}
        }
        Knda-Latn {
            file {
                resource:process(transliterator) {"Knda_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Malayalam {
            alias {"Knda-Mlym"}
        }
        und-Mlym-t-und-knda {
            alias {"Knda-Mlym"}
        }
        Knda-Mlym {
            file {
                resource:process(transliterator) {"Knda_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Oriya {
            alias {"Knda-Orya"}
        }
        und-Orya-t-und-knda {
            alias {"Knda-Orya"}
        }
        Knda-Orya {
            file {
                resource:process(transliterator) {"Knda_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Tamil {
            alias {"Knda-Taml"}
        }
        und-Taml-t-und-knda {
            alias {"Knda-Taml"}
        }
        Knda-Taml {
            file {
                resource:process(transliterator) {"Knda_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Kannada-Telugu {
            alias {"Knda-Telu"}
        }
        und-Telu-t-und-knda {
            alias {"Knda-Telu"}
        }
        Knda-Telu {
            file {
                resource:process(transliterator) {"Knda_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Katakana-Latin/BGN {
            alias {"ja_Hrkt-ja_Latn/BGN"}
        }
        ja-Latn-t-ja-hrkt-m0-bgn {
            alias {"ja_Hrkt-ja_Latn/BGN"}
        }
        ja_Hrkt-ja_Latn/BGN {
            file {
                resource:process(transliterator) {"ja_Hrkt_ja_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Kazakh-Latin/BGN {
            alias {"kk-kk_Latn/BGN"}
        }
        kk-Latn-t-kk-m0-bgn {
            alias {"kk-kk_Latn/BGN"}
        }
        kk-kk_Latn/BGN {
            file {
                resource:process(transliterator) {"kk_kk_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Kirghiz-Latin/BGN {
            alias {"ky-ky_Latn/BGN"}
        }
        ky-Latn-t-ky-m0-bgn {
            alias {"ky-ky_Latn/BGN"}
        }
        ky-ky_Latn/BGN {
            file {
                resource:process(transliterator) {"ky_ky_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Korean-Latin/BGN {
            alias {"ko-ko_Latn/BGN"}
        }
        ko-Latn-t-ko-m0-bgn {
            alias {"ko-ko_Latn/BGN"}
        }
        ko-ko_Latn/BGN {
            file {
                resource:process(transliterator) {"ko_ko_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        und-t-d0-ascii {
            alias {"Latin-ASCII"}
        }
        und-Latn-t-s0-ascii {
            alias {"Latin-ASCII"}
        }
        Latin-ASCII {
            file {
                resource:process(transliterator) {"Latin_ASCII.txt"}
                direction {"FORWARD"}
            }
        }
        ASCII-Latin {
            file {
                resource:process(transliterator) {"Latin_ASCII.txt"}
                direction {"REVERSE"}
            }
        }

        Latin-Armenian {
            alias {"Latn-Armn"}
        }
        und-Armn-t-und-latn {
            alias {"Latn-Armn"}
        }
        Latn-Armn {
            file {
                resource:process(transliterator) {"Latn_Armn.txt"}
                direction {"FORWARD"}
            }
        }
        Armenian-Latin {
            alias {"Armn-Latn"}
        }
        und-Latn-t-und-armn {
            alias {"Armn-Latn"}
        }
        Armn-Latn {
            file {
                resource:process(transliterator) {"Latn_Armn.txt"}
                direction {"REVERSE"}
            }
        }

        Latin-Bengali {
            alias {"Latn-Beng"}
        }
        und-Beng-t-und-latn {
            alias {"Latn-Beng"}
        }
        Latn-Beng {
            file {
                resource:process(transliterator) {"Latn_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Bopomofo {
            alias {"Latn-Bopo"}
        }
        und-Bopo-t-und-latn {
            alias {"Latn-Bopo"}
        }
        Latn-Bopo {
            file {
                resource:process(transliterator) {"Latn_Bopo.txt"}
                direction {"FORWARD"}
            }
        }
        Bopomofo-Latin {
            alias {"Bopo-Latn"}
        }
        und-Latn-t-und-bopo {
            alias {"Bopo-Latn"}
        }
        Bopo-Latn {
            file {
                resource:process(transliterator) {"Latn_Bopo.txt"}
                direction {"REVERSE"}
            }
        }

        Latin-ConjoiningJamo {
            internal {
                resource:process(transliterator) {"Latin_ConjoiningJamo.txt"}
                direction {"FORWARD"}
            }
        }
        ConjoiningJamo-Latin {
            internal {
                resource:process(transliterator) {"Latin_ConjoiningJamo.txt"}
                direction {"REVERSE"}
            }
        }

        Latin-Devanagari {
            alias {"Latn-Deva"}
        }
        und-Deva-t-und-latn {
            alias {"Latn-Deva"}
        }
        Latn-Deva {
            file {
                resource:process(transliterator) {"Latn_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Gujarati {
            alias {"Latn-Gujr"}
        }
        und-Gujr-t-und-latn {
            alias {"Latn-Gujr"}
        }
        Latn-Gujr {
            file {
                resource:process(transliterator) {"Latn_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Gurmukhi {
            alias {"Latn-Guru"}
        }
        und-Guru-t-und-latn {
            alias {"Latn-Guru"}
        }
        Latn-Guru {
            file {
                resource:process(transliterator) {"Latn_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Hangul {
            alias {"Latn-Hang"}
        }
        und-Hang-t-und-latn {
            alias {"Latn-Hang"}
        }
        Latn-Hang {
            file {
                resource:process(transliterator) {"Latn_Hang.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-InterIndic {
            internal {
                resource:process(transliterator) {"Latin_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Jamo {
            alias {"Latn-Jamo"}
        }
        und-Jamo-t-und-latn {
            alias {"Latn-Jamo"}
        }
        Latn-Jamo {
            file {
                resource:process(transliterator) {"Latn_Jamo.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Kannada {
            alias {"Latn-Knda"}
        }
        und-Knda-t-und-latn {
            alias {"Latn-Knda"}
        }
        Latn-Knda {
            file {
                resource:process(transliterator) {"Latn_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Katakana {
            alias {"Latn-Kana"}
        }
        und-Kana-t-und-latn {
            alias {"Latn-Kana"}
        }
        Latn-Kana {
            file {
                resource:process(transliterator) {"Latn_Kana.txt"}
                direction {"FORWARD"}
            }
        }
        Katakana-Latin {
            alias {"Kana-Latn"}
        }
        und-Latn-t-und-kana {
            alias {"Kana-Latn"}
        }
        Kana-Latn {
            file {
                resource:process(transliterator) {"Latn_Kana.txt"}
                direction {"REVERSE"}
            }
        }

        Latin-Malayalam {
            alias {"Latn-Mlym"}
        }
        und-Mlym-t-und-latn {
            alias {"Latn-Mlym"}
        }
        Latn-Mlym {
            file {
                resource:process(transliterator) {"Latn_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        und-pinyin-t-d0-npinyin {
            alias {"Latin-NumericPinyin"}
        }
        Latin-NumericPinyin {
            file {
                resource:process(transliterator) {"Latin_NumericPinyin.txt"}
                direction {"FORWARD"}
            }
        }
        und-pinyin-t-s0-npinyin {
            alias {"NumericPinyin-Latin"}
        }
        NumericPinyin-Latin {
            file {
                resource:process(transliterator) {"Latin_NumericPinyin.txt"}
                direction {"REVERSE"}
            }
        }

        Latin-Oriya {
            alias {"Latn-Orya"}
        }
        und-Orya-t-und-latn {
            alias {"Latn-Orya"}
        }
        Latn-Orya {
            file {
                resource:process(transliterator) {"Latn_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Tamil {
            alias {"Latn-Taml"}
        }
        und-Taml-t-und-latn {
            alias {"Latn-Taml"}
        }
        Latn-Taml {
            file {
                resource:process(transliterator) {"Latn_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Telugu {
            alias {"Latn-Telu"}
        }
        und-Telu-t-und-latn {
            alias {"Latn-Telu"}
        }
        Latn-Telu {
            file {
                resource:process(transliterator) {"Latn_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Thai {
            alias {"Latn-Thai"}
        }
        und-Thai-t-und-latn {
            alias {"Latn-Thai"}
        }
        Latn-Thai {
            file {
                resource:process(transliterator) {"Latn_Thai.txt"}
                direction {"FORWARD"}
            }
        }

        Macedonian-Latin/BGN {
            alias {"mk-mk_Latn/BGN"}
        }
        mk-Latn-t-mk-m0-bgn {
            alias {"mk-mk_Latn/BGN"}
        }
        mk-mk_Latn/BGN {
            file {
                resource:process(transliterator) {"mk_mk_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Arabic {
            alias {"Mlym-Arab"}
        }
        und-Arab-t-und-mlym {
            alias {"Mlym-Arab"}
        }
        Mlym-Arab {
            file {
                resource:process(transliterator) {"Mlym_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Bengali {
            alias {"Mlym-Beng"}
        }
        und-Beng-t-und-mlym {
            alias {"Mlym-Beng"}
        }
        Mlym-Beng {
            file {
                resource:process(transliterator) {"Mlym_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Devanagari {
            alias {"Mlym-Deva"}
        }
        und-Deva-t-und-mlym {
            alias {"Mlym-Deva"}
        }
        Mlym-Deva {
            file {
                resource:process(transliterator) {"Mlym_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Gujarati {
            alias {"Mlym-Gujr"}
        }
        und-Gujr-t-und-mlym {
            alias {"Mlym-Gujr"}
        }
        Mlym-Gujr {
            file {
                resource:process(transliterator) {"Mlym_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Gurmukhi {
            alias {"Mlym-Guru"}
        }
        und-Guru-t-und-mlym {
            alias {"Mlym-Guru"}
        }
        Mlym-Guru {
            file {
                resource:process(transliterator) {"Mlym_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-InterIndic {
            internal {
                resource:process(transliterator) {"Malayalam_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Kannada {
            alias {"Mlym-Knda"}
        }
        und-Knda-t-und-mlym {
            alias {"Mlym-Knda"}
        }
        Mlym-Knda {
            file {
                resource:process(transliterator) {"Mlym_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Latin {
            alias {"Mlym-Latn"}
        }
        und-Latn-t-und-mlym {
            alias {"Mlym-Latn"}
        }
        Mlym-Latn {
            file {
                resource:process(transliterator) {"Mlym_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Oriya {
            alias {"Mlym-Orya"}
        }
        und-Orya-t-und-mlym {
            alias {"Mlym-Orya"}
        }
        Mlym-Orya {
            file {
                resource:process(transliterator) {"Mlym_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Tamil {
            alias {"Mlym-Taml"}
        }
        und-Taml-t-und-mlym {
            alias {"Mlym-Taml"}
        }
        Mlym-Taml {
            file {
                resource:process(transliterator) {"Mlym_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Malayalam-Telugu {
            alias {"Mlym-Telu"}
        }
        und-Telu-t-und-mlym {
            alias {"Mlym-Telu"}
        }
        Mlym-Telu {
            file {
                resource:process(transliterator) {"Mlym_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Maldivian-Latin/BGN {
            alias {"dv-dv_Latn/BGN"}
        }
        dv-Latn-t-dv-m0-bgn {
            alias {"dv-dv_Latn/BGN"}
        }
        dv-dv_Latn/BGN {
            file {
                resource:process(transliterator) {"dv_dv_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Mongolian-Latin/BGN {
            alias {"mn-mn_Latn/BGN"}
        }
        mn-Latn-t-mn-m0-bgn {
            alias {"mn-mn_Latn/BGN"}
        }
        mn-mn_Latn/BGN {
            file {
                resource:process(transliterator) {"mn_mn_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Arabic {
            alias {"Orya-Arab"}
        }
        und-Arab-t-und-orya {
            alias {"Orya-Arab"}
        }
        Orya-Arab {
            file {
                resource:process(transliterator) {"Orya_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Bengali {
            alias {"Orya-Beng"}
        }
        und-Beng-t-und-orya {
            alias {"Orya-Beng"}
        }
        Orya-Beng {
            file {
                resource:process(transliterator) {"Orya_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Devanagari {
            alias {"Orya-Deva"}
        }
        und-Deva-t-und-orya {
            alias {"Orya-Deva"}
        }
        Orya-Deva {
            file {
                resource:process(transliterator) {"Orya_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Gujarati {
            alias {"Orya-Gujr"}
        }
        und-Gujr-t-und-orya {
            alias {"Orya-Gujr"}
        }
        Orya-Gujr {
            file {
                resource:process(transliterator) {"Orya_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Gurmukhi {
            alias {"Orya-Guru"}
        }
        und-Guru-t-und-orya {
            alias {"Orya-Guru"}
        }
        Orya-Guru {
            file {
                resource:process(transliterator) {"Orya_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-InterIndic {
            internal {
                resource:process(transliterator) {"Oriya_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Kannada {
            alias {"Orya-Knda"}
        }
        und-Knda-t-und-orya {
            alias {"Orya-Knda"}
        }
        Orya-Knda {
            file {
                resource:process(transliterator) {"Orya_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Latin {
            alias {"Orya-Latn"}
        }
        und-Latn-t-und-orya {
            alias {"Orya-Latn"}
        }
        Orya-Latn {
            file {
                resource:process(transliterator) {"Orya_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Malayalam {
            alias {"Orya-Mlym"}
        }
        und-Mlym-t-und-orya {
            alias {"Orya-Mlym"}
        }
        Orya-Mlym {
            file {
                resource:process(transliterator) {"Orya_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Tamil {
            alias {"Orya-Taml"}
        }
        und-Taml-t-und-orya {
            alias {"Orya-Taml"}
        }
        Orya-Taml {
            file {
                resource:process(transliterator) {"Orya_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Oriya-Telugu {
            alias {"Orya-Telu"}
        }
        und-Telu-t-und-orya {
            alias {"Orya-Telu"}
        }
        Orya-Telu {
            file {
                resource:process(transliterator) {"Orya_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Pashto-Latin/BGN {
            alias {"ps-ps_Latn/BGN"}
        }
        ps-Latn-t-ps-m0-bgn {
            alias {"ps-ps_Latn/BGN"}
        }
        ps-ps_Latn/BGN {
            file {
                resource:process(transliterator) {"ps_ps_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Persian-Latin/BGN {
            alias {"fa-fa_Latn/BGN"}
        }
        fa-Latn-t-fa-m0-bgn {
            alias {"fa-fa_Latn/BGN"}
        }
        fa-fa_Latn/BGN {
            file {
                resource:process(transliterator) {"fa_fa_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Pinyin-NumericPinyin {
            file {
                resource:process(transliterator) {"Pinyin_NumericPinyin.txt"}
                direction {"FORWARD"}
            }
        }
        NumericPinyin-Pinyin {
            file {
                resource:process(transliterator) {"Pinyin_NumericPinyin.txt"}
                direction {"REVERSE"}
            }
        }

        Russian-Latin/BGN {
            alias {"ru-ru_Latn/BGN"}
        }
        ru-Latn-t-ru-m0-bgn {
            alias {"ru-ru_Latn/BGN"}
        }
        ru-ru_Latn/BGN {
            file {
                resource:process(transliterator) {"ru_ru_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Serbian-Latin/BGN {
            alias {"sr-sr_Latn/BGN"}
        }
        sr-Latn-t-sr-m0-bgn {
            alias {"sr-sr_Latn/BGN"}
        }
        sr-sr_Latn/BGN {
            file {
                resource:process(transliterator) {"sr_sr_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Simplified-Traditional {
            alias {"Hans-Hant"}
        }
        und-Hant-t-und-hans {
            alias {"Hans-Hant"}
        }
        Hans-Hant {
            file {
                resource:process(transliterator) {"Hans_Hant.txt"}
                direction {"FORWARD"}
            }
        }
        Traditional-Simplified {
            alias {"Hant-Hans"}
        }
        und-Hans-t-und-hant {
            alias {"Hant-Hans"}
        }
        Hant-Hans {
            file {
                resource:process(transliterator) {"Hans_Hant.txt"}
                direction {"REVERSE"}
            }
        }

        Syriac-Latin {
            alias {"Syrc-Latn"}
        }
        und-Latn-t-und-syrc {
            alias {"Syrc-Latn"}
        }
        Syrc-Latn {
            file {
                resource:process(transliterator) {"Syrc_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-Syriac {
            alias {"Latn-Syrc"}
        }
        und-Syrc-t-und-latn {
            alias {"Latn-Syrc"}
        }
        Latn-Syrc {
            file {
                resource:process(transliterator) {"Syrc_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        Tamil-Arabic {
            alias {"Taml-Arab"}
        }
        und-Arab-t-und-taml {
            alias {"Taml-Arab"}
        }
        Taml-Arab {
            file {
                resource:process(transliterator) {"Taml_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Bengali {
            alias {"Taml-Beng"}
        }
        und-Beng-t-und-taml {
            alias {"Taml-Beng"}
        }
        Taml-Beng {
            file {
                resource:process(transliterator) {"Taml_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Devanagari {
            alias {"Taml-Deva"}
        }
        und-Deva-t-und-taml {
            alias {"Taml-Deva"}
        }
        Taml-Deva {
            file {
                resource:process(transliterator) {"Taml_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Gujarati {
            alias {"Taml-Gujr"}
        }
        und-Gujr-t-und-taml {
            alias {"Taml-Gujr"}
        }
        Taml-Gujr {
            file {
                resource:process(transliterator) {"Taml_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Gurmukhi {
            alias {"Taml-Guru"}
        }
        und-Guru-t-und-taml {
            alias {"Taml-Guru"}
        }
        Taml-Guru {
            file {
                resource:process(transliterator) {"Taml_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-InterIndic {
            internal {
                resource:process(transliterator) {"Tamil_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Kannada {
            alias {"Taml-Knda"}
        }
        und-Knda-t-und-taml {
            alias {"Taml-Knda"}
        }
        Taml-Knda {
            file {
                resource:process(transliterator) {"Taml_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Latin {
            alias {"Taml-Latn"}
        }
        und-Latn-t-und-taml {
            alias {"Taml-Latn"}
        }
        Taml-Latn {
            file {
                resource:process(transliterator) {"Taml_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Malayalam {
            alias {"Taml-Mlym"}
        }
        und-Mlym-t-und-taml {
            alias {"Taml-Mlym"}
        }
        Taml-Mlym {
            file {
                resource:process(transliterator) {"Taml_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Oriya {
            alias {"Taml-Orya"}
        }
        und-Orya-t-und-taml {
            alias {"Taml-Orya"}
        }
        Taml-Orya {
            file {
                resource:process(transliterator) {"Taml_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Tamil-Telugu {
            alias {"Taml-Telu"}
        }
        und-Telu-t-und-taml {
            alias {"Taml-Telu"}
        }
        Taml-Telu {
            file {
                resource:process(transliterator) {"Taml_Telu.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Arabic {
            alias {"Telu-Arab"}
        }
        und-Arab-t-und-telu {
            alias {"Telu-Arab"}
        }
        Telu-Arab {
            file {
                resource:process(transliterator) {"Telu_Arab.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Bengali {
            alias {"Telu-Beng"}
        }
        und-Beng-t-und-telu {
            alias {"Telu-Beng"}
        }
        Telu-Beng {
            file {
                resource:process(transliterator) {"Telu_Beng.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Devanagari {
            alias {"Telu-Deva"}
        }
        und-Deva-t-und-telu {
            alias {"Telu-Deva"}
        }
        Telu-Deva {
            file {
                resource:process(transliterator) {"Telu_Deva.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Gujarati {
            alias {"Telu-Gujr"}
        }
        und-Gujr-t-und-telu {
            alias {"Telu-Gujr"}
        }
        Telu-Gujr {
            file {
                resource:process(transliterator) {"Telu_Gujr.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Gurmukhi {
            alias {"Telu-Guru"}
        }
        und-Guru-t-und-telu {
            alias {"Telu-Guru"}
        }
        Telu-Guru {
            file {
                resource:process(transliterator) {"Telu_Guru.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-InterIndic {
            internal {
                resource:process(transliterator) {"Telugu_InterIndic.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Kannada {
            alias {"Telu-Knda"}
        }
        und-Knda-t-und-telu {
            alias {"Telu-Knda"}
        }
        Telu-Knda {
            file {
                resource:process(transliterator) {"Telu_Knda.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Latin {
            alias {"Telu-Latn"}
        }
        und-Latn-t-und-telu {
            alias {"Telu-Latn"}
        }
        Telu-Latn {
            file {
                resource:process(transliterator) {"Telu_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Malayalam {
            alias {"Telu-Mlym"}
        }
        und-Mlym-t-und-telu {
            alias {"Telu-Mlym"}
        }
        Telu-Mlym {
            file {
                resource:process(transliterator) {"Telu_Mlym.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Oriya {
            alias {"Telu-Orya"}
        }
        und-Orya-t-und-telu {
            alias {"Telu-Orya"}
        }
        Telu-Orya {
            file {
                resource:process(transliterator) {"Telu_Orya.txt"}
                direction {"FORWARD"}
            }
        }

        Telugu-Tamil {
            alias {"Telu-Taml"}
        }
        und-Taml-t-und-telu {
            alias {"Telu-Taml"}
        }
        Telu-Taml {
            file {
                resource:process(transliterator) {"Telu_Taml.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Thaana {
            alias {"Latn-Thaa"}
        }
        und-Thaa-t-und-latn {
            alias {"Latn-Thaa"}
        }
        Latn-Thaa {
            file {
                resource:process(transliterator) {"Latn_Thaa.txt"}
                direction {"FORWARD"}
            }
        }
        Thaana-Latin {
            alias {"Thaa-Latn"}
        }
        und-Latn-t-und-thaa {
            alias {"Thaa-Latn"}
        }
        Thaa-Latn {
            file {
                resource:process(transliterator) {"Latn_Thaa.txt"}
                direction {"REVERSE"}
            }
        }

        Thai-Latin {
            alias {"Thai-Latn"}
        }
        und-Latn-t-und-thai {
            alias {"Thai-Latn"}
        }
        Thai-Latn {
            file {
                resource:process(transliterator) {"Thai_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        Thai-ThaiLogical {
            internal {
                resource:process(transliterator) {"Thai_ThaiLogical.txt"}
                direction {"FORWARD"}
            }
        }
        ThaiLogical-Thai {
            internal {
                resource:process(transliterator) {"Thai_ThaiLogical.txt"}
                direction {"REVERSE"}
            }
        }

        Thai-ThaiSemi {
            internal {
                resource:process(transliterator) {"Thai_ThaiSemi.txt"}
                direction {"FORWARD"}
            }
        }
        ThaiSemi-Thai {
            internal {
                resource:process(transliterator) {"Thai_ThaiSemi.txt"}
                direction {"REVERSE"}
            }
        }

        ThaiLogical-Latin {
            internal {
                resource:process(transliterator) {"ThaiLogical_Latin.txt"}
                direction {"FORWARD"}
            }
        }
        Latin-ThaiLogical {
            internal {
                resource:process(transliterator) {"ThaiLogical_Latin.txt"}
                direction {"REVERSE"}
            }
        }

        Turkmen-Latin/BGN {
            alias {"tk_Cyrl-tk/BGN"}
        }
        tk-t-tk-cyrl-m0-bgn {
            alias {"tk_Cyrl-tk/BGN"}
        }
        tk_Cyrl-tk/BGN {
            file {
                resource:process(transliterator) {"tk_Cyrl_tk_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Ukrainian-Latin/BGN {
            alias {"uk-uk_Latn/BGN"}
        }
        uk-Latn-t-uk-m0-bgn {
            alias {"uk-uk_Latn/BGN"}
        }
        uk-uk_Latn/BGN {
            file {
                resource:process(transliterator) {"uk_uk_Latn_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        Uzbek-Latin/BGN {
            alias {"uz_Cyrl-uz/BGN"}
        }
        uz-t-uz-cyrl-m0-bgn {
            alias {"uz_Cyrl-uz/BGN"}
        }
        uz_Cyrl-uz/BGN {
            file {
                resource:process(transliterator) {"uz_Cyrl_uz_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        am-fonipa-t-am {
            alias {"am-am_FONIPA"}
        }
        am-am_FONIPA {
            file {
                resource:process(transliterator) {"am_am_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }
        am-t-am-fonipa {
            alias {"am_FONIPA-am"}
        }
        am_FONIPA-am {
            file {
                resource:process(transliterator) {"am_am_FONIPA.txt"}
                direction {"REVERSE"}
            }
        }

        ar-t-am {
            alias {"am-ar"}
        }
        am-ar {
            file {
                resource:process(transliterator) {"am_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-am {
            alias {"am-chr"}
        }
        am-chr {
            file {
                resource:process(transliterator) {"am_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-am {
            alias {"am-fa"}
        }
        am-fa {
            file {
                resource:process(transliterator) {"am_fa.txt"}
                direction {"FORWARD"}
            }
        }

        az-t-d0-lower {
            alias {"az-Lower"}
        }
        az-Lower {
            file {
                resource:process(transliterator) {"az_Lower.txt"}
                direction {"FORWARD"}
            }
        }

        az-t-d0-title {
            alias {"az-Title"}
        }
        az-Title {
            file {
                resource:process(transliterator) {"az_Title.txt"}
                direction {"FORWARD"}
            }
        }

        az-t-d0-upper {
            alias {"az-Upper"}
        }
        az-Upper {
            file {
                resource:process(transliterator) {"az_Upper.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-ch {
            alias {"ch-am"}
        }
        ch-am {
            file {
                resource:process(transliterator) {"ch_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-ch {
            alias {"ch-ar"}
        }
        ch-ar {
            file {
                resource:process(transliterator) {"ch_ar.txt"}
                direction {"FORWARD"}
            }
        }

        ch-fonipa-t-ch {
            alias {"ch-ch_FONIPA"}
        }
        ch-ch_FONIPA {
            file {
                resource:process(transliterator) {"ch_ch_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-ch {
            alias {"ch-chr"}
        }
        ch-chr {
            file {
                resource:process(transliterator) {"ch_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-ch {
            alias {"ch-fa"}
        }
        ch-fa {
            file {
                resource:process(transliterator) {"ch_fa.txt"}
                direction {"FORWARD"}
            }
        }

        chr-fonipa-t-chr {
            alias {"chr-chr_FONIPA"}
        }
        chr-chr_FONIPA {
            file {
                resource:process(transliterator) {"chr_chr_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-cs {
            alias {"cs-am"}
        }
        cs-am {
            file {
                resource:process(transliterator) {"cs_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-cs {
            alias {"cs-ar"}
        }
        cs-ar {
            file {
                resource:process(transliterator) {"cs_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-cs {
            alias {"cs-chr"}
        }
        cs-chr {
            file {
                resource:process(transliterator) {"cs_chr.txt"}
                direction {"FORWARD"}
            }
        }

        cs-fonipa-t-cs {
            alias {"cs-cs_FONIPA"}
        }
        cs-cs_FONIPA {
            file {
                resource:process(transliterator) {"cs_cs_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-cs {
            alias {"cs-fa"}
        }
        cs-fa {
            file {
                resource:process(transliterator) {"cs_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-cs {
            alias {"cs-ja"}
        }
        cs-ja {
            file {
                resource:process(transliterator) {"cs_ja.txt"}
                direction {"FORWARD"}
            }
        }

        ko-t-cs {
            alias {"cs-ko"}
        }
        cs-ko {
            file {
                resource:process(transliterator) {"cs_ko.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-cs-fonipa {
            alias {"cs_FONIPA-ja"}
        }
        cs_FONIPA-ja {
            file {
                resource:process(transliterator) {"cs_FONIPA_ja.txt"}
                direction {"FORWARD"}
            }
        }

        ko-t-cs-fonipa {
            alias {"cs_FONIPA-ko"}
        }
        cs_FONIPA-ko {
            file {
                resource:process(transliterator) {"cs_FONIPA_ko.txt"}
                direction {"FORWARD"}
            }
        }

        dsb-fonipa-t-dsb {
            alias {"dsb-dsb_FONIPA"}
        }
        dsb-dsb_FONIPA {
            file {
                resource:process(transliterator) {"dsb_dsb_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        el-t-d0-lower {
            alias {"el-Lower"}
        }
        el-Lower {
            file {
                resource:process(transliterator) {"el_Lower.txt"}
                direction {"FORWARD"}
            }
        }

        el-t-d0-title {
            alias {"el-Title"}
        }
        el-Title {
            file {
                resource:process(transliterator) {"el_Title.txt"}
                direction {"FORWARD"}
            }
        }

        el-t-d0-upper {
            alias {"el-Upper"}
        }
        el-Upper {
            file {
                resource:process(transliterator) {"el_Upper.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-eo {
            alias {"eo-am"}
        }
        eo-am {
            file {
                resource:process(transliterator) {"eo_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-eo {
            alias {"eo-ar"}
        }
        eo-ar {
            file {
                resource:process(transliterator) {"eo_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-eo {
            alias {"eo-chr"}
        }
        eo-chr {
            file {
                resource:process(transliterator) {"eo_chr.txt"}
                direction {"FORWARD"}
            }
        }

        eo-fonipa-t-eo {
            alias {"eo-eo_FONIPA"}
        }
        eo-eo_FONIPA {
            file {
                resource:process(transliterator) {"eo_eo_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-eo {
            alias {"eo-fa"}
        }
        eo-fa {
            file {
                resource:process(transliterator) {"eo_fa.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-es {
            alias {"es-am"}
        }
        es-am {
            file {
                resource:process(transliterator) {"es_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-es {
            alias {"es-ar"}
        }
        es-ar {
            file {
                resource:process(transliterator) {"es_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-es {
            alias {"es-chr"}
        }
        es-chr {
            file {
                resource:process(transliterator) {"es_chr.txt"}
                direction {"FORWARD"}
            }
        }

        es-fonipa-t-es {
            alias {"es-es_FONIPA"}
        }
        es-es_FONIPA {
            file {
                resource:process(transliterator) {"es_es_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-es {
            alias {"es-fa"}
        }
        es-fa {
            file {
                resource:process(transliterator) {"es_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-es {
            alias {"es-ja"}
        }
        es-ja {
            file {
                resource:process(transliterator) {"es_ja.txt"}
                direction {"FORWARD"}
            }
        }

        zh-t-es {
            alias {"es-zh"}
        }
        es-zh {
            file {
                resource:process(transliterator) {"es_zh.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-es-419 {
            alias {"es_419-am"}
        }
        es_419-am {
            file {
                resource:process(transliterator) {"es_419_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-es-419 {
            alias {"es_419-ar"}
        }
        es_419-ar {
            file {
                resource:process(transliterator) {"es_419_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-es-419 {
            alias {"es_419-chr"}
        }
        es_419-chr {
            file {
                resource:process(transliterator) {"es_419_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-es-419 {
            alias {"es_419-fa"}
        }
        es_419-fa {
            file {
                resource:process(transliterator) {"es_419_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-es-419 {
            alias {"es_419-ja"}
        }
        es_419-ja {
            file {
                resource:process(transliterator) {"es_419_ja.txt"}
                direction {"FORWARD"}
            }
        }

        zh-t-es-419 {
            alias {"es_419-zh"}
        }
        es_419-zh {
            file {
                resource:process(transliterator) {"es_419_zh.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-es-fonipa {
            alias {"es_FONIPA-am"}
        }
        es_FONIPA-am {
            file {
                resource:process(transliterator) {"es_FONIPA_am.txt"}
                direction {"FORWARD"}
            }
        }

        es-419-fonipa-t-es-fonipa {
            alias {"es_FONIPA-es_419_FONIPA"}
        }
        es_FONIPA-es_419_FONIPA {
            file {
                resource:process(transliterator) {"es_FONIPA_es_419_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-es-fonipa {
            alias {"es_FONIPA-ja"}
        }
        es_FONIPA-ja {
            file {
                resource:process(transliterator) {"es_FONIPA_ja.txt"}
                direction {"FORWARD"}
            }
        }

        zh-t-es-fonipa {
            alias {"es_FONIPA-zh"}
        }
        es_FONIPA-zh {
            file {
                resource:process(transliterator) {"es_FONIPA_zh.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-hy {
            alias {"hy-am"}
        }
        hy-am {
            file {
                resource:process(transliterator) {"hy_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-hy {
            alias {"hy-ar"}
        }
        hy-ar {
            file {
                resource:process(transliterator) {"hy_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-hy {
            alias {"hy-chr"}
        }
        hy-chr {
            file {
                resource:process(transliterator) {"hy_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-hy {
            alias {"hy-fa"}
        }
        hy-fa {
            file {
                resource:process(transliterator) {"hy_fa.txt"}
                direction {"FORWARD"}
            }
        }

        hy-fonipa-t-hy {
            alias {"hy-hy_FONIPA"}
        }
        hy-hy_FONIPA {
            file {
                resource:process(transliterator) {"hy_hy_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-hy-arevmda {
            alias {"hy_AREVMDA-am"}
        }
        hy_AREVMDA-am {
            file {
                resource:process(transliterator) {"hy_AREVMDA_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-hy-arevmda {
            alias {"hy_AREVMDA-ar"}
        }
        hy_AREVMDA-ar {
            file {
                resource:process(transliterator) {"hy_AREVMDA_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-hy-arevmda {
            alias {"hy_AREVMDA-chr"}
        }
        hy_AREVMDA-chr {
            file {
                resource:process(transliterator) {"hy_AREVMDA_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-hy-arevmda {
            alias {"hy_AREVMDA-fa"}
        }
        hy_AREVMDA-fa {
            file {
                resource:process(transliterator) {"hy_AREVMDA_fa.txt"}
                direction {"FORWARD"}
            }
        }

        hy-arevmda-fonipa-t-hy-arevmda {
            alias {"hy_AREVMDA-hy_AREVMDA_FONIPA"}
        }
        hy_AREVMDA-hy_AREVMDA_FONIPA {
            file {
                resource:process(transliterator) {"hy_AREVMDA_hy_AREVMDA_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-ia {
            alias {"ia-am"}
        }
        ia-am {
            file {
                resource:process(transliterator) {"ia_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-ia {
            alias {"ia-ar"}
        }
        ia-ar {
            file {
                resource:process(transliterator) {"ia_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-ia {
            alias {"ia-chr"}
        }
        ia-chr {
            file {
                resource:process(transliterator) {"ia_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-ia {
            alias {"ia-fa"}
        }
        ia-fa {
            file {
                resource:process(transliterator) {"ia_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ia-fonipa-t-ia {
            alias {"ia-ia_FONIPA"}
        }
        ia-ia_FONIPA {
            file {
                resource:process(transliterator) {"ia_ia_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-it {
            alias {"it-am"}
        }
        it-am {
            file {
                resource:process(transliterator) {"it_am.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-it {
            alias {"it-ja"}
        }
        it-ja {
            file {
                resource:process(transliterator) {"it_ja.txt"}
                direction {"FORWARD"}
            }
        }

        ko-t-ja-latn {
            alias {"ja_Latn-ko"}
        }
        ja_Latn-ko {
            file {
                resource:process(transliterator) {"ja_Latn_ko.txt"}
                direction {"FORWARD"}
            }
        }

        ru-t-ja-latn {
            alias {"ja_Latn-ru"}
        }
        ja_Latn-ru {
            file {
                resource:process(transliterator) {"ja_Latn_ru.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-kk {
            alias {"kk-am"}
        }
        kk-am {
            file {
                resource:process(transliterator) {"kk_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-kk {
            alias {"kk-ar"}
        }
        kk-ar {
            file {
                resource:process(transliterator) {"kk_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-kk {
            alias {"kk-chr"}
        }
        kk-chr {
            file {
                resource:process(transliterator) {"kk_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-kk {
            alias {"kk-fa"}
        }
        kk-fa {
            file {
                resource:process(transliterator) {"kk_fa.txt"}
                direction {"FORWARD"}
            }
        }

        kk-fonipa-t-kk {
            alias {"kk-kk_FONIPA"}
        }
        kk-kk_FONIPA {
            file {
                resource:process(transliterator) {"kk_kk_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-ky {
            alias {"ky-am"}
        }
        ky-am {
            file {
                resource:process(transliterator) {"ky_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-ky {
            alias {"ky-ar"}
        }
        ky-ar {
            file {
                resource:process(transliterator) {"ky_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-ky {
            alias {"ky-chr"}
        }
        ky-chr {
            file {
                resource:process(transliterator) {"ky_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-ky {
            alias {"ky-fa"}
        }
        ky-fa {
            file {
                resource:process(transliterator) {"ky_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ky-fonipa-t-ky {
            alias {"ky-ky_FONIPA"}
        }
        ky-ky_FONIPA {
            file {
                resource:process(transliterator) {"ky_ky_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        la-fonipa-t-la {
            alias {"la-la_FONIPA"}
        }
        la-la_FONIPA {
            file {
                resource:process(transliterator) {"la_la_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        lt-t-d0-lower {
            alias {"lt-Lower"}
        }
        lt-Lower {
            file {
                resource:process(transliterator) {"lt_Lower.txt"}
                direction {"FORWARD"}
            }
        }

        lt-t-d0-title {
            alias {"lt-Title"}
        }
        lt-Title {
            file {
                resource:process(transliterator) {"lt_Title.txt"}
                direction {"FORWARD"}
            }
        }

        lt-t-d0-upper {
            alias {"lt-Upper"}
        }
        lt-Upper {
            file {
                resource:process(transliterator) {"lt_Upper.txt"}
                direction {"FORWARD"}
            }
        }

        mn-Latn-t-mn-m0-mns {
            alias {"mn-mn_Latn/MNS"}
        }
        mn-mn_Latn/MNS {
            file {
                resource:process(transliterator) {"mn_mn_Latn_MNS.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-my {
            alias {"my-am"}
        }
        my-am {
            file {
                resource:process(transliterator) {"my_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-my {
            alias {"my-ar"}
        }
        my-ar {
            file {
                resource:process(transliterator) {"my_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-my {
            alias {"my-chr"}
        }
        my-chr {
            file {
                resource:process(transliterator) {"my_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-my {
            alias {"my-fa"}
        }
        my-fa {
            file {
                resource:process(transliterator) {"my_fa.txt"}
                direction {"FORWARD"}
            }
        }

        my-fonipa-t-my {
            alias {"my-my_FONIPA"}
        }
        my-my_FONIPA {
            file {
                resource:process(transliterator) {"my_my_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        nl-t-d0-title {
            alias {"nl-Title"}
        }
        nl-Title {
            file {
                resource:process(transliterator) {"nl_Title.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-pl {
            alias {"pl-am"}
        }
        pl-am {
            file {
                resource:process(transliterator) {"pl_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-pl {
            alias {"pl-ar"}
        }
        pl-ar {
            file {
                resource:process(transliterator) {"pl_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-pl {
            alias {"pl-chr"}
        }
        pl-chr {
            file {
                resource:process(transliterator) {"pl_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-pl {
            alias {"pl-fa"}
        }
        pl-fa {
            file {
                resource:process(transliterator) {"pl_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-pl {
            alias {"pl-ja"}
        }
        pl-ja {
            file {
                resource:process(transliterator) {"pl_ja.txt"}
                direction {"FORWARD"}
            }
        }

        pl-fonipa-t-pl {
            alias {"pl-pl_FONIPA"}
        }
        pl-pl_FONIPA {
            file {
                resource:process(transliterator) {"pl_pl_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-pl-fonipa {
            alias {"pl_FONIPA-ja"}
        }
        pl_FONIPA-ja {
            file {
                resource:process(transliterator) {"pl_FONIPA_ja.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-rm-sursilv {
            alias {"rm_SURSILV-am"}
        }
        rm_SURSILV-am {
            file {
                resource:process(transliterator) {"rm_SURSILV_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-rm-sursilv {
            alias {"rm_SURSILV-ar"}
        }
        rm_SURSILV-ar {
            file {
                resource:process(transliterator) {"rm_SURSILV_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-rm-sursilv {
            alias {"rm_SURSILV-chr"}
        }
        rm_SURSILV-chr {
            file {
                resource:process(transliterator) {"rm_SURSILV_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-rm-sursilv {
            alias {"rm_SURSILV-fa"}
        }
        rm_SURSILV-fa {
            file {
                resource:process(transliterator) {"rm_SURSILV_fa.txt"}
                direction {"FORWARD"}
            }
        }

        rm-fonipa-sursilv-t-rm-sursilv {
            alias {"rm_SURSILV-rm_FONIPA_SURSILV"}
        }
        rm_SURSILV-rm_FONIPA_SURSILV {
            file {
                resource:process(transliterator) {"rm_SURSILV_rm_FONIPA_SURSILV.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-ro {
            alias {"ro-am"}
        }
        ro-am {
            file {
                resource:process(transliterator) {"ro_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-ro {
            alias {"ro-ar"}
        }
        ro-ar {
            file {
                resource:process(transliterator) {"ro_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-ro {
            alias {"ro-chr"}
        }
        ro-chr {
            file {
                resource:process(transliterator) {"ro_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-ro {
            alias {"ro-fa"}
        }
        ro-fa {
            file {
                resource:process(transliterator) {"ro_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-ro {
            alias {"ro-ja"}
        }
        ro-ja {
            file {
                resource:process(transliterator) {"ro_ja.txt"}
                direction {"FORWARD"}
            }
        }

        ro-fonipa-t-ro {
            alias {"ro-ro_FONIPA"}
        }
        ro-ro_FONIPA {
            file {
                resource:process(transliterator) {"ro_ro_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-ro-fonipa {
            alias {"ro_FONIPA-ja"}
        }
        ro_FONIPA-ja {
            file {
                resource:process(transliterator) {"ro_FONIPA_ja.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-ru {
            alias {"ru-ja"}
        }
        ru-ja {
            file {
                resource:process(transliterator) {"ru_ja.txt"}
                direction {"FORWARD"}
            }
        }

        zh-t-ru {
            alias {"ru-zh"}
        }
        ru-zh {
            file {
                resource:process(transliterator) {"ru_zh.txt"}
                direction {"FORWARD"}
            }
        }

        Latin-Russian/BGN {
            alias {"ru_Latn-ru/BGN"}
        }
        ru-t-ru-latn-m0-bgn {
            alias {"ru_Latn-ru/BGN"}
        }
        ru_Latn-ru/BGN {
            file {
                resource:process(transliterator) {"ru_Latn_ru_BGN.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-sat {
            alias {"sat-am"}
        }
        sat-am {
            file {
                resource:process(transliterator) {"sat_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-sat {
            alias {"sat-ar"}
        }
        sat-ar {
            file {
                resource:process(transliterator) {"sat_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-sat {
            alias {"sat-chr"}
        }
        sat-chr {
            file {
                resource:process(transliterator) {"sat_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-sat {
            alias {"sat-fa"}
        }
        sat-fa {
            file {
                resource:process(transliterator) {"sat_fa.txt"}
                direction {"FORWARD"}
            }
        }

        sat-fonipa-t-sat-olck {
            alias {"sat_Olck-sat_FONIPA"}
        }
        sat_Olck-sat_FONIPA {
            file {
                resource:process(transliterator) {"sat_Olck_sat_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-si {
            alias {"si-am"}
        }
        si-am {
            file {
                resource:process(transliterator) {"si_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-si {
            alias {"si-ar"}
        }
        si-ar {
            file {
                resource:process(transliterator) {"si_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-si {
            alias {"si-chr"}
        }
        si-chr {
            file {
                resource:process(transliterator) {"si_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-si {
            alias {"si-fa"}
        }
        si-fa {
            file {
                resource:process(transliterator) {"si_fa.txt"}
                direction {"FORWARD"}
            }
        }

        si-fonipa-t-si {
            alias {"si-si_FONIPA"}
        }
        si-si_FONIPA {
            file {
                resource:process(transliterator) {"si_si_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        si-Latn-t-si {
            alias {"si-si_Latn"}
        }
        si-si_Latn {
            file {
                resource:process(transliterator) {"si_si_Latn.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-sk {
            alias {"sk-am"}
        }
        sk-am {
            file {
                resource:process(transliterator) {"sk_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-sk {
            alias {"sk-ar"}
        }
        sk-ar {
            file {
                resource:process(transliterator) {"sk_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-sk {
            alias {"sk-chr"}
        }
        sk-chr {
            file {
                resource:process(transliterator) {"sk_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-sk {
            alias {"sk-fa"}
        }
        sk-fa {
            file {
                resource:process(transliterator) {"sk_fa.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-sk {
            alias {"sk-ja"}
        }
        sk-ja {
            file {
                resource:process(transliterator) {"sk_ja.txt"}
                direction {"FORWARD"}
            }
        }

        sk-fonipa-t-sk {
            alias {"sk-sk_FONIPA"}
        }
        sk-sk_FONIPA {
            file {
                resource:process(transliterator) {"sk_sk_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        ja-t-sk-fonipa {
            alias {"sk_FONIPA-ja"}
        }
        sk_FONIPA-ja {
            file {
                resource:process(transliterator) {"sk_FONIPA_ja.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-tlh {
            alias {"tlh-am"}
        }
        tlh-am {
            file {
                resource:process(transliterator) {"tlh_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-tlh {
            alias {"tlh-ar"}
        }
        tlh-ar {
            file {
                resource:process(transliterator) {"tlh_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-tlh {
            alias {"tlh-chr"}
        }
        tlh-chr {
            file {
                resource:process(transliterator) {"tlh_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-tlh {
            alias {"tlh-fa"}
        }
        tlh-fa {
            file {
                resource:process(transliterator) {"tlh_fa.txt"}
                direction {"FORWARD"}
            }
        }

        tlh-fonipa-t-tlh {
            alias {"tlh-tlh_FONIPA"}
        }
        tlh-tlh_FONIPA {
            file {
                resource:process(transliterator) {"tlh_tlh_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        tr-t-d0-lower {
            alias {"tr-Lower"}
        }
        tr-Lower {
            file {
                resource:process(transliterator) {"tr_Lower.txt"}
                direction {"FORWARD"}
            }
        }

        tr-t-d0-title {
            alias {"tr-Title"}
        }
        tr-Title {
            file {
                resource:process(transliterator) {"tr_Title.txt"}
                direction {"FORWARD"}
            }
        }

        tr-t-d0-upper {
            alias {"tr-Upper"}
        }
        tr-Upper {
            file {
                resource:process(transliterator) {"tr_Upper.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-und-fonipa {
            alias {"und_FONIPA-ar"}
        }
        und_FONIPA-ar {
            file {
                resource:process(transliterator) {"und_FONIPA_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-und-fonipa {
            alias {"und_FONIPA-chr"}
        }
        und_FONIPA-chr {
            file {
                resource:process(transliterator) {"und_FONIPA_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-und-fonipa {
            alias {"und_FONIPA-fa"}
        }
        und_FONIPA-fa {
            file {
                resource:process(transliterator) {"und_FONIPA_fa.txt"}
                direction {"FORWARD"}
            }
        }

        uz-Latn-t-uz-cyrl {
            alias {"uz_Cyrl-uz_Latn"}
        }
        uz_Cyrl-uz_Latn {
            file {
                resource:process(transliterator) {"uz_Cyrl_uz_Latn.txt"}
                direction {"FORWARD"}
            }
        }
        uz-Cyrl-t-uz-latn {
            alias {"uz_Latn-uz_Cyrl"}
        }
        uz_Latn-uz_Cyrl {
            file {
                resource:process(transliterator) {"uz_Cyrl_uz_Latn.txt"}
                direction {"REVERSE"}
            }
        }

        am-t-xh {
            alias {"xh-am"}
        }
        xh-am {
            file {
                resource:process(transliterator) {"xh_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-xh {
            alias {"xh-ar"}
        }
        xh-ar {
            file {
                resource:process(transliterator) {"xh_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-xh {
            alias {"xh-chr"}
        }
        xh-chr {
            file {
                resource:process(transliterator) {"xh_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-xh {
            alias {"xh-fa"}
        }
        xh-fa {
            file {
                resource:process(transliterator) {"xh_fa.txt"}
                direction {"FORWARD"}
            }
        }

        xh-fonipa-t-xh {
            alias {"xh-xh_FONIPA"}
        }
        xh-xh_FONIPA {
            file {
                resource:process(transliterator) {"xh_xh_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

        yo-BJ-t-yo {
            alias {"yo-yo_BJ"}
        }
        yo-yo_BJ {
            file {
                resource:process(transliterator) {"yo_yo_BJ.txt"}
                direction {"FORWARD"}
            }
        }

        ru-t-zh-latn-pinyin {
            alias {"zh_Latn_PINYIN-ru"}
        }
        zh_Latn_PINYIN-ru {
            file {
                resource:process(transliterator) {"zh_Latn_PINYIN_ru.txt"}
                direction {"FORWARD"}
            }
        }

        am-t-zu {
            alias {"zu-am"}
        }
        zu-am {
            file {
                resource:process(transliterator) {"zu_am.txt"}
                direction {"FORWARD"}
            }
        }

        ar-t-zu {
            alias {"zu-ar"}
        }
        zu-ar {
            file {
                resource:process(transliterator) {"zu_ar.txt"}
                direction {"FORWARD"}
            }
        }

        chr-t-zu {
            alias {"zu-chr"}
        }
        zu-chr {
            file {
                resource:process(transliterator) {"zu_chr.txt"}
                direction {"FORWARD"}
            }
        }

        fa-t-zu {
            alias {"zu-fa"}
        }
        zu-fa {
            file {
                resource:process(transliterator) {"zu_fa.txt"}
                direction {"FORWARD"}
            }
        }

        zu-fonipa-t-zu {
            alias {"zu-zu_FONIPA"}
        }
        zu-zu_FONIPA {
            file {
                resource:process(transliterator) {"zu_zu_FONIPA.txt"}
                direction {"FORWARD"}
            }
        }

    }
    TransliteratorNamePattern {
        // Format for the display name of a Transliterator.
        // This is the language-neutral form of this resource.
        "{0,choice,0#|1#{1}|2#{1}-{2}}" // Display name
    }
    // Transliterator display names
    // This is the English form of this resource.
    "%Translit%Hex"         { "%Translit%Hex" }
    "%Translit%UnicodeName" { "%Translit%UnicodeName" }
    "%Translit%UnicodeChar" { "%Translit%UnicodeChar" }
    TransliterateLATIN{        
    "",
    ""
    }
}
