﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
vai{
    AuxExemplarCharacters{"[ꘓ ꘔ ꘕ ꘖ ꘗ ꘘ ꘙ ꘚ ꘛ ꘜ ꘝ ꘞ ꘟ]"}
    ExemplarCharacters{
        "[ꔀ ꔁ ꔂ ꔃ ꔄ ꔅ ꔆ ꔇ ꔈ ꔉ ꔊ ꔋ ꔌ ꔍ ꔎ ꔏ ꔐ ꔑ ꔒ ꔓ ꔔ ꔕ ꔖ ꔗ ꔘ ꔙ ꔚ ꔛ ꔜ ꔝ ꔞ ꔟ ꔠ ꔡ ꔢ ꔣ ꔤ ꔥ"
        " ꔦ ꔧ ꔨ ꔩ ꔪ ꔫ ꔬ ꔭ ꔮ ꔯ ꔰ ꔱ ꔲ ꔳ ꔴ ꔵ ꔶ ꔷ ꔸ ꔹ ꔺ ꔻ ꔼ ꔽ ꔾ ꔿ ꕀ ꕁ ꕂ ꕃ ꕄ ꕅ ꕆ ꕇ ꕈ ꕉ ꕊ ꕋ"
        " ꕌ ꕍ ꕎ ꕏ ꕐ ꕑ ꕒ ꕓ ꕔ ꕕ ꕖ ꕗ ꕘ ꘐ ꕙ ꕚ ꕛ ꕜ ꕝ ꕞ ꕟ ꕠ ꕡ ꕢ ꕣ ꕤ ꕥ ꕦ ꕧ ꕨ ꕩ ꕪ ꘑ ꕫ ꕬ ꕭ ꕮ ꘪ"
        " ꕯ ꕰ ꕱ ꕲ ꕳ ꕴ ꕵ ꕶ ꕷ ꕸ ꕹ ꕺ ꕻ ꕼ ꕽ ꕾ ꕿ ꖀ ꖁ ꖂ ꖃ ꖄ ꖅ ꖆ ꖇ ꘒ ꖈ ꖉ ꖊ ꖋ ꖌ ꖍ ꖎ ꖏ ꖐ ꖑ ꖒ ꖓ"
        " ꖔ ꖕ ꖖ ꖗ ꖘ ꖙ ꖚ ꖛ ꖜ ꖝ ꖞ ꖟ ꖠ ꖡ ꖢ ꖣ ꖤ ꖥ ꖦ ꖧ ꖨ ꖩ ꖪ ꖫ ꖬ ꖭ ꖮ ꖯ ꖰ ꖱ ꖲ ꖳ ꖴ ꖵ ꖶ ꖷ ꖸ ꖹ"
        " ꖺ ꖻ ꖼ ꖽ ꖾ ꖿ ꗀ ꗁ ꗂ ꗃ ꗄ ꗅ ꗆ ꗇ ꗈ ꗉ ꗊ ꗋ ꗌ ꗍ ꗎ ꗏ ꗐ ꗑ ꘫ ꗒ ꗓ ꗔ ꗕ ꗖ ꗗ ꗘ ꗙ ꗚ ꗛ ꗜ ꗝ ꗞ"
        " ꗟ ꗠ ꗡ ꗢ ꗣ ꗤ ꗥ ꗦ ꗧ ꗨ ꗩ ꗪ ꗫ ꗬ ꗭ ꗮ ꗯ ꗰ ꗱ ꗲ ꗳ ꗴ ꗵ ꗶ ꗷ ꗸ ꗹ ꗺ ꗻ ꗼ ꗽ ꗾ ꗿ ꘀ ꘁ ꘂ ꘃ ꘄ"
        " ꘅ ꘆ ꘇ ꘈ ꘉ ꘊ ꘋ ꘌ]"
    }
    ExemplarCharactersNumbers{"[\\- ‑ , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}
    NumberElements{
        default{"latn"}
        latn{
            patterns{
                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}
                currencyFormat{"¤#,##0.00"}
                decimalFormat{"#,##0.###"}
            }
            symbols{
                decimal{"."}
                group{","}
            }
        }
        native{"vaii"}
    }
    Version{"38"}
    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{
            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{
                    wide{
                        "ꕞꕌꔵ",
                        "ꗳꗡꘉ",
                        "ꕚꕞꕚ",
                        "ꕉꕞꕒ",
                        "ꕉꔤꕆꕢ",
                        "ꕉꔤꕀꕮ",
                        "ꔻꔬꔳ",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ꖨꖕꔞ",
                        "ꕒꕡ",
                        "ꕾꖺ",
                        "ꖢꖕ",
                        "ꖑꕱ",
                        "ꖱꘋ",
                        "ꖱꕞ",
                        "ꗛꔕ",
                        "ꕢꕌ",
                        "ꕭꖃ",
                        "ꔞꘋ",
                        "ꖨꖕꗏ",
                    }
                    wide{
                        "ꖨꖕ ꕪꕴ ꔞꔀꕮꕊ",
                        "ꕒꕡꖝꖕ",
                        "ꕾꖺ",
                        "ꖢꖕ",
                        "ꖑꕱ",
                        "ꖱꘋ",
                        "ꖱꕞꔤ",
                        "ꗛꔕ",
                        "ꕢꕌ",
                        "ꕭꖃ",
                        "ꔞꘋꕔꕿ ꕸꖃꗏ",
                        "ꖨꖕ ꕪꕴ ꗏꖺꕮꕊ",
                    }
                }
                stand-alone{
                    abbreviated{
                        "ꖨꖕꔞ",
                        "ꕒꕡ",
                        "ꕾꖺ",
                        "ꖢꖕ",
                        "ꖑꕱ",
                        "ꖱꘋ",
                        "ꖱꕞ",
                        "ꗛꔕ",
                        "ꕢꕌ",
                        "ꕭꖃ",
                        "ꔞꘋ",
                        "ꖨꖕꗏ",
                    }
                    wide{
                        "ꖨꖕ ꕪꕴ ꔞꔀꕮꕊ",
                        "ꕒꕡꖝꖕ",
                        "ꕾꖺ",
                        "ꖢꖕ",
                        "ꖑꕱ",
                        "ꖱꘋ",
                        "ꖱꕞꔤ",
                        "ꗛꔕ",
                        "ꕢꕌ",
                        "ꕭꖃ",
                        "ꔞꘋꕔꕿ ꕸꖃꗏ",
                        "ꖨꖕ ꕪꕴ ꗏꖺꕮꕊ",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"ꔎꔒ"}
            relative{
                "-1"{"ꖴꖸ"}
                "0"{"ꗦꗷ"}
                "1"{"ꔻꕯ"}
            }
        }
        hour{
            dn{"ꕌꕎ"}
        }
        minute{
            dn{"ꕆꕇ"}
        }
        month{
            dn{"ꕪꖃ"}
        }
        second{
            dn{"ꕧꕃꕧꕪ"}
        }
        week{
            dn{"ꔨꔤꕃ"}
        }
        weekday{
            dn{"ꔨꕃꕮ ꔎꔒ"}
        }
        year{
            dn{"ꕢꘋ"}
        }
    }
}
