// ****************************************************************************
// *                                                                          *
// * COPYRIGHT:                                                               *
// * (C) Copyright Taligent, Inc.,  1997                                      *
// * (C) Copyright International Business Machines Corporation,  1997-99      *
// * Licensed Material - Program-Property of IBM - All Rights Reserved.       *
// * US Government Users Restricted Rights - Use, duplication, or disclosure  *
// * restricted by GSA ADP Schedule Contract with IBM Corp.                   *
// *                                                                          *
// ****************************************************************************

lt {
    CollationElements { "@& C < c\u030C , C\u030C & I ; y = \u0131 , Y = \u0130 "
        "& S < s\u030C , S\u030C & X < y\u0301, Y\u0301 < y\u0302 , Y\u0302 < y\u0308, Y"
        "\u0308 & Z < z\u030C , Z\u030C " }
    Countries { 
        LT { "Lietuva" }
    }
    DateTimePatterns { 
            "HH.mm.ss z",
            "HH.mm.ss z",
            "HH.mm.ss",
            "HH.mm",
            "EEEE, yyyy, MMMM d",
            "EEEE, yyyy, MMMM d",
            "yyyy.M.d",
            "yy.M.d",
            "{1} {0}",
    }
    DayAbbreviations { 
            "Sk",
            "Pr",
            "An",
            "Tr",
            "Kt",
            "Pn",
            "\u0160t",
    }
    DayNames { 
            "Sekmadienis",
            "Pirmadienis",
            "Antradienis",
            "Tre\u010Diadienis",
            "Ketvirtadienis",
            "Penktadienis",
            "\u0160e\u0161tadienis",
    }
    Eras { 
            "pr.Kr.",
            "po.Kr.",
    }
    Languages { 
        lt { "Lietuvi\u0159" }
    }
    LocaleID { "0427" }
    LocaleString { "lt" }
    MonthAbbreviations { 
            "Sau",
            "Vas",
            "Kov",
            "Bal",
            "Geg",
            "Bir",
            "Lie",
            "Rgp",
            "Rgs",
            "Spa",
            "Lap",
            "Grd",
            "",
    }
    MonthNames { 
            "Sausio",
            "Vasario",
            "Kovo",
            "Baland\u017Eio",
            "Gegu\u017E\u0117s",
            "Bir\u017Eelio",
            "Liepos",
            "Rugpj\u016B\u010Dio",
            "Rugs\u0117jo",
            "Spalio",
            "Lapkri\u010Dio",
            "Gruod\u017Eio",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "lit" }
    localPatternChars { "GanjkHmsSEDFwWxhKz" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
