﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/mas.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/mas.xml
 */
mas{
    AuxExemplarCharacters{"[f q v x z]"}
    ExemplarCharacters{
        "[a á à â ā b c d e é è ê ē ɛ g h i í ì î ī ɨ j k l m n {ny} ŋ o ó ò ô ō ɔ p "
        "r {rr} s {sh} t u ú ù û ū ʉ {ʉ\u0301} w {wu} y {yi}]"
    }
    ExemplarCharactersIndex{"[A B C D E Ɛ G H I Ɨ J K L M N Ŋ O Ɔ P R S T U Ʉ W Y]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}
                currencyFormat{"¤#,##0.00"}
            }
        }
    }
    Version{"2.1.7.39"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "Ɛnkakɛnyá",
                "Ɛndámâ",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Jpi",
                        "Jtt",
                        "Jnn",
                        "Jtn",
                        "Alh",
                        "Iju",
                        "Jmo",
                    }
                    wide{
                        "Jumapílí",
                        "Jumatátu",
                        "Jumane",
                        "Jumatánɔ",
                        "Alaámisi",
                        "Jumáa",
                        "Jumamósi",
                    }
                }
                stand-alone{
                    narrow{
                        "2",
                        "3",
                        "4",
                        "5",
                        "6",
                        "7",
                        "1",
                    }
                }
            }
            eras{
                abbreviated{
                    "MY",
                    "EY",
                }
                wide{
                    "Meínō Yɛ́sʉ",
                    "Eínō Yɛ́sʉ",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Dal",
                        "Ará",
                        "Ɔɛn",
                        "Doy",
                        "Lép",
                        "Rok",
                        "Sás",
                        "Bɔ́r",
                        "Kús",
                        "Gís",
                        "Shʉ́",
                        "Ntʉ́",
                    }
                    wide{
                        "Oladalʉ́",
                        "Arát",
                        "Ɔɛnɨ́ɔɨŋɔk",
                        "Olodoyíóríê inkókúâ",
                        "Oloilépūnyīē inkókúâ",
                        "Kújúɔrɔk",
                        "Mórusásin",
                        "Ɔlɔ́ɨ́bɔ́rárɛ",
                        "Kúshîn",
                        "Olgísan",
                        "Pʉshʉ́ka",
                        "Ntʉ́ŋʉ́s",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "E1",
                        "E2",
                        "E3",
                        "E4",
                    }
                    wide{
                        "Erobo 1",
                        "Erobo 2",
                        "Erobo 3",
                        "Erobo 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Ɛnkɔlɔ́ŋ"}
            relative{
                "-1"{"Ŋolé"}
                "0"{"Táatá"}
                "1"{"Tááisérè"}
            }
        }
        dayperiod{
            dn{"Ɛnkakɛnyá/Ɛndámâ"}
        }
        era{
            dn{"Ɛnkátá"}
        }
        hour{
            dn{"Ɛ́sáâ"}
        }
        minute{
            dn{"Oldákikaè"}
        }
        month{
            dn{"Ɔlápà"}
        }
        second{
            dn{"Sekunde"}
        }
        week{
            dn{"Ewíkî"}
        }
        weekday{
            dn{"Ɛnkɔ́lɔŋ ewíkî"}
        }
        year{
            dn{"Ɔlárì"}
        }
        zone{
            dn{"Ɛ́sáâ o inkuapí"}
        }
    }
    measurementSystemNames{
        metric{"Metric"}
    }
}
