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

el {
    Version { "1.0.1" }
    AmPmMarkers { 
            "\u03C0\u03BC",
            "\u03BC\u03BC",
    }
    CollationElements { 
	    Version { "2.0" }
		Override { "FALSE" }
		Normalize { "TRUE" }
		Sequence { "[normalization on]" }
	}
    Countries { 
        GR { "\u0395\u03BB\u03BB\u03AC\u03B4\u03B1" }
    }
    DateTimeElements { 
            "2",
            "1",
    }
    DateTimePatterns { 
            "h:mm:ss a z",
            "h:mm:ss a z",
            "h:mm:ss a",
            "h:mm a",
            "EEEE, d MMMM yyyy",
            "d MMMM yyyy",
            "d MMM yyyy",
            "d/M/yyyy",
            "{1} {0}",
    }
    DayAbbreviations { 
            "\u039A\u03C5\u03C1",
            "\u0394\u03B5\u03C5",
            "\u03A4\u03C1\u03B9",
            "\u03A4\u03B5\u03C4",
            "\u03A0\u03B5\u03BC",
            "\u03A0\u03B1\u03C1",
            "\u03A3\u03B1\u03B2",
    }
    DayNames { 
            "\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE",
            "\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1",
            "\u03A4\u03C1\u03AF\u03C4\u03B7",
            "\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7",
            "\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7",
            "\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE",
            "\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF",
    }
    Languages { 
        el { "\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC" }
    }
    LocaleID { "08" }
    LocaleString { "el" }
    MonthAbbreviations { 
            "\u0399\u03B1\u03BD",
            "\u03A6\u03B5\u03B2",
            "\u039C\u03B1\u03C1",
            "\u0391\u03C0\u03C1",
            "\u039C\u03B1\u03CA",
            "\u0399\u03BF\u03C5\u03BD",
            "\u0399\u03BF\u03C5\u03BB",
            "\u0391\u03C5\u03B3",
            "\u03A3\u03B5\u03C0",
            "\u039F\u03BA\u03C4",
            "\u039D\u03BF\u03B5",
            "\u0394\u03B5\u03BA",
            "",
    }
    MonthNames { 
            "\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2",
            "\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2",
            "\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2",
            "\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2",
            "\u039C\u03AC\u03CA\u03BF\u03C2",
            "\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2",
            "\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2",
            "\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2",
            "\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",
            "\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2",
            "\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",
            "\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    ShortLanguage { "ell" }
    localPatternChars { "GanjkHmsSEDFwWxhKzAe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
    LocaleScript:array { 
        "Grek"  // ISO 15924 Name 
    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

/*
 * omit rules for Greek until we have complete and valid data.

//         * Spellout rules for Greek.  Again in Greek we have to supply the words
//         * for the multiples of 100 because they can't be derived algorithmically.
//         * Also, the tens digit changes form when followed by a ones digit: an
//         * accent mark disappears from the tens digit and moves to the ones digit.
//         * Therefore, instead of using the [] notation, we actually have to use
//         * two separate rules for each multiple of 10 to show the two forms of
//         * the word.

        // Can someone supply me with information on negatives and decimals?
        // I'm also missing the word for zero.  Can someone clue me in?

    SpelloutRules {
            "zero (incomplete data); \u03ad\u03bd\u03b1; \u03b4\u03cd\u03bf; \u03b4\u03c1\u03af\u03b1; "
            "\u03c4\u03ad\u03c3\u03c3\u03b5\u03c1\u03b1; \u03c0\u03ad\u03bd\u03c4\u03b5; "
            "\u03ad\u03be\u03b9; \u03b5\u03c0\u03c4\u03ac; \u03bf\u03ba\u03c4\u03ce; "
            "\u03b5\u03bd\u03bd\u03ad\u03b1;\n"
            "10: \u03b4\u03ad\u03ba\u03b1; "
            "\u03ad\u03bd\u03b4\u03b5\u03ba\u03b1; \u03b4\u03ce\u03b4\u03b5\u03ba\u03b1; "
            "\u03b4\u03b5\u03ba\u03b1>>;\n"
            "20: \u03b5\u03af\u03ba\u03bf\u03c3\u03b9; \u03b5\u03b9\u03ba\u03bf\u03c3\u03b9>>;\n"
            "30: \u03c4\u03c1\u03b9\u03ac\u03bd\u03c4\u03b1; \u03c4\u03c1\u03b9\u03b1\u03bd\u03c4\u03b1>>;\n"
            "40: \u03c3\u03b1\u03c1\u03ac\u03bd\u03c4\u03b1; \u03c3\u03b1\u03c1\u03b1\u03bd\u03c4\u03b1>>;\n"
            "50: \u03c0\u03b5\u03bd\u03ae\u03bd\u03c4\u03b1; \u03c0\u03b5\u03bd\u03b7\u03bd\u03c4\u03b1>>;\n"
            "60: \u03b5\u03be\u03ae\u03bd\u03c4\u03b1; \u03b5\u03be\u03b7\u03bd\u03c4\u03b1>>;\n"
            "70: \u03b5\u03b2\u03b4\u03bf\u03bc\u03ae\u03bd\u03c4\u03b1; "
            "\u03b5\u03b2\u03b4\u03bf\u03bc\u03b7\u03bd\u03c4\u03b1>>;\n"
            "80: \u03bf\u03b3\u03b4\u03cc\u03bd\u03c4\u03b1; \u03bf\u03b3\u03b4\u03bf\u03bd\u03c4\u03b1>>;\n"
            "90: \u03b5\u03bd\u03bd\u03b5\u03bd\u03ae\u03bd\u03c4\u03b1; "
            "\u03b5\u03bd\u03bd\u03b5\u03bd\u03b7\u03bd\u03c4\u03b1>>;\n"
            "100: \u03b5\u03ba\u03b1\u03c4\u03cc[\u03bd >>];\n"
            "200: \u03b4\u03b9\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "300: \u03c4\u03c1\u03b9\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "400: \u03c4\u03b5\u03c4\u03c1\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "500: \u03c0\u03b5\u03bd\u03c4\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "600: \u03b5\u03be\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "700: \u03b5\u03c0\u03c4\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "800: \u03bf\u03ba\u03c4\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "900: \u03b5\u03bd\u03bd\u03b9\u03b1\u03ba\u03cc\u03c3\u03b9\u03b1[ >>];\n"
            "1000: \u03c7\u03af\u03bb\u03b9\u03b1[ >>];\n"
            "2000: << \u03c7\u03af\u03bb\u03b9\u03b1[ >>];\n"
            "1,000,000: << \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03b9\u03cc\u03c1\u03b9\u03bf[ >>];\n"
            "1,000,000,000: << \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03b9\u03cc\u03c1\u03b9\u03bf[ >>];\n"
            "1,000,000,000,000: =#,##0="
     }           
*/

    TransliterateLATIN {
        "UNGEGN",

        // Rules are predicated on running NFD first, and NFC afterwards
        // MINIMAL FILTER GENERATED FOR: Greek-Latin/UNGEGN
        // WARNING: need to add accents to both filters ###
        ":: [\u0301\u0304\u0306\u0308;\u00B5\u00B7\u00C0\u00C2\u00C8\u00CA\u00CC\u00CE\u00D2\u00D4\u00D9\u00DB\u00E0\u00E2\u00E8\u00EA\u00EC\u00EE\u00F2\u00F4\u00F9\u00FB\u0108-\u0109\u011C-\u011D\u0124-\u0125\u0134-\u0135\u015C-\u015D\u0174-\u0177\u01DB-\u01DC\u01F8-\u01F9\u0300\u0302\u0313-\u0314\u0340\u0342-\u0343\u0345\u037A\u037E\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03F0-\u03F5\u0400\u040D\u0450\u045D\u1E14-\u1E15\u1E50-\u1E51\u1E80-\u1E81\u1E90-\u1E91\u1EA4-\u1EAD\u1EB0-\u1EB1\u1EBE-\u1EC7\u1ED0-\u1ED9\u1EDC-\u1EDD\u1EEA-\u1EEB\u1EF2-\u1EF3\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC1-\u1FC4\u1FC6-\u1FCD\u1FCF-\u1FD3\u1FD6-\u1FDB\u1FDD\u1FDF-\u1FED\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126] ;"

        // ":: [\\u0000-\\u007F \\u00B7 [:Greek:] [:nonspacing mark:]] ;"
        "::NFD (NFC) ; "

        // For modern Greek.

        // Useful variables

        "$lower = [[:latin:][:greek:] & [:Ll:]] ; "
        "$upper = [[:latin:][:greek:] & [:Lu:]] ; "
        "$accent = [:M:] ; "

        "$macron = \u0304 ;"
        "$ddot = \u0308 ;"

        "$lcgvowel = [\u03b1\u03b5\u03b7\u03b9\u03bf\u03c5\u03c9] ; "
        "$ucgvowel = [\u0391\u0395\u0397\u0399\u039f\u03a5\u03a9] ; "
        "$gvowel = [$lcgvowel $ucgvowel] ; "
        "$lcgvowelC = [$lcgvowel $accent] ; "

        "$evowel = [aeiouyAEIOUY];"
        "$vowel = [ $evowel $gvowel] ; "

        "$beforeLower = $accent * $lower ; "

        "$gammaLike = [\u0393\u039a\u039e\u03a7\u03b3\u03ba\u03be\u03c7\u03f0] ; "
        "$egammaLike = [GKXCgkxc] ; "
        "$smooth = \u0313 ; "
        "$rough = \u0314 ; "
        "$iotasub = \u0345 ; "

        "$softener = [\u03b2\u0392\u03b3\u0393\u03b4\u0394\u03b6\u0396\u03bb\u039b\u03bc\u039c\u03bd\u039d\u03c1\u03a1$gvowel] ;"

        "$under = \u0331;"

        "$caron = \u030C;"

        "$afterLetter = [:L:] [\\'[:M:]]* ;"
        "$beforeLetter = [\\'[:M:]]* [:L:] ;"


        // Fix punctuation

        "\\; <> \\? ;"
        "\u00b7 <> \\: ;"

        // Fix any ancient characters that creep in

        "\u0342 > \u0301 ;"
        "\u0302 > \u0301 ;"
        "\u0300 > \u0301 ;"
        "$smooth > ;"
        "$rough > ;"
        "$iotasub > ;"
        "\u037A > ;"

        // need to have these up here so the rules don't mask

        "\u03b7 <> i $under ;"
        "\u0397 <> I $under ;"

        "\u03a8 } $beforeLower <> Ps ; "
        "\u03a8 <> PS ; "
        "\u03c8 <> ps ; "

        "\u03c9 <> o $under ;"
        "\u03a9 <>  O $under;"

        // at begining or end of word, convert mp to b

        "[^[:L:][:M:]] { \u03bc\u03c0 > b ; "
        "\u03bc\u03c0 } [^[:L:][:M:]] > b ; "
        "[^[:L:][:M:]] { [\u039c\u03bc][\u03a0\u03c0] > B ; "
        "[\u039c\u03bc][\u03a0\u03c0] } [^[:L:][:M:]] > B ;"

        "\u03bc\u03c0 < b ; "
        "\u039c\u03c0 < B } $beforeLower ; "
        "\u039c\u03a0 < B ; "

        // handle diphthongs ending with upsilon

        "$vowel { \u03c5 } $softener <> v $under ; "
        "$vowel { \u03c5 } <> f $under; "
        "\u03c5 <> y ; "
        "$vowel { \u03a5 } $softener <> V $under ; "
        "$vowel { \u03a5 <> U $under ; "
        "\u03a5 <> Y ; "

        // NORMAL

        "\u03b1 <> a ; "
        "\u0391 <> A ; "

        "\u03b2 <> v ; "
        "\u0392 <> V ; "

        "\u03b3 } $gammaLike <> n } $egammaLike ; "
        "\u03b3 <> g ; "
        "\u0393 } $gammaLike <> N } $egammaLike ; "
        "\u0393 <> G ; "

        "\u03b4 <> d ; "
        "\u0394 <> D ; "

        "\u03b5 <> e ; "
        "\u0395 <> E ; "

        "\u03b6 <> z ; "
        "\u0396 <> Z ; "

        "\u03b8 <> th ; "
        "\u0398 } $beforeLower <> Th ; "
        "\u0398 <> TH ; "

        "\u03b9 <> i ; "
        "\u0399 <> I ; "

        "\u03ba <> k ;"
        "\u039a <> K ; "

        "\u03bb <> l ; "
        "\u039b <> L ; "

        "\u03bc <> m ; "
        "\u039c <> M ; "

        "\u03bd } $gammaLike > n\\' ; "
        "\u03bd <> n ; "
        "\u039d } $gammaLike <> N\\' ; "
        "\u039d <> N ; "

        "\u03be <> x ; "
        "\u039e <> X ; "

        "\u03bf <> o ; "
        "\u039f <> O ; "

        "\u03c0 <> p ; "
        "\u03a0 <> P ; "

        "\u03c1 <> r ; "
        "\u03a1 <> R ; "

        "[Pp] { } \u03c2 > \\' ; "
        "[Pp] { } \u03c3 > \\' ;"

        // Caron means exception

        // before a letter, initial
        "\u03c2 } $beforeLetter <> s $under } $beforeLetter;"
        "\u03c3 } $beforeLetter <> s } $beforeLetter;"

        // otherwise, after a letter = final
        "$afterLetter { \u03c3 <> $afterLetter { s $under;"
        "$afterLetter { \u03c2 <> $afterLetter { s ;"

        // otherwise (isolated) = initial
        "\u03c2 <> s $under;"
        "\u03c3 <> s ;"

        "[Pp] { \u03a3 <> \\'S ; "
        "\u03a3 <> S ; "

        "\u03c4 <> t ; "
        "\u03a4 <> T ; "

        "\u03c6 <> f ; "
        "\u03a6 <> F ;"

        "\u03c7 <> ch ; "
        "\u03a7 } $beforeLower <> Ch ; "
        "\u03a7 <> CH ; "

        // Completeness for ASCII

        // "$ignore = [[:Mark:]''] * ;"

        "| ch < h ;"
        "| k  < c ;"
        "| i  < j ;"
        "| k < q ;"
        "| b < u } $vowel ;"
        "| b < w } $vowel ;"
        "| y < u ;"
        "| y < w ;"

        "| Ch < H ;"
        "| K < C ;"
        "| I < J ;"
        "| K < Q ;"
        "| B < W } $vowel ;"
        "| B < U } $vowel ;"
        "| Y < W ;"
        "| Y < U ;"

        // Completeness for Greek

        "\u03d0 > | \u03b2 ;"
        "\u03d1 > | \u03b8 ;"
        "\u03d2 > | \u03a5 ;"
        "\u03d5 > | \u03c6 ;"
        "\u03d6 > | \u03c0 ;"

        "\u03f0 > | \u03ba ;"
        "\u03f1 > | \u03c1 ;"
        "\u03f2 > | \u03c3 ;"
        "\u03f3 > j ;"
        "\u03f4 > | \u0398 ;"
        "\u03f5 > | \u03b5 ;"
        "\u00B5 > | \u03BC ; "

        // delete any trailing ' marks used for roundtripping

        " < [\u03a0\u03c0] { \\' } [Ss] ;"
        " < [\u039d\u03bd] { \\' } $egammaLike ;"

        "::NFC (NFD) ; "

        // MINIMAL FILTER GENERATED FOR: Latin-Greek/UNGEGN BACKWARD
        ":: ( [\u0301\u0304\u0306\u0308':?A-Za-z\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E1\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u01FB\u0200-\u021B\u021E-\u021F\u0226-\u0233\u0331\u1E00-\u1E99\u1EA0-\u1EF9\u212A-\u212B] ) ;"

        // ":: ([\\u0000-\\u007F [:Latin:] [:nonspacing mark:]]) ;"

     }
}
