// *******************************************************************************
// *
// *   Copyright (C) 1997-2001, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

kw{
    Version { "x0.0" }
    DayAbbreviations { 
            "Sul",
            "Lun",
            "Mth",
            "Mhr",
            "Yow",
            "Gwe",
            "Sad",
    }
    DayNames { 
            "De Sul",
            "De Lun",
            "De Merth",
            "De Merher",
            "De Yow",
            "De Gwener",
            "De Sadorn",
    }
    MonthAbbreviations { 
            "Gen",
            "Whe",
            "Mer",
            "Ebr",
            "Me",
            "Evn",
            "Gor",
            "Est",
            "Gwn",
            "Hed",
            "Du",
            "Kev",
            "",
    }
    MonthNames { 
            "Mys Genver",
            "Mys Whevrel",
            "Mys Merth",
            "Mys Ebrel",
            "Mys Me",
            "Mys Evan",
            "Mys Gortheren",
            "Mye Est",
            "Mys Gwyngala",
            "Mys Hedra",
            "Mys Du",
            "Mys Kevardhu",
            "",
    }
    NumberElements { 
            ".",
            ",",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221e",
            "\ufffd",
    }

            // /**************** Info Below is needed ****************/
            // CollationElements{}
            // Countries{}
            // Eras{}
            // Languages{}
            // ShortLanguage { }
            // localPatternChars{}
            //
}
