"""
Embedded dictionaries for name generation.

Provides first names, last names, and middle names (patronymics)
for different languages and genders.
"""

from typing import List, Optional

# Dictionary cache
_dictionary_cache = {}


# ----------------------- RUSSIAN NAMES (RU) -----------------------

# Russian male first names
def get_ru_male_first_names() -> List[str]:
    """
    Returns Russian male first names.

    Returns
    -------
        List[str]: List of Russian male first names
    """
    if 'ru_m_first' not in _dictionary_cache:
        _dictionary_cache['ru_m_first'] = [
            "Аарон", "Абрам", "Аваз", "Августин", "Авраам", "Агап", "Агапит", "Агат", "Агафон", "Адам", "Адриан",
            "Азамат", "Азат", "Азиз", "Аид", "Айдар", "Айрат", "Акакий", "Аким", "Алан", "Александр", "Алексей", "Али",
            "Алик", "Алим", "Алихан", "Алишер", "Алмаз",
            "Альберт", "Амир", "Амирам", "Амиран", "Анар", "Анастасий", "Анатолий", "Анвар", "Ангел", "Андрей", "Анзор",
            "Антон", "Анфим", "Арам", "Аристарх", "Аркадий", "Арман", "Армен", "Арсен", "Арсений", "Арслан", "Артём",
            "Артемий", "Артур", "Архип", "Аскар", "Аслан", "Асхан", "Асхат", "Ахмет", "Ашот",
            "Бахрам", "Бенджамин", "Блез", "Богдан", "Борис", "Борислав", "Бронислав", "Булат", "Вадим", "Валентин",
            "Валерий", "Вальдемар", "Вардан", "Василий", "Вениамин", "Виктор", "Вильгельм", "Вит", "Виталий", "Влад",
            "Владимир", "Владислав", "Владлен", "Влас", "Всеволод", "Вячеслав", "Гавриил", "Гамлет", "Гарри",
            "Геннадий",
            "Генри", "Генрих", "Георгий", "Герасим", "Герман", "Германн", "Глеб", "Гор", "Гордей", "Григорий", "Густав",
            "Давид", "Давлат", "Даврон", "Дамир", "Даниил", "Данис", "Данислав", "Даниэль", "Данияр", "Дарий", "Даурен",
            "Даян", "Демид", "Демьян", "Денис", "Джамал",
            "Джан", "Джеймс", "Джереми", "Джозеф", "Джонатан", "Дик", "Дин", "Динар", "Дмитрий", "Добрыня", "Доминик",
            "Евгений", "Евдоким", "Евсей", "Евстахий", "Егор", "Елисей", "Емельян", "Ереме", "Ефим", "Ефрем", "Ждан",
            "Жерар", "Жигер", "Закир", "Заур", "Захар", "Зенон", "Зигмунд", "Зиновий", "Зураб", "Зуфар", "Ибрагим",
            "Иван", "Игнат", "Игнатий",
            "Игорь", "Иероним", "Джером", "Иисус", "Ильгиз", "Ильнур", "Ильшат", "Илья", "Ильяс", "Имран", "Иннокентий",
            "Ираклий", "Исаак", "Исаакий", "Исидор", "Искандер", "Ислам", "Исмаил", "Итан", "Казбек", "Камиль", "Карен",
            "Карим", "Карл", "Ким", "Кир", "Кирилл", "Клаус", "Клим", "Конрад", "Константин", "Коре", "Корнелий",
            "Кристиан", "Кристофер", "Кузьма",
            "Лаврентий", "Ладо", "Лев", "Леви", "Ленар", "Леон", "Леонард", "Леонид", "Леопольд", "Лиам", "Лоренс",
            "Лука", "Лукиллиан", "Лукьян", "Любомир", "Людвиг", "Людовик", "Люций", "Маджид", "Майкл", "Макар",
            "Макарий", "Максим", "Максимилиан", "Максуд", "Мансур", "Мар", "Марат", "Марк", "Марс", "Марсель", "Мартин",
            "Мартын",
            "Маршалл", "Матвей", "Махмуд", "Мика", "Микула", "Милан", "Милослав", "Мирон", "Мирослав", "Михаил",
            "Моисей", "Мстислав", "Мурат", "Муслим", "Мустафа", "Мухаммед", "Мэтью", "Назар", "Наиль", "Нариман",
            "Натан", "Нестор", "Ник", "Никита", "Никодим", "Никола", "Николай", "Нильс", "Ной", "Нурлан", "Огюст",
            "Олег", "Оливер", "Орест", "Орландо", "Осип", "Иосиф", "Оскар", "Осман", "Остап", "Остин", "Павел",
            "Панкрат", "Пантелеймон", "Патрик", "Педро", "Перри", "Пётр", "Платон", "Потап", "Прохор", "Равиль",
            "Радий", "Радик", "Радомир", "Радослав", "Разиль", "Раиль", "Раиф", "Райан", "Раймонд", "Рамазан", "Рамзес",
            "Рамиз", "Рамиль",
            "Рамон", "Ранель", "Расим", "Расул", "Ратибор", "Ратмир", "Раушан", "Рафаэль", "Рафик", "Рашид", "Ринат",
            "Ренат", "Ричард", "Роберт", "Родим", "Родион", "Рожден", "Ролан", "Роман", "Ростислав", "Рубен", "Рудольф",
            "Руслан", "Рустам", "Рэй", "Савва", "Савелий", "Саид", "Салават", "Самат", "Самвел", "Самир", "Самсон",
            "Самуил", "Санжар", "Сани", "Саян", "Святослав", "Севастьян", "Семён",
            "Серафим", "Сергей", "Сидор", "Симба", "Соломон", "Спартак", "Станислав", "Степан", "Сулейман", "Султан",
            "Сурен", "Тагир", "Таир", "Тайлер", "Талгат", "Тамаз", "Тамерлан", "Тарас", "Тахир", "Теодор", "Тигран",
            "Тимофей", "Тимур", "Тихон", "Томас", "Трофим", "Уинслоу", "Умар", "Устин", "Фазиль", "Фарид", "Фархад",
            "Фёдор", "Федот", "Феликс", "Филипп", "Флор", "Фома",
            "Франц", "Фред", "Фридрих", "Хабиб", "Хаким", "Халид", "Харитон", "Хасан", "Цезарь", "Цефас", "Цецилий",
            "Сесил", "Цицерон", "Чарльз", "Чеслав", "Чингиз", "Шамиль", "Шарль", "Шерлок", "Эдгар", "Эдуард", "Эльдар",
            "Эмиль", "Эмин", "Эрик", "Эркюль", "Эрмин", "Эрнест", "Эузебио", "Юлиан", "Юлий", "Юнус", "Юрий",
            "Юстиниан", "Юстус", "Яков", "Ян", "Яромир", "Ярослав"
        ]
    return _dictionary_cache['ru_m_first']


# Russian female first names
def get_ru_female_first_names() -> List[str]:
    """
    Returns Russian female first names.

    Returns
    -------
        List[str]: List of Russian female first names
    """
    if 'ru_f_first' not in _dictionary_cache:
        _dictionary_cache['ru_f_first'] = [
            "Ава", "Августа", "Августина", "Авдотья", "Аврора", "Агапия", "Агата", "Агафья", "Аглая", "Агния", "Агунда",
            "Ада", "Аделаида", "Аделина", "Адель", "Адиля", "Адриана", "Аза", "Азалия", "Азиза", "Аида", "Аиша", "Ай",
            "Айару", "Айгерим", "Айгуль", "Айза",
            "Айла", "Айлин", "Айнагуль", "Айнур", "Айсель", "Айсун", "Айсылу", "Аксинья", "Алана", "Алевтина",
            "Александра", "Алексия", "Алёна", "Алеста", "Алима", "Алина", "Алиса", "Алия", "Алла", "Алсу", "Алтын",
            "Альба", "Альбина", "Альфия", "Аля", "Амалия", "Амаль", "Амина",
            "Амира", "Анабель", "Анаит", "Анастасия", "Ангелина", "Анжела", "Анжелика", "Анисья", "Анита", "Анна",
            "Антонина", "Анфиса", "Аполлинария", "Арабелла", "Ариадна", "Ариана", "Арианда", "Арина", "Ария", "Асель",
            "Асия", "Астрид", "Ася", "Афина", "Аэлита", "Ая", "Аяна", "Бажена", "Беатрис", "Бела", "Белинда",
            "Белла", "Бэлла", "Берта", "Богдана", "Божена", "Бьянка", "Валентина", "Валерия", "Ванда", "Ванесса",
            "Варвара", "Василина", "Василиса", "Венера", "Вера", "Вероника", "Веста", "Вета", "Викторина", "Виктория",
            "Вилена", "Виола", "Виолетта", "Вита", "Виталина",
            "Влада", "Владана", "Владислава", "Габриэлла", "Галина", "Галия", "Гаяна", "Гаянэ", "Генриетта", "Глафира",
            "Гоар", "Грета", "Гульзира", "Гульмира", "Гульназ", "Гульнара", "Гульшат", "Гюзель", "Далида", "Дамира",
            "Дана", "Даниэла", "Дания", "Дара", "Дарина", "Дарья",
            "Даяна", "Джамиля", "Дженна", "Дженнифер", "Джессика", "Джиневра", "Диана", "Дильназ", "Дильнара", "Диля",
            "Дилярам", "Дина", "Динара", "Долорес", "Доминика", "Домна", "Домника", "Ева", "Евангелина", "Евгения",
            "Евдокия",
            "Екатерина", "Елена", "Елизавета", "Есения", "Ея", "Жаклин", "Жанна", "Жансая", "Жасмин", "Жозефина",
            "Жоржина", "Забава", "Заира", "Залина",
            "Замира", "Зара", "Зарема", "Зарина", "Земфира", "Зинаида", "Зита", "Злата", "Златослава", "Зоряна", "Зоя",
            "Зульфия", "Зухра", "Иветта", "Изабелла", "Илина", "Иллирика", "Илона", "Ильзира", "Илюза", "Инга",
            "Индира", "Инесса", "Инна", "Иоанна", "Ира", "Ирада",
            "Ираида", "Ирина", "Ирма", "Искра", "Ия", "Камила", "Камилла", "Кара", "Каре", "Карима", "Карина",
            "Каролина", "Кира", "Клавдия", "Клара", "Констанция", "Кора", "Корнелия", "Кристина", "Ксения", "Лада",
            "Лана", "Лара", "Лариса", "Лаура", "Лейла", "Леона", "Лера", "Леся",
            "Лета", "Лиана", "Лидия", "Лиза", "Лика", "Лили", "Лилиана", "Лилит", "Лилия", "Лина", "Линда", "Лиора",
            "Лира", "Лия", "Лола", "Лолита", "Лора", "Луиза", "Лукерья", "Лукия", "Луна", "Любава", "Любовь", "Людмила",
            "Люсиль", "Люсьена", "Люция", "Люче", "Ляйсан", "Ляля",
            "Мавиле", "Мавлюда", "Магда", "Магдалeна", "Мадина", "Мадлен", "Майя", "Макария", "Малика", "Мара",
            "Маргарита", "Марианна", "Марика", "Марина", "Мария", "Мариям", "Марта", "Марфа", "Мелания", "Мелисса",
            "Мехри", "Мика", "Мила", "Милада", "Милана",
            "Милена", "Милица", "Милослава", "Мина", "Мира", "Мирослава", "Мирра", "Михримах", "Мишель", "Мия", "Мияна",
            "Моника", "Муза", "Надежда", "Наиля", "Наима", "Нана",
            "Наоми", "Наргиза", "Наринэ", "Наталья", "Нелли", "Нея", "Ника", "Николь", "Нина", "Нинель", "Ноа",
            "Номина", "Нонна", "Нора", "Нурия", "Одетта", "Окли", "Оксана", "Октябрина", "Олеся", "Оливия", "Ольга",
            "Офелия",
            "Павлина", "Памела", "Патриция", "Паула", "Пейтон", "Пелагея", "Перизат", "Платонида", "Полина",
            "Прасковья", "Равшана", "Рада", "Разина", "Раиля", "Раиса", "Раифа", "Ралина", "Рамина", "Раяна", "Ребекка",
            "Регина", "Резеда", "Рена", "Рената", "Риана",
            "Рианна", "Рикарда", "Римма", "Рина", "Рита", "Роберта", "Рогнеда", "Роза", "Роксана", "Роксолана",
            "Рузалия", "Рузанна", "Русалина", "Руслана", "Руфина", "Руфь", "Сабина", "Сабрина", "Сажида", "Саида",
            "Салима", "Саломея", "Сальма", "Самира",
            "Сандра", "Сания", "Сара", "Сати", "Сауле", "Сафия", "Сафура", "Саяна", "Светлана", "Севара", "Селена",
            "Сельма", "Серафима", "Сильвия", "Симона", "Скарлетт", "Снежана", "Соня", "Софья", "Стелла", "Стефания",
            "Сусанна", "Таисия", "Тамара",
            "Тамила", "Тара", "Татьяна", "Тая", "Таяна", "Теона", "Тереза", "Тея", "Тина", "Тиффани", "Томирис", "Тора",
            "Тэмми", "Ульяна", "Ума", "Урсула", "Устинья", "Фазиля", "Фаина", "Фарида", "Фариза", "Фатима", "Федора",
            "Фёкла", "Фелисити",
            "Фелиция", "Феруза", "Физалия", "Фируза", "Флора", "Флорентина", "Флоренция", "Флоренс", "Флориана",
            "Франциска", "Фредерика", "Фрида", "Хадиджа", "Хадия", "Хилари", "Хлоя", "Хюррем", "Цагана", "Цветана",
            "Цецилия", "Сесилия", "Циара",
            "Челси", "Чеслава", "Чулпан", "Шакира", "Шарлотта", "Шахина", "Шейла", "Шелли", "Шерил", "Эвелина", "Эвита",
            "Элеонора", "Элиана", "Элиза", "Элина", "Элла", "Эльвина", "Эльвира", "Эльмира",
            "Эльнара", "Эля", "Эмили", "Эмилия", "Эмма", "Энже", "Эрика", "Эрмина", "Эсмеральда", "Эсмира", "Эстер",
            "Этель", "Этери", "Юлианна", "Юлия", "Юна", "Юния", "Юнона", "Ядвига", "Яна", "Янина", "Ярина", "Ярослава",
            "Ясмина"
        ]
    return _dictionary_cache['ru_f_first']


# Russian male last names
def get_ru_male_last_names() -> List[str]:
    """
    Returns Russian male last names.

    Returns
    -------
        List[str]: List of Russian male last names
    """
    if 'ru_m_last' not in _dictionary_cache:
        _dictionary_cache['ru_m_last'] = [
            "Абалаков", "Абрамов", "Авдеев", "Аверин", "Аврорин", "Агатов", "Агафонов", "Аграновский",
            "Агурский", "Адамов", "Адмиралов", "Адмиральский", "Александров", "Александровский", "Алексеев", "Алмазов"
            "Альбединский", "Альтов", "Альтовский", "Амурский", "Ангелов", "Ангельский", "Андреев", "Андрианов",
            "Анисимов", "Анненков", "Анненский", "Антонов", "Апостолов", "Апраскин", "Арбатов", "Аренский",
            "Арийский", "Аристов", "Аристократов", "Аркадьев", "Арсенин", "Арсеньев", "Арский", "Артёмов",
            "Архипов", "Астахов", "Астров", "Афанасьев", "Афинский", "Ахматов", "Бабочкин", "Багиров",
            "Баженов", "Бакурин", "Баринов", "Баронов", "Баронский", "Барский", "Барсов", "Бархатов",
            "Бахметев", "Бекетов", "Белгородский", "Беликов", "Белинский", "Белицкий", "Белов", "Белоградский",
            "Белозёров", "Белозерский", "Белокрылов", "Белоцерковский", "Белый", "Бельский", "Беляев", "Бердинский",
            "Березин", "Берёзкин", "Берестов", "Беркутов", "Бестужев", "Бисаров", "Благовещенский", "Благой",
            "Богатырёв", "Богданов", "Богдановский", "Боголюбов", "Богомолов", "Богославский", "Богословская", "Бойкий",
            "Болконский", "Большаков", "Борисов", "Борисоглебский", "Боровинский", "Боровский", "Братиславский", "Бриллиантов",
            "Буланов", "Булгаков", "Быстревский", "Вавилов", "Вавилонский", "Ваганков", "Валевский", "Варламов",
            "Варшавский", "Василевский", "Васильев", "Васильков", "Васильковский", "Васнецов", "Введенский", "Великолепный",
            "Великопольский", "Величанский", "Вельтистов", "Веневитинов", "Вербин", "Верейский", "Верещагин", "Варламов",
            "Верстовский", "Вертинский", "Вертоградов", "Вертоградский", "Верховский", "Вершинин", "Весенний", "Ветринский",
            "Ветров", "Ветроградов", "Византийский", "Виленский", "Виноградов", "Виноградский", "Вишневский", "Владимиров",
            "Владимирский", "Владов", "Воеводский", "Воздвиженский", "Вознесенский", "Волконский", "Волочков", "Волынский",
            "Вольский", "Воронов", "Воронцов", "Воскресенский", "Востоков", "Вревский", "Всеволожский", "Высоцкий",
            "Вьюгин", "Вяземский", "Гагарин", "Галактионов", "Гедианов", "Генералов", "Гиацинтов", "Гиляровский",
            "Глаголев", "Глинский", "Голицын", "Голованов", "Голубев", "Гончаров", "Городецкий", "Горячев",
            "Градов", "Градский", "Гранин", "Графский", "Грацианский", "Григорьев", "Громов", "Гронский",
            "Гурской", "Гусарский", "Данилевский", "Данилов", "Даров", "Даровский", "Дворский", "Дембовский",
            "Дементьев", "Демидов", "Дёмин", "Денисов", "Державин", "Дзержинский", "Дмитриев", "Дмитриевский",
            "Добровольский", "Добрынин", "Долин", "Долинин", "Дольский", "Доманский", "Домбровский", "Донской",
            "Доронин", "Дорофеев", "Драгунский", "Древесный", "Дружинин", "Друнин", "Дубов", "Дубравин",
            "Дубровин", "Дубровский", "Дубской", "Думов", "Думчев", "Духовский", "Ежевский", "Езерский",
            "Елагин", "Елизаров", "Елисеев", "Ельский", "Еремеев", "Ермолов", "Ерофеев", "Ершов",
            "Ефимов", "Жарковский", "Жаров", "Жданов", "Жемчугов", "Жемчужников", "Жеромский", "Жуковский",
            "Журавлёв", "Загорский", "Задонский", "Задорнов", "Задунайский", "Залесский", "Запольский", "Зарницкий",
            "Звездинский", "Звёздный", "Зеленов", "Земский", "Зефиров", "Златовласов", "Златовратский", "Златогорский",
            "Златопольский", "Златоумов", "Златоустовский", "Знаменский", "Золотарев", "Золотов", "Зорин", "Иванов",
            "Ивановский", "Ивашковский", "Ивлеев", "Иволгин", "Игнатов", "Игнатьев", "Ижорский", "Илларионов",
            "Ильинский", "Иртеньев", "Искрин", "Истомин", "Истратов", "Истров", "Каберский", "Кавецкий",
            "Кайгородцев", "Казанцев", "Казарницкий", "Казимиров", "Казначеев", "Калиновский", "Калинников", "Калифицкий",
            "Каменский", "Каминский", "Канаев", "Карамзин", "Кармадонов", "Карпинский", "Каховский", "Квилинский",
            "Квятковский", "Кедрин", "Кедров", "Кирсанов", "Ключевский", "Княжин", "Княжнин", "Князев",
            "Ковалевский", "Кожевников", "Колосов", "Колосовский", "Кольцов", "Комиссаров", "Кондратьев", "Коновалов",
            "Кононов", "Константинов", "Корнев", "Корнеев", "Королёв", "Корольков", "Костромской", "Котов",
            "Крапивин", "Красавин", "Красиков", "Красин", "Краснов", "Красногорский", "Краснопольский", "Красовский",
            "Кручинин", "Крылов", "Крымов", "Крымский", "Кудрявцев", "Куликовский", "Куприянов", "Купцов",
            "Кутузов", "Лавренев", "Лаврентьев", "Лавров", "Лавровский", "Ладомирский", "Лазарев", "Лазаричев",
            "Лактионов", "Ланской", "Лапин", "Ларин", "Ларский", "Ластовский", "Лебедев", "Лебединский",
            "Лёвин", "Левинский", "Левитанов", "Левитанский", "Левицкий", "Ленский", "Леонов", "Леонтьев",
            "Лермонтов", "Лесков", "Лионов", "Лисичкин", "Лисовский", "Литвинов", "Литовский", "Логинов",
            "Лозинский", "Лозовский", "Луговой", "Лучинский", "Львов", "Львовский", "Льдов", "Любимов",
            "Людмилов", "Магницкий", "Майоров", "Майский", "Макаров", "Маковецкий", "Максимельянов", "Максимов",
            "Максимовский", "Малевинский", "Малинин", "Малиновский", "Малышев", "Мамин", "Марин", "Маринин",
            "Марков", "Маслов", "Матвеев", "Медведев", "Мелентьев", "Мельников", "Менский", "Меньшиков",
            "Меньшов", "Мережковский", "Меркулов", "Метелин", "Метельский", "Мечников", "Мещерский", "Минаев",
            "Минин", "Миронов", "Мирский", "Митропольский", "Михайлов", "Михайловский", "Могучев", "Можайский",
            "Моисеев", "Морозов", "Москвин", "Москвитин", "Московский", "Мудрый", "Муромов", "Муромцев",
            "Наварский", "Нагорный", "Назаров", "Нарицын", "Нарциссов", "Наумов", "Невельский", "Невинский",
            "Нежинский", "Некрасов", "Немиров", "Немировский", "Несветаев", "Нестеров", "Никитин", "Никифоров",
            "Николаев", "Никольский", "Нильский", "Новгородский", "Новиков", "Новицкий", "Новодворский", "Новошинский",
            "Обломов", "Облонский", "Оболенский", "Образцов", "Огинский", "Огнев", "Огнецветов", "Одоевский",
            "Ожегов", "Ожигов", "Ожгибесов", "Озеров", "Олейников", "Оленин", "Оранский", "Орлов",
            "Орловский", "Орфеев", "Осинский", "Островский", "Острогорский", "Остроградский", "Остроумов", "Павлов",
            "Павловский", "Панин", "Панов", "Пантелеев", "Пантеров", "Парижский", "Парнасский", "Паустовский",
            "Пахмутов", "Пашков", "Первомайский", "Перов", "Перовский", "Персидский", "Петров", "Петровский",
            "Печёрин", "Печёрский", "Пешков", "Платонов", "Побединский", "Погодин", "Поднебесный", "Подольский",
            "Пожарский", "Покровский", "Поленов", "Полковников", "Полонский", "Поляков", "Полянский", "Потапов",
            "Преображенский", "Пришвин", "Прокофьев", "Пушкин", "Радов", "Райский", "Рассказов", "Ратманов",
            "Рахманов", "Редкий", "Решетов", "Ржевский", "Рижский", "Римский", "Ровинский", "Родин",
            "Родионов", "Родочинский", "Рождественский", "Розанов", "Розин", "Розов", "Розовский", "Романенков",
            "Романов", "Романовский", "Ростов", "Рубенцов", "Рублёв", "Рудаков", "Румянцев", "Русанов",
            "Рябинин", "Саблин", "Савельев", "Савицкий", "Савранский", "Садовский", "Салтевский", "Самойлов",
            "Сапфиров", "Сафаров", "Сафронов", "Сахаров", "Светлов", "Свиридов", "Северов", "Северский",
            "Северянин", "Селиверстов", "Сербский", "Сергеев", "Серебренников", "Серебрин", "Серебров", "Серебряков",
            "Серебрянский", "Сердечников", "Сибирский", "Симонов", "Скворцов", "Славин", "Славинский", "Славянский",
            "Сладкий", "Смелый", "Смирнов", "Смирновский", "Смоленский", "Смолин", "Снегирёв", "Снежинский",
            "Снежный", "Соболев", "Соболевский", "Соколов", "Соколовский", "Соллертинский", "Солнцев", "Соловьёв",
            "Соломонов", "Солярский", "Сотников", "Софийский", "Сочинский", "Спасский", "Сперанский", "Сретенский",
            "Станиславский", "Столин", "Стрелецкий", "Стрельцов", "Субботин", "Суворов", "Суздальский", "Счастливый",
            "Таврический", "Талисманов", "Тарасов", "Тарасов", "Тарханов", "Терехов", "Тимофеев", "Титов",
            "Тихомиров", "Тихонов", "Толмачёв", "Толстой", "Травников", "Третьяков", "Трифонов", "Троицкий",
            "Тропинин", "Трофимов", "Троянский", "Трубецкой", "Туманов", "Турбин", "Уваров", "Удалов",
            "Удальцов", "Уланов", "Ульянов", "Уманский", "Урбанский", "Уфимцев", "Ушанский", "Фаворский",
            "Фёдоров", "Федосеев", "Федотов", "Феофилактов", "Фиалкин", "Филатов", "Фирсов", "Флоренский",
            "Флорентийский", "Флоринский", "Фонвизин", "Форсов", "Францев", "Фурманов", "Хапёрский", "Харитонов",
            "Хмелевский", "Хмельницкий", "Хованский", "Холмогоров", "Холмский", "Холодный", "Хомский", "Царёв",
            "Царевский", "Царский", "Цветинский", "Цветков", "Цветковский", "Цветов", "Цезарев", "Целиковский",
            "Цесарский", "Цусимский", "Чагин", "Чайкин", "Чайковский", "Чарский", "Чацкий", "Черёмушкин",
            "Черкасов", "Черкасский", "Чернышевский", "Чернышов", "Чесменский", "Чехов", "Чижевский", "Чижов",
            "Чудов", "Шадрин", "Шанский", "Шаповалов", "Шаров", "Шатров", "Шахов", "Шаховский",
            "Шведов", "Шеметов", "Шереметев", "Шереметьев", "Шестаков", "Шестинский", "Шестов", "Шолохов",
            "Шмелёв", "Шпажинский", "Шубин", "Шуйский", "Шумов", "Шустов", "Шустров", "Эвентов",
            "Эверстов", "Эдемов", "Эдемский", "Эдлин", "Эзерский", "Элинский", "Эллинский", "Эльбрусский",
            "Эмин", "Эмиров", "Эриванский", "Эсаулов", "Эстрин", "Эфендиев", "Южанинов", "Южин",
            "Юланов", "Юлианов", "Юлианский", "Юматов", "Юмин", "Юпитеров", "Юрасов", "Юринский",
            "Юрковский", "Юрский", "Юрьев", "Юрьевский", "Юсов", "Юстицкий", "Яблоков", "Яблонский",
            "Явленский", "Яволовский", "Яворский", "Ягужинский", "Ягофаров", "Язовский", "Ядрышников", "Ялинский",
            "Ямпольский", "Янин", "Яновский", "Янчевский", "Янушевский", "Ярков", "Ярковский", "Яров",
            "Яропольский", "Ярошевский", "Яруллов", "Ярченков", "Ярцев", "Ясенев", "Ясенский", "Ясинский",
            "Ястребинский", "Ястремский", "Ятковский", "Яфаров", "Яхонтов"
        ]
    return _dictionary_cache['ru_m_last']


# Russian female last names
def get_ru_female_last_names() -> List[str]:
    """
    Returns Russian female last names.

    Returns
    -------
        List[str]: List of Russian female last names
    """
    if 'ru_f_last' not in _dictionary_cache:
        _dictionary_cache['ru_f_last'] = [
            "Абалакова", "Абрамова", "Авдеева", "Аверина", "Аврорина", "Агатова", "Агафонова", "Аграновская",
            "Агурская", "Адамов", "Адмиралова", "Адмиральская", "Александрова", "Александровская", "Алексеева", "Алмазова",
            "Альбединская", "Альтова", "Альтовская", "Амурская", "Ангелова", "Ангельская", "Андреева", "Андриянова",
            "Анисимова", "Анненкова", "Анненская", "Антонова", "Апостолова", "Апраксина", "Арбатова", "Аренская",
            "Арийская", "Аристова", "Аристократова", "Аркадьева", "Арсенина", "Арсеньева", "Арская", "Артёмова"
            "Архипова", "Астахова", "Астрова", "Афанасьева", "Афинская", "Ахматова", "Бабочкина", "Багирова"
            "Баженова", "Бакурина", "Баринова", "Баронова", "Баронская", "Барская", "Барсова", "Бархатова","Бахметева",
            "Бекетова", "Белгородская", "Беликова", "Белинская", "Белицкая", "Белова", "Белоградская",
            "Белозёрова", "Белозёрская", "Белокрылова", "Белоцерковская", "Белая", "Бельская", "Беляева", "Бердинская",
            "Березина", "Берёзкина", "Берестова", "Беркутова", "Бестужева", "Бисарова", "Благовещенская", "Благая",
            "Богатырёва", "Богданова", "Богдановская", "Боголюбова", "Богомолова", "Богославская", "Богословский", "Бойкая",
            "Болконская", "Большакова", "Борисова", "Борисоглебская", "Боровинская", "Боровская", "Братиславская", "Бриллиантова",
            "Буланова", "Булгакова", "Быстревская", "Вавилова", "Вавилонская", "Ваганкова", "Валевская", "Варламова",
            "Варшавская", "Василевская", "Васильева", "Василькова", "Васильковская", "Васнецова", "Введенская", "Великолепная",
            "Великопольская", "Величанская", "Вельтистова", "Веневитинова", "Вербина", "Верейская", "Верещагина", "Варламова",
            "Верстовская", "Вертинская", "Вертоградова", "Вертоградская", "Верховская", "Вершинина", "Весенняя", "Ветринская",
            "Ветрова", "Ветроградова", "Византийская", "Виленская", "Виноградова", "Виноградская", "Вишневская", "Владимирова",
            "Владимирская", "Владова", "Воеводская", "Воздвиженская", "Вознесенская", "Волконская", "Волочкова", "Волынская",
            "Вольская", "Воронова", "Воронцова", "Воскресенская", "Востокова", "Вревская", "Всеволожская", "Высоцкая",
            "Вьюгина", "Вяземская", "Гагарина", "Галактионова", "Гедианова", "Генералова", "Гиацинтова", "Гиляровская",
            "Глаголева", "Глинская", "Голицына", "Голованова", "Голубева", "Гончарова", "Городецкая", "Горячева",
            "Градова", "Градская", "Гранина", "Графская", "Грацианская", "Григорьева", "Громова", "Гронская"
            "Гурская", "Гусарская", "Данилевская", "Данилова", "Дарова", "Даровская", "Дворская", "Дембовская",
            "Дементьев", "Демидова", "Дёмина", "Денисова", "Державина", "Дзержинская", "Дмитриева", "Дмитриевская"
            "Добровольская", "Добрынина", "Долина", "Долинина", "Дольская", "Доманская", "Домбровская", "Донская",
            "Доронина", "Дорофеева", "Драгунская", "Древесная", "Дружинина", "Друнина", "Дубова", "Дубравина",
            "Дубровина", "Дубровская", "Дубская", "Думова", "Думчева", "Духовская", "Ежевская", "Езерская",
            "Елагина", "Елизарова", "Елисеева", "Ельская", "Еремеева", "Ермолова", "Ерофеева", "Ершова",
            "Ефимова", "Жарковская", "Жарова", "Жданова", "Жемчугова", "Жемчужникова", "Жеромская", "Жуковская",
            "Журавлёва", "Загорская", "Задонская", "Задорнова", "Задунайская", "Залесская", "Запольская", "Зарницкая",
            "Звездинская", "Звёздная", "Зеленова", "Земская", "Зефирова", "Златовласова", "Златовратская", "Златогорская",
            "Златопольская", "Златоумова", "Златоустовская", "Знаменская", "Золотарева", "Золотов", "Зорина", "Иванова",
            "Ивановская", "Ивашковская", "Ивлеева", "Иволгина", "Игнатова", "Игнатьева", "Ижорская", "Илларионова",
            "Ильинская", "Иртеньева", "Искрина", "Истомина", "Истратова", "Истрова", "Каберская", "Кавецкая",
            "Кайгородцева", "Казанцева", "Казарницкая", "Казимирова", "Казначеева", "Калиновская", "Калинникова", "Калифицкая",
            "Каменская", "Каминская", "Канаева", "Карамзина", "Кармадонова", "Карпинская", "Каховская", "Квилинская",
            "Квятковская", "Кедрина", "Кедрова", "Кирсанова", "Ключевская", "Княжина", "Княжнина", "Князева",
            "Ковалевская", "Кожевникова", "Колосова", "Колосовская", "Кольцова", "Комиссарова", "Кондратьева", "Коновалова",
            "Кононова", "Константинова", "Корнева", "Корнеева", "Королёва", "Королькова", "Костромская", "Котова",
            "Крапивина", "Красавина", "Красикова", "Красина", "Краснова", "Красногорская", "Краснопольская", "Красовская",
            "Кручинина", "Крылова", "Крымова", "Крымская", "Кудрявцева", "Куликовская", "Куприянова", "Купцова",
            "Кутузова", "Лавренева", "Лаврентьева", "Лаврова", "Лавровская", "Ладомирская", "Лазарева", "Лазаричева",
            "Лактионова", "Ланская", "Лапина", "Ларина", "Ларская", "Ластовская", "Лебедева", "Лебединская",
            "Лёвина", "Левинская", "Левитанова", "Левитанская", "Левицкая", "Ленская", "Леонова", "Леонтьева",
            "Лермонтова", "Лескова", "Лионова", "Лисичкна", "Лисовская", "Литвинова", "Литовская", "Логинова",
            "Лозинская", "Лозовская", "Луговая", "Лучинская", "Львова", "Львовская", "Льдова", "Любимова",
            "Людмилова", "Магницкая", "Майорова", "Майская", "Макарова", "Маковецкая", "Максимельянова", "Максимова",
            "Максимовская", "Малевинская", "Малинина", "Малиновская", "Малышева", "Мамина", "Марина", "Маринина",
            "Маркова", "Маслова", "Матвеева", "Медведева", "Мелентьева", "Мельникова", "Менская", "Меньшикова",
            "Меньшова", "Мережковская", "Меркулова", "Метелина", "Метельская", "Мечникова", "Мещерская", "Минаева",
            "Минина", "Миронова", "Мирская", "Митропольская", "Михайлова", "Михайловская", "Могучева", "Можайская",
            "Моисеева", "Морозова", "Москвина", "Москвитина", "Московская", "Мудрая", "Муромова", "Муромцева",
            "Наварская", "Нагорная", "Назарова", "Нарицына", "Нарциссова", "Наумова", "Невельская", "Невинская",
            "Нежинская", "Некрасова", "Немирова", "Немировская", "Несветаева", "Нестерова", "Никитина", "Никифорова",
            "Николаева", "Никольская", "Нильская", "Новгородская", "Новикова", "Новицкая", "Новодворская", "Новошинская",
            "Обломова", "Облонская", "Оболенская", "Образцова", "Огинская", "Огнева", "Огнецветова", "Одоевская",
            "Ожегова", "Ожигова", "Ожгибесова", "Озерова", "Олейникова", "Оленина", "Оранская", "Орлова",
            "Орловская", "Орфеева", "Осинская", "Островская", "Острогорская", "Остроградская", "Остроумова", "Павлова",
            "Павловская", "Панина", "Панова", "Пантелеева", "Пантерова", "Парижская", "Парнасская", "Паустовская",
            "Пахмутова", "Пашкова", "Первомайская", "Перова", "Перовская", "Персидская", "Петрова", "Петровская",
            "Печёрина", "Печёрская", "Пешкова", "Платонова", "Побединская", "Погодина", "Поднебесная", "Подольская",
            "Пожарская", "Покровская", "Поленова", "Полковникова", "Полонская", "Полякова", "Полянская", "Потапова",
            "Преображенская", "Пришвина", "Прокофьева", "Пушкина", "Радова", "Райская", "Рассказова", "Ратманова",
            "Рахманова", "Редкая", "Решетова", "Ржевская", "Рижская", "Римская", "Ровинская", "Родина",
            "Родионова", "Родочинская", "Рождественская", "Розанова", "Розина", "Розова", "Розовская", "Романенкова",
            "Романова", "Романовская", "Ростова", "Рубенцова", "Рублёва", "Рудакова", "Румянцева", "Русанова",
            "Рябинина", "Саблина", "Савельева", "Савицкая", "Савранская", "Садовская", "Салтевская", "Самойлова",
            "Сапфирова", "Сафарова", "Сафронова", "Сахарова", "Светлова", "Свиридова", "Северова", "Северская",
            "Северянина", "Селиверстова", "Сербская", "Сергеева", "Серебренникова", "Серебрина", "Сереброва", "Серебрякова",
            "Серебрянская", "Сердечникова", "Сибирская", "Симонова", "Скворцова", "Славина", "Славинская", "Славянская",
            "Сладкая", "Смелая", "Смирнова", "Смирновская", "Смоленская", "Смолина", "Снегирёва", "Снежинская",
            "Снежная", "Соболева", "Соболевская", "Соколова", "Соколовская", "Соллертинская", "Солнцева", "Соловьёва",
            "Соломонова", "Солярская", "Сотникова", "Софийская", "Сочинская", "Спасская", "Сперанская", "Сретенская",
            "Станиславская", "Столина", "Стрелецкая", "Стрельцова", "Субботина", "Суворова", "Суздальская", "Счастливая",
            "Таврическая", "Талисманова", "Тарасова", "Тарасова", "Тарханова", "Терехова", "Тимофеева", "Титова",
            "Тихомирова", "Тихонова", "Толмачёва", "Толстая", "Травникова", "Третьякова", "Трифонова", "Троицкая",
            "Тропинина", "Трофимова", "Троянская", "Трубецкая", "Туманова", "Турбина", "Уварова", "Удалова",
            "Удальцова", "Уланова", "Ульянова", "Уманская", "Урбанская", "Уфимцева", "Ушанская", "Фаворская",
            "Фёдорова", "Федосеева", "Федотова", "Феофилактова", "Фиалкина", "Филатова", "Фирсова", "Флоренская",
            "Флорентийская", "Флоринская", "ФОнвизина", "Форсова", "Францева", "Фурманова", "Хапёрская", "Харитонова",
            "Хмелевская", "Хмельницкая", "Хованская", "Холмогорова", "Холмская", "Холодная", "Хомская", "Царёва",
            "Царевская", "Царская", "Цветинская", "Цветкова", "Цветковская", "Цветова", "Цезарева", "Целиковская",
            "Цесарская", "Цусимская", "Чагина", "Чайкина", "Чайковская", "Чарская", "Чацкая", "Черёмушкина",
            "Черкасова", "Черкасская", "Чернышевская", "Чернышова", "Чесменская", "Чехова", "Чижевская", "Чижова",
            "Чудова", "Шадрина", "Шанская", "Шаповалова", "Шарова", "Шатрова", "Шахова", "Шаховская", "Шведова",
            "Шеметова", "Шереметева", "Шереметьева", "Шестакова", "Шестинская", "Шестова", "Шорохова",
            "Шмелёва", "Шпажинская", "Шубина", "Шуйская", "Шумова", "Шустова", "Шустрова", "Эвентова",
            "Эверстова", "Эдемова", "Эдемская", "Эдлина", "Эзерская", "Элинская", "Эллинская", "Эльбрусская",
            "Эмина", "Эмирова", "Эриванская", "Эсаулова", "Эстрина", "Эфендиева", "Южанинова", "Южина",
            "Юланова", "Юлианова", "Юлианская", "Юматова", "Юмина", "Юпитерова", "Юрасова", "Юринская",
            "Юрковская", "Юрская", "Юрьева", "Юрьевская", "Юсова", "Юстицкая", "Яблокова", "Яблонская",
            "Явленская", "Яволовская", "Яворская", "Ягужинская", "Ягофарова", "Язовская", "Ядрышникова", "Ялинская",
            "Ямпольская", "Янина", "Яновская", "Янчевская", "Янушевская", "Яркова", "Ярковская", "Ярова",
            "Яропольская", "Ярошевская", "Яруллова", "Ярченкова", "Ярцева", "Ясенева", "Ясенская", "Ясинская",
            "Ястребинская", "Ястремская", "Ятковская", "Яфарова", "Яхонтова"
        ]
    return _dictionary_cache['ru_f_last']


# Russian male middle names (patronymics)
def get_ru_male_middle_names() -> List[str]:
    """
    Returns Russian male middle names (patronymics).

    Returns
    -------
        List[str]: List of Russian male middle names
    """
    if 'ru_m_middle' not in _dictionary_cache:
        _dictionary_cache['ru_m_middle'] = [
            "Ааронович", "Абрамович", "Авазович", "Августинович", "Авраамович", "Агапович", "Агапитович", "Агатович",
            "Агафонович", "Адамович", "Адрианович", "Азаматович", "Азатович", "Азизович", "Аидович", "Айдарович",
            "Айратович", "Акакиевич", "Акимович", "Аланович", "Александрович", "Алексеевич", "Алиевич", "Аликович",
            "Алимович", "Алиханович", "Алишерович", "Алмазович", "Альбертович", "Амирович", "Амирамович", "Амиранович",
            "Анарович", "Анастасиевич", "Анатольевич", "Анварович", "Ангелович", "Андреевич", "Анзорович", "Антонович",
            "Анфимович", "Арамович", "Аристархович", "Аркадьевич", "Арманович", "Арменович", "Арсенович", "Арсеньевич",
            "Арсланович", "Артёмович", "Артемиевич", "Артурович", "Архипович", "Аскарович", "Асланович", "Асханович",
            "Асхатович", "Ахметович", "Ашотович", "Бахрамович", "Бенджаминович", "Блезович", "Богданович", "Борисович",
            "Бориславович", "Брониславович", "Булатович", "Вадимович", "Валентинович", "Валерьевич", "Вальдемарович",
            "Варданович",   "Васильевич", "Вениаминович", "Викторович", "Вильгельмович", "Витович", "Витальевич", "Владович",
            "Владимирович", "Владиславович", "Владленович", "Власович", "Всеволодович", "Вячеславович", "Гавриилович", "Гамлетович",
            "Гарриевич", "Геннадиевич", "Генрихович", "Генрихович", "Георгиевич", "Герасимович", "Германович", "Германнович",
            "Глебович", "Горович", "Гордеевич", "Григорьевич", "Густавович", "Давидович", "Давлатович", "Давронович", "Дамирович",
            "Даниилович", "Данисович", "Даниславович", "Даниэлевич", "Даниярович", "Дариевич", "Дауренович", "Даянович",
            "Демидович", "Демьянович", "Денисович", "Джамалович", "Джанович", "Джеймсович", "Джеремиевич", "Джозефович",
            "Джонатанович", "Дикович", "Динович", "Динарович", "Дмитриевич", "Добрынич", "Доминикович", "Евгеньевич",
            "Евдокимович", "Евсеевич", "Евстахиевич", "Егорович", "Елисеевич", "Емельянович", "Еремеевич", "Ефимович",
            "Ефремович", "Жданович", "Жерарович", "Жигерович", "Закирович", "Заурович", "Захарович", "Зенонович",
            "Зигмундович", "Зиновиевич", "Зурабович", "Зуфарович", "Ибрагимович", "Иванович", "Игнатович", "Игнатиевич",
            "Игоревич", "Иеронимович", "Джеромович", "Иисусович", "Ильгизович", "Ильнурович", "Ильшатович", "Ильич",
            "Ильясович", "Имранович", "Иннокентиевич", "Ираклиевич", "Исаакович", "Исаакиевич", "Исидорович",
            "Искандерович", "Исламович", "Исмаилович", "Итанович", "Казбекович", "Камилевич", "Каренович", "Каримович", "Карлович",
            "Кимович", "Кирович", "Кириллович", "Клаусович", "Климович", "Конрадович", "Константинович", "Коревич",
            "Корнелиевич", "Кристианович", "Кристоферович", "Кузьмич", "Лаврентьевич", "Ладович", "Львович", "Левиевич",
            "Ленарович", "Леонович", "Леонардович", "Леонидович", "Леопольдович", "Лиамович", "Лоренсович", "Лукич",
            "Лукиллианович", "Лукьянович", "Любомирович", "Людвигович", "Людовикович", "Люциевич", "Маджидович",
            "Майклович", "Макарович", "Макариевич", "Максимович", "Максимилианович", "Максудович", "Мансурович", "Марович",
            "Маратович", "Маркович", "Марсович", "Марселевич", "Мартинович", "Мартынович", "Маршаллович", "Матвеевич", "Махмудович",
            "Микович", "Микулович", "Миланович", "Милославович", "Миронович", "Мирославович", "Михайлович", "Моисеевич",
            "Мстиславович", "Муратович", "Муслимович", "Мустафович", "Мухаммедович", "Мэтьюевич", "Назарович",
            "Наилевич", "Нариманович", "Натанович", "Несторович", "Никович", "Никитич", "Никодимович", "Николаевич", "Николаевич",
            "Нильсович", "Ноевич", "Нурланович", "Огюстович", "Олегович", "Оливерович", "Орестович", "Орландович",
            "Осипович", "Иосифович", "Оскарович", "Османович", "Остапович", "Остинович", "Павлович", "Панкратович",
            "Пантелеймонович", "Патрикович", "Педрович", "Перриевич", "Петрович", "Платонович", "Потапович",
            "Прохорович", "Равилевич", "Радиевич", "Радикович", "Радомирович", "Радославович", "Разилевич", "Раилевич", "Раифович",
            "Райанович", "Раймондович", "Рамазанович", "Рамзесович", "Рамизович", "Рамилевич", "Рамонович", "Ранелевич",
            "Расимович", "Расулович", "Ратиборович", "Ратмирович", "Раушанович", "Рафаэлевич", "Рафикович", "Рашидович",
            "Ринатович", "Ренатович", "Ричардович", "Робертович", "Родионович", "Рожденович", "Роланович", "Романович",
            "Ростиславович", "Рубенович", "Рудольфович", "Русланович", "Рустамович", "Рэйевич", "Саввич", "Савельевич",
            "Саидович", "Салаватович", "Саматович", "Самвелович", "Самирович", "Самсонович", "Самуилович", "Санжарович",
            "Саниевич", "Саянович", "Святославович", "Севастьянович", "Семёнович", "Серафимович", "Сергеевич",
            "Сидорович", "Симбович", "Соломонович", "Спартакович", "Станиславович", "Степанович", "Сулейманович", "Султанович",
            "Суренович", "Тагирович", "Таирович", "Тайлерович", "Талгатович", "Тамазович", "Тамерланович", "Тарасович", "Тахирович",
            "Теодорович", "Тигранович", "Тимофеевич", "Тимурович", "Тихонович", "Томасович", "Трофимович",
            "Уинслоуович", "Умарович", "Устинович", "Фазилевич", "Фаридович", "Фархадович", "Фёдорович", "Федотович", "Феликсович",
            "Филиппович", "Флорович", "Фомич", "Францович", "Фредович", "Фридрихович", "Хабибович", "Хакимович",
            "Халидович", "Харитонович", "Хасанович", "Цезаревич", "Цефасович", "Цецилиевич", "Сесилович", "Цицеронович",
            "Чарльзович", "Чеславович", "Чингизович", "Шамилевич", "Шарлевич", "Шерлокович", "Эдгарович", "Эдуардович",
            "Эльдарович", "Эмилевич", "Эминови", "Эрикович", "Эркюлевич", "Эрминович", "Эрнестович", "Эузебиович",
            "Юлианович", "Юлиевич", "Юнусович", "Юрьевич", "Юстинианович", "Юстусович", "Яковлевич", "Янович",
            "Яромирович", "Ярославович"
        ]
    return _dictionary_cache['ru_m_middle']


# Russian female middle names (patronymics)
def get_ru_female_middle_names() -> List[str]:
    """
    Returns Russian female middle names (patronymics).

    Returns
    -------
        List[str]: List of Russian female middle names
    """
    if 'ru_f_middle' not in _dictionary_cache:
        _dictionary_cache['ru_f_middle'] = [
            "Аароновна", "Абрамовна", "Авазовна", "Августиновна", "Авраамовна", "Агаповна", "Агапитовна", "Агатовна",
            "Агафоновна", "Адамовна", "Адриановна", "Азаматовна", "Азатовна", "Азизовна", "Аидовна", "Айдаровна",
            "Айратовна", "Акакиевна", "Акимовна", "Алановна", "Александровна", "Алексеевна", "Алиевна", "Аликовна",
            "Алимовна", "Алихановна", "Алишеровна", "Алмазовна", "Альбертовна", "Амировна", "Амирамовна", "Амирановна",
            "Анаровна", "Анастасиевна", "Анатольевна", "Анваровна", "Ангеловна", "Андреевна", "Анзоровна", "Антоновна",
            "Анфимовна", "Арамовна", "Аристарховна", "Аркадьевна", "Армановна", "Арменовна", "Арсеновна", "Арсеньевна",
            "Арслановна", "Артёмовна", "Артемиевна", "Артуровна", "Архиповна", "Аскаровна", "Аслановна", "Асхановна",
            "Асхатовна", "Ахметовна", "Ашотовна", "Бахрамовна", "Бенджаминовна", "Блезовна", "Богдановна", "Борисовна",
            "Бориславовна", "Брониславовна", "Булатовна", "Вадимовна", "Валентиновна", "Валерьевна", "Вальдемаровна",
            "Вардановна", "Васильевна", "Вениаминовна", "Викторовна", "Вильгельмовна", "Витовна", "Витальевна", "Владовна",
            "Владимировна", "Владиславовна", "Владленовна", "Власовна", "Всеволодовна", "Вячеславовна", "Гаврииловна", "Гамлетовна",
            "Гарриевна", "Геннадиевна", "Генриховна", "Генриховна", "Георгиевна", "Герасимовна", "Германовна", "Германновна",
            "Глебовна", "Горовна", "Гордеевна", "Григорьевна", "Густавовна", "Давидовна", "Давлатовна", "Давроновна", "Дамировна",
            "Данииловна", "Данисовна", "Даниславовна", "Даниэлевна", "Данияровна", "Дариевна", "Дауреновна", "Даяновна",
            "Демидовна", "Демьяновна", "Денисовна", "Джамаловна", "Джановна", "Джеймсовна", "Джеремиевна", "Джозефовна",
            "Джонатановна", "Диковна", "Диновна", "Динаровна", "Дмитриевна", "Добрынична", "Доминиковича", "Евгеньевна",
            "Евдокимовна", "Евсеевна", "Евстахиевна", "Егоровна", "Елисеевна", "Емельяновна", "Еремеевна", "Ефимовна",
            "Ефремовна", "Ждановна", "Жераровна", "Жигеровна", "Закировна", "Зауровна", "Захаровна", "Зеноновна",
            "Зигмундовна", "Зиновиевна", "Зурабовна", "Зуфаровна", "Ибрагимовна", "Ивановна", "Игнатовна", "Игнатиевна",
            "Игоревна", "Иеронимовна", "Джеромовна", "Иисусовна", "Ильгизовна", "Ильнуровна", "Ильшатовна", "Ильинична",
            "Ильясовна", "Имрановна", "Иннокентьевна", "Ираклиевна", "Исааковна", "Исаакиевна", "Исидоровна",
            "Искандеровна", "Исламовна", "Исмаиловна", "Итановна", "Казбековна", "Камилевна", "Кареновна", "Каримовна", "Карловна",
            "Кимовна", "Кировна", "Кирилловна", "Клаусовна", "Климовна", "Конрадовна", "Константиновна", "Коревна",
            "Корнелиевна", "Кристиановна", "Кристоферовна", "Кузьминична", "Лаврентьевна", "Ладовна", "Львовна",
            "Левиевна", "Ленаровна", "Леоновна", "Леонардовна", "Леонидовна", "Леопольдовна", "Лиамовна", "Лоренсовна", "Лукинична",
            "Лукиллиановна", "Лукьяновна", "Любомировна", "Людвиговна", "Людовиковна", "Люциевна", "Маджидовна",
            "Майкловна", "Макаровна", "Макариевна", "Максимовна", "Максимилиановна", "Максудовна", "Мансуровна", "Маровна",
            "Маратовна", "Марковна", "Марсовна", "Марселевна", "Мартиновна", "Мартыновна", "Маршалловна", "Матвеевна", "Махмудовна",
            "Миковна", "Микуловна", "Милановна", "Милославовна", "Мироновна", "Мирославовна", "Михайловна", "Моисеевна",
            "Мстиславовна", "Муратовна", "Муслимовна", "Мустафовна", "Мухаммедовна", "Мэтьюевна", "Назаровна",
            "Наилевна", "Наримановна", "Натановна", "Несторовна", "Никовна", "Никитична", "Никодимовна", "Николаевна", "Николаевна",
            "Нильсовна", "Ноевна", "Нурлановна", "Огюстовна", "Олеговна", "Оливеровна", "Орестовна", "Орландовна",
            "Осиповна", "Иосифовна", "Оскаровна", "Османовна", "Остаповна", "Остиновна", "Павловна", "Панкратовна",
            "Пантелеймоновна", "Патриковна", "Педровна", "Перриевна", "Петровна", "Платоновна", "Потаповна",
            "Прохоровна", "Равилевна", "Радиевна", "Радиковна", "Радомировна", "Радославовна", "Разилевна", "Раилевна", "Раифовна",
            "Райановна", "Раймондовна", "Рамазановна", "Рамзесовна", "Рамизовна", "Рамилевна", "Рамоновна", "Ранелевна",
            "Расимовна", "Расуловна", "Ратиборовна", "Ратмировна", "Раушановна", "Рафаэлевна", "Рафиковна", "Рашидовна",
            "Ринатовна", "Ренатовна", "Ричардовна", "Робертовна", "Родионовна", "Рожденовна", "Ролановна", "Романовна",
            "Ростиславовна", "Рубеновна", "Рудольфовна", "Руслановна", "Рустамовна", "Рэйевна", "Саввична",
            "Савельевна", "Саидовна", "Салаватовна", "Саматовна", "Самвеловна", "Самировна", "Самсоновна", "Самуиловна", "Санжаровна",
            "Саниевна", "Саяновна", "Святославовна", "Севастьяновна", "Семёновна", "Серафимовна", "Сергеевна",
            "Сидоровна", "Симбовна", "Соломоновна", "Спартаковна", "Станиславовна", "Степановна", "Сулеймановна", "Султановна",
            "Суреновна", "Тагировна", "Таировна", "Тайлеровна", "Талгатовна", "Тамазовна", "Тамерлановна", "Тарасовна", "Тахировна",
            "Теодоровна", "Тиграновна", "Тимофеевна", "Тимуровна", "Тихоновна", "Томасовна", "Трофимовна",
            "Уинслоуовна", "Умаровна", "Устиновна", "Фазилевна", "Фаридовна", "Фархадовна", "Фёдоровна", "Федотовна", "Феликсовна",
            "Филипповна", "Флоровна", "Фоминична", "Францовна", "Фредовна", "Фридриховна", "Хабибовна", "Хакимовна",
            "Халидовна", "Харитоновна", "Хасановна", "Цезаревна", "Цефасовна", "Цецилиевна", "Сесиловна", "Цицероновна",
            "Чарльзовна", "Чеславовна", "Чингизовна", "Шамилевна", "Шарлевна", "Шерлоковна", "Эдгаровна", "Эдуардовна",
            "Эльдаровна", "Эмилевна", "Эминовна", "Эриковна", "Эркюлевна", "Эрминовна", "Эрнестовна", "Эузебиевна",
            "Юлиановна", "Юлиевна", "Юнусовна", "Юрьевна", "Юстиниановна", "Юстусовна", "Яковлевна", "Яновна",
            "Яромировна", "Ярославовна"
        ]
    return _dictionary_cache['ru_f_middle']


# ----------------------- ENGLISH NAMES (EN) -----------------------

# English male first names
def get_en_male_first_names() -> List[str]:
    """
    Returns English male first names.

    Returns
    -------
        List[str]: List of English male first names
    """
    if 'en_m_first' not in _dictionary_cache:
        _dictionary_cache['en_m_first'] = [
            "James", "John", "Robert", "Michael", "William", "David", "Richard", "Charles", "Joseph", "Thomas",
            "Christopher", "Daniel", "Paul", "Mark", "Donald", "George", "Kenneth", "Steven", "Edward", "Brian",
            "Ronald", "Anthony", "Kevin", "Jason", "Matthew", "Gary", "Timothy", "Jose", "Larry", "Jeffrey", "Frank",
            "Scott", "Eric", "Stephen", "Andrew",
            "Raymond", "Gregory", "Joshua", "Jerry", "Dennis", "Walter", "Patrick", "Peter", "Harold", "Douglas",
            "Henry", "Carl", "Arthur", "Ryan", "Roger", "Joe", "Juan", "Jack", "Albert", "Jonathan", "Justin", "Terry",
            "Gerald", "Keith", "Samuel", "Willie", "Ralph", "Lawrence", "Nicholas", "Roy", "Benjamin", "Bruce",
            "Brandon", "Adam", "Harry", "Fred", "Wayne",
            "Billy", "Steve", "Louis", "Jeremy", "Aaron", "Randy", "Howard", "Eugene", "Carlos", "Russell", "Bobby",
            "Victor", "Martin", "Ernest", "Phillip", "Todd", "Jesse", "Craig", "Alan", "Shawn", "Clarence", "Sean",
            "Philip", "Chris", "Johnny", "Earl", "Jimmy", "Antonio", "Danny", "Bryan", "Tony", "Luis", "Mike",
            "Stanley", "Leonard", "Nathan", "Dale", "Manuel",
            "Rodney", "Curtis", "Norman", "Allen", "Marvin", "Vincent", "Glenn", "Jeffery", "Travis", "Jeff", "Chad",
            "Jacob", "Lee", "Melvin", "Alfred", "Kyle", "Francis", "Bradley", "Jesus", "Herbert", "Frederick", "Ray",
            "Joel", "Edwin", "Don", "Eddie", "Ricky", "Troy", "Randall", "Barry", "Alexander", "Bernard", "Mario",
            "Leroy", "Francisco", "Marcus", "Micheal",
            "Theodore", "Clifford", "Miguel", "Oscar", "Jay", "Jim", "Tom", "Calvin", "Alex", "Jon", "Ronnie", "Bill",
            "Lloyd", "Tommy", "Leon", "Derek", "Warren", "Darrell", "Jerome", "Floyd", "Leo", "Alvin", "Tim", "Wesley",
            "Gordon", "Dean", "Greg", "Jorge", "Dustin", "Pedro", "Derrick", "Dan", "Lewis", "Zachary", "Corey",
            "Herman", "Maurice", "Vernon", "Roberto", "Clyde",
            "Glen", "Hector", "Shane", "Ricardo", "Sam", "Rick", "Lester", "Brent", "Ramon", "Charlie", "Tyler",
            "Gilbert", "Gene", "Marc", "Reginald", "Ruben", "Brett", "Angel", "Nathaniel", "Rafael", "Leslie", "Edgar",
            "Milton", "Raul", "Ben", "Chester", "Cecil", "Duane", "Franklin", "Andre", "Elmer", "Brad", "Gabriel",
            "Ron", "Mitchell", "Roland", "Arnold", "Harvey",
            "Jared", "Adrian", "Karl", "Cory", "Claude", "Erik", "Darryl", "Jamie", "Neil", "Jessie", "Christian",
            "Javier", "Fernando", "Clinton", "Ted", "Mathew", "Tyrone", "Darren", "Lonnie", "Lance", "Cody", "Julio",
            "Kelly", "Kurt", "Allan", "Nelson", "Guy", "Clayton", "Hugh", "Max", "Dwayne", "Dwight", "Armando", "Felix",
            "Jimmie", "Everett", "Jordan", "Ian",
            "Wallace", "Ken", "Bob", "Jaime", "Casey", "Alfredo", "Alberto", "Dave", "Ivan", "Johnnie", "Sidney",
            "Byron", "Julian", "Isaac", "Morris", "Clifton", "Willard", "Daryl", "Ross", "Virgil", "Andy", "Marshall",
            "Salvador", "Perry", "Kirk", "Sergio", "Marion", "Tracy", "Seth", "Kent", "Terrance", "Rene", "Eduardo",
            "Terrence", "Enrique", "Freddie",
            "Wade", "Austin", "Stuart", "Fredrick", "Arturo", "Alejandro", "Jackie", "Joey", "Nick", "Luther",
            "Wendell", "Jeremiah", "Evan", "Julius", "Dana", "Donnie", "Otis", "Shannon", "Trevor", "Oliver", "Luke",
            "Homer", "Gerard", "Doug", "Kenny", "Hubert", "Angelo", "Shaun", "Lyle", "Matt", "Lynn", "Alfonso",
            "Orlando", "Rex", "Carlton", "Ernesto", "Cameron", "Neal",
            "Pablo", "Lorenzo", "Omar", "Wilbur", "Blake", "Grant", "Horace", "Roderick", "Kerry", "Abraham", "Willis",
            "Rickey", "Jean", "Ira", "Andres", "Cesar", "Johnathan", "Malcolm", "Rudolph", "Damon", "Kelvin", "Rudy",
            "Preston", "Alton", "Archie", "Marco", "Wm", "Pete", "Randolph", "Garry", "Geoffrey", "Jonathon", "Felipe",
            "Bennie", "Gerardo", "Ed",
            "Dominic", "Robin", "Loren", "Delbert", "Colin", "Guillermo", "Earnest", "Lucas", "Benny", "Noel",
            "Spencer", "Rodolfo", "Myron", "Edmund", "Garrett", "Salvatore", "Cedric", "Lowell", "Gregg", "Sherman",
            "Wilson", "Devin", "Sylvester", "Kim", "Roosevelt", "Israel", "Jermaine", "Forrest", "Wilbert", "Leland",
            "Simon", "Guadalupe", "Clark",
            "Irving", "Carroll", "Bryant", "Owen", "Rufus", "Woodrow", "Sammy", "Kristopher", "Mack", "Levi", "Marcos",
            "Gustavo", "Jake", "Lionel", "Marty", "Taylor", "Ellis", "Dallas", "Gilberto", "Clint", "Nicolas",
            "Laurence", "Ismael", "Orville", "Drew", "Jody", "Ervin", "Dewey", "Al", "Wilfred", "Josh", "Hugo",
            "Ignacio", "Caleb", "Tomas", "Sheldon",
            "Erick", "Frankie", "Stewart", "Doyle", "Darrel", "Rogelio", "Terence", "Santiago", "Alonzo", "Elias",
            "Bert", "Elbert", "Ramiro", "Conrad", "Pat", "Noah", "Grady", "Phil", "Cornelius", "Lamar", "Rolando",
            "Clay", "Percy", "Dexter", "Bradford", "Merle", "Darin", "Amos", "Terrell", "Moses", "Irvin", "Saul",
            "Roman", "Darnell", "Randal", "Tommie",
            "Timmy", "Darrin", "Winston", "Brendan", "Toby", "Van", "Abel", "Dominick", "Boyd", "Courtney", "Jan",
            "Emilio", "Elijah", "Cary", "Domingo", "Santos", "Aubrey", "Emmett", "Marlon", "Emanuel", "Jerald",
            "Edmond", "Emil", "Dewayne", "Will", "Otto", "Teddy", "Reynaldo", "Bret", "Morgan", "Jess", "Trent",
            "Humberto", "Emmanuel", "Stephan",
            "Louie", "Vicente", "Lamont", "Stacy",
            "Garland", "Miles", "Micah", "Efrain", "Billie", "Logan", "Heath", "Rodger", "Harley", "Demetrius", "Ethan",
            "Eldon", "Rocky", "Pierre", "Junior", "Freddy", "Eli", "Bryce", "Antoine", "Robbie", "Kendall", "Royce",
            "Sterling", "Mickey", "Chase", "Grover", "Elton", "Cleveland", "Dylan", "Chuck", "Damian", "Reuben", "Stan",
            "August", "Leonardo",
            "Jasper", "Russel", "Erwin", "Benito", "Hans", "Monte", "Blaine", "Ernie", "Curt", "Quentin", "Agustin",
            "Murray", "Jamal", "Devon", "Adolfo", "Harrison", "Tyson", "Burton", "Brady", "Elliott", "Wilfredo", "Bart",
            "Jarrod", "Vance", "Denis", "Damien", "Joaquin", "Harlan", "Desmond", "Elliot", "Darwin", "Ashley",
            "Gregorio", "Buddy", "Xavier",
            "Kermit", "Roscoe", "Esteban", "Anton", "Solomon", "Scotty", "Norbert", "Elvin", "Williams", "Nolan",
            "Carey", "Rod", "Quinton", "Hal", "Brain", "Rob", "Elwood", "Kendrick", "Darius", "Moises", "Son", "Marlin",
            "Fidel", "Thaddeus", "Cliff", "Marcel", "Ali", "Jackson", "Raphael", "Bryon", "Armand", "Alvaro", "Jeffry",
            "Dane", "Joesph", "Thurman",
            "Ned", "Sammie", "Rusty", "Michel", "Monty", "Rory", "Fabian", "Reggie", "Mason", "Graham", "Kris",
            "Isaiah", "Vaughn", "Gus", "Avery", "Loyd", "Diego", "Alexis", "Adolph", "Norris", "Millard", "Rocco",
            "Gonzalo", "Derick", "Rodrigo", "Gerry", "Stacey", "Carmen", "Wiley", "Rigoberto", "Alphonso", "Ty",
            "Shelby", "Rickie", "Noe", "Vern", "Bobbie", "Reed",
            "Jefferson", "Elvis", "Bernardo", "Mauricio", "Hiram", "Donovan", "Basil", "Riley", "Ollie", "Nickolas",
            "Maynard", "Scot", "Vince", "Quincy", "Eddy", "Sebastian", "Federico", "Ulysses", "Heriberto", "Donnell",
            "Cole", "Denny", "Davis", "Gavin", "Emery", "Ward", "Romeo", "Jayson", "Dion", "Dante", "Clement", "Coy",
            "Odell", "Maxwell", "Jarvis",
            "Runo", "Issac", "Mary", "Dudley", "Brock", "Sanford", "Colby", "Carmelo", "Barney", "Nestor", "Hollis",
            "Stefan", "Donny", "Art", "Linwood", "Beau", "Weldon", "Galen", "Isidro", "Truman", "Delmar", "Johnathon",
            "Silas", "Frederic", "Dick", "Kirby", "Irwin", "Cruz", "Merlin", "Merrill", "Charley", "Marcelino", "Lane",
            "Harris", "Cleo", "Carlo",
            "Trenton", "Kurtis", "Hunter", "Aurelio", "Winfred", "Vito", "Collin", "Denver", "Carter", "Leonel",
            "Emory", "Pasquale", "Mohammad", "Mariano", "Danial", "Blair", "Landon", "Dirk", "Branden", "Adan",
            "Numbers", "Clair", "Buford", "German", "Bernie", "Wilmer", "Joan", "Emerson", "Zachery", "Fletcher",
            "Jacques", "Errol", "Dalton", "Monroe",
            "Josue", "Dominique", "Edwardo", "Booker", "Wilford", "Sonny", "Shelton", "Carson", "Theron", "Raymundo",
            "Daren", "Tristan", "Houston", "Robby", "Lincoln", "Jame", "Genaro", "Gale", "Bennett", "Octavio",
            "Cornell", "Laverne", "Hung", "Arron", "Antony", "Herschel", "Alva", "Giovanni", "Garth", "Cyrus", "Cyril",
            "Ronny", "Stevie", "Lon", "Freeman", "Erin",
            "Duncan", "Kennith", "Carmine", "Augustine", "Young", "Erich", "Chadwick", "Wilburn", "Russ", "Reid",
            "Myles", "Anderson", "Morton", "Jonas", "Forest", "Mitchel", "Mervin", "Zane", "Rich", "Jamel", "Lazaro",
            "Alphonse", "Randell", "Major", "Johnie", "Jarrett", "Brooks", "Ariel", "Abdul", "Dusty", "Luciano",
            "Lindsey", "Tracey", "Seymour",
            "Scottie", "Eugenio", "Mohammed", "Sandy", "Valentin", "Chance", "Arnulfo", "Lucien", "Ferdinand", "Thad",
            "Ezra", "Sydney", "Aldo", "Rubin", "Royal", "Mitch", "Earle", "Abe", "Wyatt", "Marquis", "Lanny", "Kareem",
            "Jamar", "Boris", "Isiah", "Emile", "Elmo", "Aron", "Leopoldo", "Everette", "Josef", "Gail", "Eloy",
            "Dorian", "Rodrick", "Reinaldo",
            "Lucio", "Jerrod", "Weston", "Hershel", "Barton", "Parker", "Lemuel", "Lavern", "Burt", "Jules", "Gil",
            "Eliseo", "Ahmad", "Nigel", "Efren", "Antwan", "Alden", "Margarito", "Coleman", "Refugio", "Dino",
            "Osvaldo", "Les", "Deandre", "Normand", "Kieth", "Ivory", "Andrea", "Trey", "Norberto", "Napoleon",
            "Jerold", "Fritz", "Rosendo", "Milford",
            "Sang", "Deon", "Christoper", "Alfonzo", "Lyman", "Josiah", "Brant", "Wilton", "Rico", "Jamaal", "Dewitt",
            "Carol", "Brenton", "Yong", "Olin", "Foster", "Faustino", "Claudio", "Judson", "Gino", "Edgardo", "Berry",
            "Alec", "Tanner", "Jarred", "Donn", "Trinidad", "Tad", "Shirley", "Prince", "Porfirio", "Odis", "Maria",
            "Lenard", "Chauncey", "Chang",
            "Tod", "Mel", "Marcelo", "Kory", "Augustus", "Keven", "Hilario", "Bud", "Sal", "Rosario", "Orval", "Mauro",
            "Dannie", "Zachariah", "Olen", "Anibal", "Milo", "Jed", "Frances", "Thanh", "Dillon", "Amado", "Newton",
            "Connie", "Lenny", "Tory", "Richie", "Lupe", "Horacio", "Brice", "Mohamed", "Delmer", "Dario", "Reyes",
            "Dee", "Mac", "Jonah", "Jerrold", "Robt",
            "Hank", "Sung", "Rupert", "Rolland", "Kenton", "Damion", "Chi", "Antone", "Waldo", "Fredric", "Bradly",
            "Quinn", "Kip", "Burl", "Walker", "Tyree", "Jefferey", "Ahmed"
        ]
    return _dictionary_cache['en_m_first']


# English female first names
def get_en_female_first_names() -> List[str]:
    """
    Returns English female first names.

    Returns
    -------
        List[str]: List of English female first names
    """
    if 'en_f_first' not in _dictionary_cache:
        _dictionary_cache['en_f_first'] = [
                "Mary", "Patricia", "Linda", "Barbara", "Elizabeth", "Jennifer", "Maria", "Susan", "Margaret",
                "Dorothy", "Lisa", "Nancy", "Karen", "Betty", "Helen", "Sandra", "Donna", "Carol", "Ruth", "Sharon",
                "Michelle", "Laura", "Sarah", "Kimberly", "Deborah", "Jessica", "Shirley", "Cynthia", "Angela",
                "Melissa", "Brenda", "Amy", "Anna", "Rebecca", "Virginia",
                "Kathleen", "Pamela", "Martha", "Debra", "Amanda", "Stephanie", "Carolyn", "Christine", "Marie",
                "Janet", "Catherine", "Frances", "Ann", "Joyce", "Diane", "Alice", "Julie", "Heather", "Teresa",
                "Doris", "Gloria", "Evelyn", "Jean", "Cheryl", "Mildred", "Katherine", "Joan", "Ashley", "Judith",
                "Rose", "Janice", "Kelly", "Nicole", "Judy", "Christina",
                "Kathy", "Theresa", "Beverly", "Denise", "Tammy", "Irene", "Jane", "Lori", "Rachel", "Marilyn",
                "Andrea", "Kathryn", "Louise", "Sara", "Anne", "Jacqueline", "Wanda", "Bonnie", "Julia", "Ruby", "Lois",
                "Tina", "Phyllis", "Norma", "Paula", "Diana", "Annie", "Lillian", "Emily", "Robin", "Peggy", "Crystal",
                "Gladys", "Rita", "Dawn", "Connie", "Florence", "Tracy",
                "Edna", "Tiffany", "Carmen", "Rosa", "Cindy", "Grace", "Wendy", "Victoria", "Edith", "Kim", "Sherry",
                "Sylvia", "Josephine", "Thelma", "Shannon", "Sheila", "Ethel", "Ellen", "Elaine", "Marjorie", "Carrie",
                "Charlotte", "Monica", "Esther", "Pauline", "Emma", "Juanita", "Anita", "Rhonda", "Hazel", "Amber",
                "Eva", "Debbie", "April", "Leslie", "Clara",
                "Lucille", "Jamie", "Joanne", "Eleanor", "Valerie", "Danielle", "Megan", "Alicia", "Suzanne", "Michele",
                "Gail", "Bertha", "Darlene", "Veronica", "Jill", "Erin", "Geraldine", "Lauren", "Cathy", "Joann",
                "Lorraine", "Lynn", "Sally", "Regina", "Erica", "Beatrice", "Dolores", "Bernice", "Audrey", "Yvonne",
                "Annette", "June", "Samantha", "Marion",
                "Dana", "Stacy", "Ana", "Renee", "Ida", "Vivian", "Roberta", "Holly", "Brittany", "Melanie", "Loretta",
                "Yolanda", "Jeanette", "Laurie", "Katie", "Kristen", "Vanessa", "Alma", "Sue", "Elsie", "Beth",
                "Jeanne", "Vicki", "Carla", "Tara", "Rosemary", "Eileen", "Terri", "Gertrude", "Lucy", "Tonya", "Ella",
                "Stacey", "Wilma", "Gina", "Kristin", "Jessie",
                "Natalie", "Agnes", "Vera", "Willie", "Charlene", "Bessie", "Delores", "Melinda", "Pearl", "Arlene",
                "Maureen", "Colleen", "Allison", "Tamara", "Joy", "Georgia", "Constance", "Lillie", "Claudia", "Jackie",
                "Marcia", "Tanya", "Nellie", "Minnie", "Marlene", "Heidi", "Glenda", "Lydia", "Viola", "Courtney",
                "Marian", "Stella", "Caroline", "Dora", "Jo",
                "Vickie", "Mattie", "Terry", "Maxine", "Irma", "Mabel", "Marsha", "Myrtle", "Lena", "Christy", "Deanna",
                "Patsy", "Hilda", "Gwendolyn", "Jennie", "Nora", "Margie", "Nina", "Cassandra", "Leah", "Penny", "Kay",
                "Priscilla", "Naomi", "Carole", "Brandy", "Olga", "Billie", "Dianne", "Tracey", "Leona", "Jenny",
                "Felicia", "Sonia", "Miriam", "Velma", "Becky",
                "Bobbie", "Violet", "Kristina", "Toni", "Misty", "Mae", "Shelly", "Daisy", "Ramona", "Sherri", "Erika",
                "Katrina", "Claire", "Lindsey", "Lindsay", "Geneva", "Guadalupe", "Belinda", "Margarita", "Sheryl",
                "Cora", "Faye", "Ada", "Natasha", "Sabrina", "Isabel", "Marguerite", "Hattie", "Harriet", "Molly",
                "Cecilia", "Kristi", "Brandi", "Blanche",
                "Sandy", "Rosie", "Joanna", "Iris", "Eunice", "Angie", "Inez", "Lynda", "Madeline", "Amelia", "Alberta",
                "Genevieve", "Monique", "Jodi", "Janie", "Maggie", "Kayla", "Sonya", "Jan", "Lee", "Kristine",
                "Candace", "Fannie", "Maryann", "Opal", "Alison", "Yvette", "Melody", "Luz", "Susie", "Olivia", "Flora",
                "Shelley", "Kristy", "Mamie", "Lula", "Lola",
                "Verna", "Beulah", "Antoinette", "Candice", "Juana", "Jeanette", "Pam", "Kelli", "Hannah", "Whitney",
                "Bridget", "Karla", "Celia", "Latoya", "Patty", "Shelia", "Gayle", "Della", "Vicky", "Lynne", "Sheri",
                "Marianne", "Kara", "Jacquelyn", "Erma", "Blanca", "Myra", "Leticia", "Pat", "Krista", "Roxanne",
                "Angelica", "Johnnie", "Robyn", "Francis",
                "Adrienne", "Rosalie", "Alexandra", "Brooke", "Bethany", "Sadie", "Bernadette", "Traci", "Jody",
                "Kendra", "Jasmine", "Nichole", "Rachael", "Chelsea", "Mable", "Ernestine", "Muriel", "Marcella",
                "Elena", "Krystal", "Angelina", "Nadine", "Kari", "Estelle", "Dianna", "Paulette", "Lora", "Mona",
                "Doreen", "Rosemarie", "Angel", "Desiree",
                "Antonia", "Hope", "Ginger", "Janis", "Betsy", "Christie", "Freda", "Mercedes", "Meredith", "Lynette",
                "Teri", "Cristina", "Eula", "Leigh", "Meghan", "Sophia", "Eloise", "Rochelle", "Gretchen", "Cecelia",
                "Raquel", "Henrietta", "Alyssa", "Jana", "Kelley", "Gwen", "Kerry", "Jenna", "Tricia", "Laverne",
                "Olive", "Alexis", "Tasha", "Silvia",
                "Elvira", "Casey", "Delia", "Sophie", "Kate", "Patti", "Lorena", "Kellie", "Sonja", "Lila", "Lana",
                "Darla", "May", "Mindy", "Essie", "Mandy", "Lorene", "Elsa", "Josefina", "Jeannie", "Miranda", "Dixie",
                "Lucia", "Marta", "Faith", "Lela", "Johanna", "Shari", "Camille", "Tami", "Shawna", "Elisa", "Ebony",
                "Melba", "Ora", "Nettie", "Tabitha", "Ollie", "Jaime",
                "Winifred", "Kristie", "Marina", "Alisha", "Aimee", "Rena", "Myrna", "Marla", "Tammie", "Latasha",
                "Bonita", "Patrice", "Ronda", "Sherrie", "Addie", "Francine", "Deloris", "Stacie", "Adriana", "Cheri",
                "Shelby", "Abigail", "Celeste", "Jewel", "Cara", "Adele", "Rebekah", "Lucinda", "Dorthy", "Chris",
                "Effie", "Trina", "Reba", "Shawn", "Sallie",
                "Aurora", "Lenora", "Etta", "Lottie", "Kerri", "Trisha", "Nikki", "Estella", "Francisca", "Josie",
                "Tracie", "Marissa", "Karin", "Brittney", "Janelle", "Lourdes", "Laurel", "Helene", "Fern", "Elva",
                "Corinne", "Kelsey", "Ina", "Bettie", "Elisabeth", "Aida", "Caitlin", "Ingrid", "Iva", "Eugenia",
                "Christa", "Goldie", "Cassie", "Maude", "Jenifer",
                "Therese", "Frankie", "Dena", "Lorna", "Janette", "Latonya", "Candy", "Morgan", "Consuelo", "Tamika",
                "Rosetta", "Debora", "Cherie", "Polly", "Dina", "Jewell", "Fay", "Jillian", "Dorothea", "Nell", "Trudy",
                "Esperanza", "Patrica", "Kimberley", "Shanna", "Helena", "Carolina", "Cleo", "Stefanie", "Rosario",
                "Ola", "Janine", "Mollie", "Lupe", "Alisa",
                "Lou", "Maribel", "Susanne", "Bette", "Susana", "Elise", "Cecile", "Isabelle", "Lesley", "Jocelyn",
                "Paige", "Joni", "Rachelle", "Leola", "Daphne", "Alta", "Ester", "Petra", "Graciela", "Imogene",
                "Jolene", "Keisha", "Lacey", "Glenna", "Gabriela", "Keri", "Ursula", "Lizzie", "Kirsten", "Shana",
                "Adeline", "Mayra", "Jayne", "Jaclyn", "Gracie",
                "Sondra", "Carmela", "Marisa", "Rosalind", "Charity", "Tonia", "Beatriz", "Marisol", "Clarice",
                "Jeanine", "Sheena", "Angeline", "Frieda", "Lily", "Robbie", "Shauna", "Millie", "Claudette",
                "Cathleen", "Angelia", "Gabrielle", "Autumn", "Katharine", "Summer", "Jodie", "Staci", "Lea", "Christi",
                "Jimmie", "Justine", "Elma", "Luella",
                "Margret", "Dominique", "Socorro", "Rene", "Martina", "Margo", "Mavis", "Callie", "Bobbi", "Maritza",
                "Lucile", "Leanne", "Jeannine", "Deana", "Aileen", "Lorie", "Ladonna", "Willa", "Manuela", "Gale",
                "Selma", "Dolly", "Sybil", "Abby", "Lara", "Dale", "Ivy", "Dee", "Winnie", "Marcy", "Luisa", "Jeri",
                "Magdalena", "Ofelia", "Meagan", "Audra", "Matilda",
                "Leila", "Cornelia", "Bianca", "Simone", "Bettye", "Randi", "Virgie", "Latisha", "Barbra", "Georgina",
                "Eliza", "Leann", "Bridgette", "Rhoda", "Haley", "Adela", "Nola", "Bernadine", "Flossie", "Ila",
                "Greta", "Ruthie", "Nelda", "Minerva", "Lilly", "Terrie", "Letha", "Hilary", "Estela", "Valarie",
                "Brianna", "Rosalyn", "Earline", "Catalina", "Ava",
                "Mia", "Clarissa", "Lidia", "Corrine", "Alexandria", "Concepcion", "Tia", "Sharron", "Rae", "Dona",
                "Ericka", "Jami", "Elnora", "Chandra", "Lenore", "Neva", "Marylou", "Melisa", "Tabatha", "Serena",
                "Avis", "Allie", "Sofia", "Jeanie", "Odessa", "Nannie", "Harriett", "Loraine", "Penelope", "Milagros",
                "Emilia", "Benita", "Allyson", "Ashlee",
                "Tania", "Tommie", "Esmeralda", "Karina", "Eve", "Pearlie", "Zelma", "Malinda", "Noreen", "Tameka",
                "Saundra", "Hillary", "Amie", "Althea", "Rosalinda", "Jordan", "Lilia", "Alana", "Gay", "Clare",
                "Alejandra", "Elinor", "Michael", "Lorrie", "Jerri", "Darcy", "Earnestine", "Carmella", "Taylor",
                "Noemi", "Marcie", "Liza", "Annabelle", "Louisa",
                "Earlene", "Mallory", "Carlene", "Nita", "Selena", "Tanisha", "Katy", "Julianne", "John", "Lakisha",
                "Edwina", "Maricela", "Margery", "Kenya", "Dollie", "Roxie", "Roslyn", "Kathrine", "Nanette",
                "Charmaine", "Lavonne", "Ilene", "Kris", "Tammi", "Suzette", "Corine", "Kaye", "Jerry", "Merle",
                "Chrystal", "Lina", "Deanne", "Lilian", "Juliana",
                "Aline", "Luann", "Kasey", "Maryanne", "Evangeline", "Colette", "Melva", "Lawanda", "Yesenia", "Nadia",
                "Madge", "Kathie", "Eddie", "Ophelia", "Valeria", "Nona", "Mitzi", "Mari", "Georgette", "Claudine",
                "Fran", "Alissa", "Roseann", "Lakeisha", "Susanna", "Reva", "Deidre", "Chasity", "Sheree", "Carly",
                "James", "Elvia", "Alyce", "Deirdre",
                "Gena", "Briana", "Araceli", "Katelyn", "Rosanne", "Wendi", "Tessa", "Berta", "Marva", "Imelda",
                "Marietta", "Marci", "Leonor", "Arline", "Sasha", "Madelyn", "Janna", "Juliette", "Deena", "Aurelia",
                "Josefa", "Augusta", "Liliana", "Young", "Christian", "Lessie", "Amalia", "Savannah", "Anastasia",
                "Vilma", "Natalia", "Rosella", "Lynnette",
                "Corina", "Alfreda", "Leanna", "Carey", "Amparo", "Coleen", "Tamra", "Aisha", "Wilda", "Karyn",
                "Cherry", "Queen", "Maura", "Mai", "Evangelina", "Rosanna", "Hallie", "Erna", "Enid", "Mariana", "Lacy",
                "Juliet", "Jacklyn", "Freida", "Madeleine", "Mara", "Hester", "Cathryn", "Lelia", "Casandra",
                "Bridgett", "Angelita", "Jannie", "Dionne",
                "Annmarie", "Katina", "Beryl", "Phoebe", "Millicent", "Katheryn", "Diann", "Carissa", "Maryellen",
                "Liz", "Lauri", "Helga", "Gilda", "Adrian", "Rhea", "Marquita", "Hollie", "Tisha", "Tamera",
                "Angelique", "Francesca", "Britney", "Kaitlin", "Lolita", "Florine", "Rowena", "Reyna", "Twila",
                "Fanny", "Janell", "Ines", "Concetta", "Bertie",
                "Alba", "Brigitte", "Alyson", "Vonda", "Pansy", "Elba", "Noelle", "Letitia", "Kitty", "Deann",
                "Brandie", "Louella", "Leta", "Felecia", "Sharlene", "Lesa", "Beverley", "Robert", "Isabella",
                "Herminia", "Terra", "Celina"
        ]
    return _dictionary_cache['en_f_first']


# English last names
def get_en_last_names() -> List[str]:
    """
    Returns English last names.

    Returns
    -------
        List[str]: List of English last names
    """
    if 'en_last' not in _dictionary_cache:
        _dictionary_cache['en_last'] = [
            "Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor",
            "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin", "Thompson", "Garcia", "Martinez", "Robinson",
            "Clark", "Rodriguez", "Lewis", "Lee", "Walker", "Hall", "Allen", "Young", "Hernandez", "King", "Wright",
            "Lopez", "Hill", "Scott", "Green", "Adams",
            "Baker", "Gonzalez", "Nelson", "Carter", "Mitchell", "Perez", "Roberts", "Turner", "Phillips", "Campbell",
            "Parker", "Evans", "Edwards", "Collins", "Stewart", "Sanchez", "Morris", "Rogers", "Reed", "Cook", "Morgan",
            "Bell", "Murphy", "Bailey", "Rivera", "Cooper", "Richardson", "Cox", "Howard", "Ward", "Torres", "Peterson",
            "Gray", "Ramirez",
            "James", "Watson", "Brooks", "Kelly", "Sanders", "Price", "Bennett", "Wood", "Barnes", "Ross", "Henderson",
            "Coleman", "Jenkins", "Perry", "Powell", "Long", "Patterson", "Hughes", "Flores", "Washington", "Butler",
            "Simmons", "Foster", "Gonzales", "Bryant", "Alexander", "Russell", "Griffin", "Diaz", "Hayes", "Myers",
            "Ford", "Hamilton", "Graham",
            "Sullivan", "Wallace", "Woods", "Cole", "West", "Jordan", "Owens", "Reynolds", "Fisher", "Ellis",
            "Harrison", "Gibson", "Mcdonald", "Cruz", "Marshall", "Ortiz", "Gomez", "Murray", "Freeman", "Wells",
            "Webb", "Simpson", "Stevens", "Tucker", "Porter", "Hunter", "Hicks", "Crawford", "Henry", "Boyd", "Mason",
            "Morales", "Kennedy", "Warren",
            "Dixon", "Ramos", "Reyes", "Burns", "Gordon", "Shaw", "Holmes", "Rice", "Robertson", "Hunt", "Black",
            "Daniels", "Palmer", "Mills", "Nichols", "Grant", "Knight", "Ferguson", "Rose", "Stone", "Hawkins", "Dunn",
            "Perkins", "Hudson", "Spencer", "Gardner", "Stephens", "Payne", "Pierce", "Berry", "Matthews", "Arnold",
            "Wagner", "Willis", "Ray", "Watkins",
            "Olson", "Carroll", "Duncan", "Snyder", "Hart", "Cunningham", "Bradley", "Lane", "Andrews", "Ruiz",
            "Harper", "Fox", "Riley", "Armstrong", "Carpenter", "Weaver", "Greene", "Lawrence", "Elliott", "Chavez",
            "Sims", "Austin", "Peters", "Kelley", "Franklin", "Lawson", "Fields", "Gutierrez", "Ryan", "Schmidt",
            "Carr", "Vasquez", "Castillo",
            "Wheeler", "Chapman", "Oliver", "Montgomery", "Richards", "Williamson", "Johnston", "Banks", "Meyer",
            "Bishop", "Mccoy", "Howell", "Alvarez", "Morrison", "Hansen", "Fernandez", "Garza", "Harvey", "Little",
            "Burton", "Stanley", "Nguyen", "George", "Jacobs", "Reid", "Kim", "Fuller", "Lynch", "Dean", "Gilbert",
            "Garrett", "Romero", "Welch", "Larson",
            "Frazier", "Burke", "Hanson", "Day", "Mendoza", "Moreno", "Bowman", "Medina", "Fowler", "Brewer", "Hoffman",
            "Carlson", "Silva", "Pearson", "Holland", "Douglas", "Fleming", "Jensen", "Vargas", "Byrd", "Davidson",
            "Hopkins", "May", "Terry", "Herrera", "Wade", "Soto", "Walters", "Curtis", "Neal", "Caldwell", "Lowe",
            "Jennings", "Barnett", "Graves",
            "Jimenez", "Horton", "Shelton", "Barrett", "Obrien", "Castro", "Sutton", "Gregory", "Mckinney", "Lucas",
            "Miles", "Craig", "Rodriquez", "Chambers", "Holt", "Lambert", "Fletcher", "Watts", "Bates", "Hale",
            "Rhodes", "Pena", "Beck", "Newman", "Haynes", "Mcdaniel", "Mendez", "Bush", "Vaughn", "Parks", "Dawson",
            "Santiago", "Norris", "Hardy", "Love",
            "Steele", "Curry", "Powers", "Schultz", "Barker", "Guzman", "Page", "Munoz", "Ball", "Keller", "Chandler",
            "Weber", "Leonard", "Walsh", "Lyons", "Ramsey", "Wolfe", "Schneider", "Mullins", "Benson", "Sharp", "Bowen",
            "Daniel", "Barber", "Cummings", "Hines", "Baldwin", "Griffith", "Valdez", "Hubbard", "Salazar", "Reeves",
            "Warner", "Stevenson",
            "Burgess", "Santos", "Tate", "Cross", "Garner", "Mann", "Mack", "Moss", "Thornton", "Dennis", "Mcgee",
            "Farmer", "Delgado", "Aguilar", "Vega", "Glover", "Manning", "Cohen", "Harmon", "Rodgers", "Robbins",
            "Newton", "Todd", "Blair", "Higgins", "Ingram", "Reese", "Cannon", "Strickland", "Townsend", "Potter",
            "Goodwin", "Walton", "Rowe", "Hampton",
            "Ortega", "Patton", "Swanson", "Joseph", "Francis", "Goodman", "Maldonado", "Yates", "Becker", "Erickson",
            "Hodges", "Rios", "Conner", "Adkins", "Webster", "Norman", "Malone", "Hammond", "Flowers", "Cobb", "Moody",
            "Quinn", "Blake", "Maxwell", "Pope", "Floyd", "Osborne", "Paul", "Mccarthy", "Guerrero", "Lindsey",
            "Estrada", "Sandoval", "Gibbs",
            "Tyler", "Gross", "Fitzgerald", "Stokes", "Doyle", "Sherman", "Saunders", "Wise", "Colon", "Gill",
            "Alvarado", "Greer", "Padilla", "Simon", "Waters", "Nunez", "Ballard", "Schwartz", "Mcbride", "Houston",
            "Christensen", "Klein", "Pratt", "Briggs", "Parsons", "Mclaughlin", "Zimmerman", "French", "Buchanan",
            "Moran", "Copeland", "Roy", "Pittman",
            "Brady", "Mccormick", "Holloway", "Brock", "Poole", "Frank", "Logan", "Owen", "Bass", "Marsh", "Drake",
            "Wong", "Jefferson", "Park", "Morton", "Abbott", "Sparks", "Patrick", "Norton", "Huff", "Clayton", "Massey",
            "Lloyd", "Figueroa", "Carson", "Bowers", "Roberson", "Barton", "Tran", "Lamb", "Harrington", "Casey",
            "Boone", "Cortez", "Clarke", "Mathis",
            "Singleton", "Wilkins", "Cain", "Bryan", "Underwood", "Hogan", "Mckenzie", "Collier", "Luna", "Phelps",
            "Mcguire", "Allison", "Bridges", "Wilkerson", "Nash", "Summers", "Atkins", "Wilcox", "Pitts", "Conley",
            "Marquez", "Burnett", "Richard", "Cochran", "Chase", "Davenport", "Hood", "Gates", "Clay", "Ayala",
            "Sawyer", "Roman", "Vazquez",
            "Dickerson", "Hodge", "Acosta", "Flynn", "Espinoza", "Nicholson", "Monroe", "Wolf", "Morrow", "Kirk",
            "Randall", "Anthony", "Whitaker", "Oconnor", "Skinner", "Ware", "Molina", "Kirby", "Huffman", "Bradford",
            "Charles", "Gilmore", "Dominguez", "Oneal", "Bruce", "Lang", "Combs", "Kramer", "Heath", "Hancock",
            "Gallagher", "Gaines", "Shaffer",
            "Short", "Wiggins", "Mathews", "Mcclain", "Fischer", "Wall", "Small", "Melton", "Hensley", "Bond", "Dyer",
            "Cameron", "Grimes", "Contreras", "Christian", "Wyatt", "Baxter", "Snow", "Mosley", "Shepherd", "Larsen",
            "Hoover", "Beasley", "Glenn", "Petersen", "Whitehead", "Meyers", "Keith", "Garrison", "Vincent", "Shields",
            "Horn", "Savage",
            "Olsen", "Schroeder", "Hartman", "Woodard", "Mueller", "Kemp", "Deleon", "Booth", "Patel", "Calhoun",
            "Wiley", "Eaton", "Cline", "Navarro", "Harrell", "Lester", "Humphrey", "Parrish", "Duran", "Hutchinson",
            "Hess", "Dorsey", "Bullock", "Robles", "Beard", "Dalton", "Avila", "Vance", "Rich", "Blackwell", "York",
            "Johns", "Blankenship",
            "Trevino", "Salinas", "Campos", "Pruitt", "Moses", "Callahan", "Golden", "Montoya", "Hardin", "Guerra",
            "Mcdowell", "Carey", "Stafford", "Gallegos", "Henson", "Wilkinson", "Booker", "Merritt", "Miranda",
            "Atkinson", "Orr", "Decker", "Hobbs", "Preston", "Tanner", "Knox", "Pacheco", "Stephenson", "Glass",
            "Rojas", "Serrano", "Marks",
            "Hickman", "English", "Sweeney", "Strong", "Prince", "Mcclure", "Conway", "Walter", "Roth", "Maynard",
            "Farrell", "Lowery", "Hurst", "Nixon", "Weiss", "Trujillo", "Ellison", "Sloan", "Juarez", "Winters",
            "Mclean", "Randolph", "Leon", "Boyer", "Villarreal", "Mccall", "Gentry", "Carrillo", "Kent", "Ayers",
            "Lara", "Shannon", "Sexton", "Pace",
            "Hull", "Leblanc", "Browning", "Velasquez", "Leach", "Chang", "House", "Sellers", "Herring", "Noble",
            "Foley", "Bartlett", "Mercado", "Landry", "Durham", "Walls", "Barr", "Mckee", "Bauer", "Rivers", "Everett",
            "Bradshaw", "Pugh", "Velez", "Rush", "Estes", "Dodson", "Morse", "Sheppard", "Weeks", "Camacho", "Bean",
            "Barron", "Livingston", "Middleton",
            "Spears", "Branch", "Blevins", "Chen", "Kerr", "Mcconnell", "Hatfield", "Harding", "Ashley", "Solis",
            "Herman", "Frost", "Giles", "Blackburn", "William", "Pennington", "Woodward", "Finley", "Mcintosh", "Koch",
            "Best", "Solomon", "Mccullough", "Dudley", "Nolan", "Blanchard", "Rivas", "Brennan", "Mejia", "Kane",
            "Benton", "Joyce", "Buckley",
            "Haley", "Valentine", "Maddox", "Russo", "Mcknight", "Buck", "Moon", "Mcmillan", "Crosby", "Berg", "Dotson",
            "Mays", "Roach", "Church", "Chan", "Richmond", "Meadows", "Faulkner", "Oneill", "Knapp", "Kline", "Barry",
            "Ochoa", "Jacobson", "Gay", "Avery", "Hendricks", "Horne", "Shepard", "Hebert", "Cherry", "Cardenas",
            "Mcintyre", "Whitney", "Waller",
            "Holman", "Donaldson", "Cantu", "Terrell", "Morin", "Gillespie", "Fuentes", "Tillman", "Sanford", "Bentley",
            "Peck", "Key", "Salas", "Rollins", "Gamble", "Dickson", "Battle", "Santana", "Cabrera", "Cervantes", "Howe",
            "Hinton", "Hurley", "Spence", "Zamora", "Yang", "Mcneil", "Suarez", "Case", "Petty", "Gould", "Mcfarland",
            "Sampson", "Carver",
            "Bray", "Rosario", "Macdonald", "Stout", "Hester", "Melendez", "Dillon", "Farley", "Hopper", "Galloway",
            "Potts", "Bernard", "Joyner", "Stein", "Aguirre", "Osborn", "Mercer", "Bender", "Franco", "Rowland",
            "Sykes", "Benjamin", "Travis", "Pickett", "Crane", "Sears", "Mayo", "Dunlap", "Hayden", "Wilder", "Mckay",
            "Coffey", "Mccarty", "Ewing",
            "Cooley", "Vaughan", "Bonner", "Cotton", "Holder", "Stark", "Ferrell", "Cantrell", "Fulton", "Lynn", "Lott",
            "Calderon", "Rosa", "Pollard", "Hooper", "Burch", "Mullen", "Fry", "Riddle", "Levy", "David", "Duke",
            "Odonnell", "Guy", "Michael", "Britt", "Frederick", "Daugherty", "Berger", "Dillard", "Alston", "Jarvis",
            "Frye", "Riggs", "Chaney", "Odom",
            "Duffy", "Fitzpatrick", "Valenzuela", "Merrill", "Mayer", "Alford", "Mcpherson", "Acevedo", "Donovan",
            "Barrera", "Albert", "Cote", "Reilly", "Compton", "Raymond", "Mooney", "Mcgowan", "Craft", "Cleveland",
            "Clemons", "Wynn", "Nielsen", "Baird", "Stanton", "Snider", "Rosales", "Bright", "Witt", "Stuart", "Hays",
            "Holden", "Rutledge", "Kinney",
            "Clements", "Castaneda", "Slater", "Hahn", "Emerson", "Conrad", "Burks", "Delaney", "Pate", "Lancaster",
            "Sweet", "Justice", "Tyson", "Sharpe", "Whitfield", "Talley", "Macias", "Irwin", "Burris", "Ratliff",
            "Mccray", "Madden", "Kaufman", "Beach", "Goff", "Cash", "Bolton", "Mcfadden", "Levine", "Good", "Byers",
            "Kirkland", "Kidd", "Workman", "Carney",
            "Dale", "Mcleod", "Holcomb", "England", "Finch", "Head", "Burt", "Hendrix", "Sosa", "Haney", "Franks",
            "Sargent", "Nieves", "Downs", "Rasmussen", "Bird", "Hewitt", "Lindsay", "Le", "Foreman", "Valencia",
            "Oneil", "Delacruz", "Vinson", "Dejesus", "Hyde", "Forbes", "Gilliam", "Guthrie", "Wooten", "Huber",
            "Barlow", "Boyle", "Mcmahon", "Buckner", "Rocha", "Puckett", "Langley", "Knowles", "Cooke", "Velazquez",
            "Whitley", "Noel", "Vang"
        ]
    return _dictionary_cache['en_last']


# ----------------------- VIETNAMESE NAMES (VN) -----------------------

# Vietnamese male names
def get_vn_male_names() -> List[str]:
    """
    Returns Vietnamese male names.

    Returns
    -------
        List[str]: List of Vietnamese male names
    """
    if 'vn_m_names' not in _dictionary_cache:
        _dictionary_cache['vn_m_names'] = [
            "Nguyễn Văn An", "Trần Văn Bình", "Lê Minh Cường", "Phạm Đức Duy",
            "Hoàng Văn Đông", "Ngô Quang Hà", "Vũ Anh Hải", "Đặng Minh Hiếu",
            "Bùi Quốc Hưng", "Đỗ Mạnh Hùng", "Nguyễn Công Khanh", "Trần Minh Kiên",
            "Lê Văn Lâm", "Phạm Thanh Long", "Hoàng Văn Minh", "Ngô Đức Nam",
            "Vũ Văn Phong", "Đặng Quốc Quân", "Bùi Văn Sơn", "Đỗ Minh Tuấn",
            "Nguyễn Hữu Phúc", "Trần Hoàng Quân", "Lê Quốc Việt", "Phạm Văn Vượng",
            "Hoàng Minh Vũ", "Ngô Bá Vinh", "Vũ Đức Duy", "Đặng Văn Hùng",
            "Bùi Minh Khang", "Đỗ Anh Kiệt", "Nguyễn Hoàng Lâm", "Trần Quốc Long",
            "Lê Thanh Nam", "Phạm Anh Phong", "Hoàng Đức Quân", "Ngô Văn Sơn",
            "Vũ Minh Tuấn", "Đặng Hữu Việt", "Bùi Hoàng Vũ", "Đỗ Quốc Anh",
            "Nguyễn Thanh Bình", "Trần Minh Cường", "Lê Đức Duy", "Phạm Văn Đông",
            "Hoàng Anh Hà", "Ngô Minh Hải", "Vũ Quốc Hiếu", "Đặng Văn Hưng",
            "Bùi Đức Khanh", "Đỗ Hoàng Kiên", "Nguyễn Văn Lâm", "Trần Thanh Long",
            "Lê Minh Nam", "Phạm Quốc Quân", "Hoàng Văn Sơn", "Ngô Đức Tuấn",
            "Vũ Hữu Việt", "Đặng Hoàng Vũ", "Bùi Quốc Anh", "Đỗ Thanh Bình",
            "Nguyễn Minh Cường", "Trần Đức Duy", "Lê Văn Đông", "Phạm Anh Hà",
            "Hoàng Minh Hải", "Ngô Quốc Hiếu", "Vũ Văn Hưng", "Đặng Đức Khanh",
            "Bùi Hoàng Kiên", "Đỗ Văn Lâm", "Nguyễn Thanh Long", "Trần Minh Nam",
            "Lê Quốc Quân", "Phạm Văn Sơn", "Hoàng Đức Tuấn", "Ngô Hữu Việt",
            "Vũ Hoàng Vũ", "Đặng Quốc Anh", "Bùi Thanh Bình", "Đỗ Minh Cường",
            "Nguyễn Đức Duy", "Trần Văn Đông", "Lê Anh Hà", "Phạm Minh Hải",
            "Hoàng Quốc Hiếu", "Ngô Văn Hưng", "Vũ Đức Khanh", "Đặng Hoàng Kiên",
            "Bùi Văn Lâm", "Đỗ Thanh Long", "Nguyễn Minh Nam", "Trần Quốc Quân",
            "Lê Văn Sơn", "Phạm Đức Tuấn", "Hoàng Hữu Việt", "Ngô Hoàng Vũ",
            "Vũ Quốc Anh", "Đặng Thanh Bình", "Bùi Minh Cường", "Đỗ Đức Duy",
            "Nguyễn Văn Đông", "Trần Anh Hà", "Lê Minh Hải", "Phạm Quốc Hiếu",
            "Hoàng Văn Hưng", "Ngô Đức Khanh", "Vũ Hoàng Kiên", "Đặng Văn Lâm",
            "Bùi Thanh Long", "Đỗ Minh Nam", "Nguyễn Quốc Quân", "Trần Văn Sơn",
            "Lê Đức Tuấn", "Phạm Hữu Việt", "Hoàng Hoàng Vũ", "Ngô Quốc Anh",
            "Vũ Thanh Bình", "Đặng Minh Cường", "Bùi Đức Duy", "Đỗ Văn Đông",
            "Nguyễn Anh Hà", "Trần Minh Hải", "Lê Quốc Hiếu", "Phạm Văn Hưng",
            "Hoàng Đức Khanh", "Ngô Hoàng Kiên", "Vũ Văn Lâm", "Đặng Thanh Long",
            "Bùi Minh Nam", "Đỗ Quốc Quân", "Nguyễn Văn Sơn", "Trần Đức Tuấn",
            "Lê Hữu Việt", "Phạm Hoàng Vũ", "Hoàng Quốc Anh", "Ngô Thanh Bình",
            "Vũ Minh Cường", "Đặng Đức Duy", "Bùi Văn Đông", "Đỗ Anh Hà",
            "Nguyễn Minh Hải", "Trần Quốc Hiếu", "Lê Văn Hưng", "Phạm Đức Khanh",
            "Hoàng Hoàng Kiên", "Ngô Văn Lâm", "Vũ Thanh Long", "Đặng Minh Nam",
            "Bùi Quốc Quân", "Đỗ Văn Sơn", "Nguyễn Đức Tuấn", "Trần Hữu Việt",
            "Lê Hoàng Vũ", "Phạm Quốc Anh", "Hoàng Thanh Bình", "Ngô Minh Cường",
            "Vũ Đức Duy", "Đặng Văn Đông", "Bùi Anh Hà", "Đỗ Minh Hải",
            "Nguyễn Quốc Hiếu", "Trần Văn Hưng", "Lê Đức Khanh", "Phạm Hoàng Kiên",
            "Hoàng Văn Lâm", "Ngô Thanh Long", "Vũ Minh Nam", "Đặng Quốc Quân",
            "Bùi Văn Sơn", "Đỗ Đức Tuấn", "Nguyễn Hữu Việt", "Trần Hoàng Vũ",
            "Lê Quốc Anh", "Phạm Thanh Bình", "Hoàng Minh Cường", "Ngô Đức Duy",
            "Vũ Văn Đông", "Đặng Anh Hà", "Bùi Minh Hải", "Đỗ Quốc Hiếu",
            "Nguyễn Văn Hưng", "Trần Đức Khanh", "Lê Hoàng Kiên", "Phạm Văn Lâm",
            "Hoàng Thanh Long", "Ngô Minh Nam", "Vũ Quốc Quân", "Đặng Văn Sơn",
            "Bùi Đức Tuấn", "Đỗ Hữu Việt", "Nguyễn Hoàng Vũ", "Trần Quốc Anh",
            "Lê Thanh Bình", "Phạm Minh Cường", "Hoàng Đức Duy", "Ngô Văn Đông",
            "Vũ Anh Hà", "Đặng Minh Hải", "Bùi Quốc Hiếu", "Đỗ Văn Hưng",
            "Nguyễn Đức Khanh", "Trần Hoàng Kiên", "Lê Văn Lâm", "Phạm Thanh Long",
            "Hoàng Minh Nam", "Ngô Quốc Quân", "Vũ Văn Sơn", "Đặng Đức Tuấn",
            "Bùi Hữu Việt", "Đỗ Hoàng Vũ", "Nguyễn Quốc Anh", "Trần Thanh Bình",
            "Lê Minh Cường", "Phạm Đức Duy", "Hoàng Văn Đông", "Ngô Anh Hà",
            "Vũ Minh Hải", "Đặng Quốc Hiếu", "Bùi Văn Hưng", "Đỗ Đức Khanh",
            "Nguyễn Hoàng Kiên", "Trần Văn Lâm", "Lê Thanh Long", "Phạm Minh Nam",
            "Hoàng Quốc Quân", "Ngô Văn Sơn", "Vũ Đức Tuấn", "Đặng Hữu Việt",
            "Bùi Hoàng Vũ", "Đỗ Quốc Anh", "Nguyễn Thanh Bình", "Trần Minh Cường",
            "Lê Đức Duy", "Phạm Văn Đông", "Hoàng Anh Hà", "Ngô Minh Hải",
            "Vũ Quốc Hiếu", "Đặng Văn Hưng", "Bùi Đức Khanh", "Đỗ Hoàng Kiên",
            "Nguyễn Văn Lâm", "Trần Thanh Long", "Lê Minh Nam", "Phạm Quốc Quân",
            "Hoàng Văn Sơn", "Ngô Đức Tuấn", "Vũ Hữu Việt", "Đặng Hoàng Vũ",
            "Bùi Quốc Anh", "Đỗ Thanh Bình", "Nguyễn Minh Cường", "Trần Đức Duy",
            "Lê Văn Đông", "Phạm Anh Hà", "Hoàng Minh Hải", "Ngô Quốc Hiếu",
            "Vũ Văn Hưng", "Đặng Đức Khanh", "Bùi Hoàng Kiên", "Đỗ Văn Lâm",
            "Nguyễn Thanh Long", "Trần Minh Nam", "Lê Quốc Quân", "Phạm Văn Sơn",
            "Hoàng Đức Tuấn", "Ngô Hữu Việt", "Vũ Hoàng Vũ", "Đặng Quốc Anh",
            "Bùi Thanh Bình", "Đỗ Minh Cường", "Nguyễn Đức Duy", "Trần Văn Đông",
            "Lê Anh Hà", "Phạm Minh Hải", "Hoàng Quốc Hiếu", "Ngô Văn Hưng",
            "Vũ Đức Khanh", "Đặng Hoàng Kiên", "Bùi Văn Lâm", "Đỗ Thanh Long",
            "Nguyễn Minh Nam", "Trần Quốc Quân", "Lê Văn Sơn", "Phạm Đức Tuấn",
            "Hoàng Hữu Việt", "Ngô Hoàng Vũ", "Vũ Quốc Anh", "Đặng Thanh Bình",
            "Bùi Minh Cường", "Đỗ Đức Duy", "Nguyễn Văn Đông", "Trần Anh Hà",
            "Lê Minh Hải", "Phạm Quốc Hiếu", "Hoàng Văn Hưng", "Ngô Đức Khanh",
            "Vũ Hoàng Kiên", "Đặng Văn Lâm", "Bùi Thanh Long", "Đỗ Minh Nam",
            "Nguyễn Quốc Quân", "Trần Văn Sơn", "Lê Đức Tuấn", "Phạm Hữu Việt",
            "Hoàng Hoàng Vũ", "Ngô Quốc Anh", "Vũ Thanh Bình", "Đặng Minh Cường",
            "Bùi Đức Duy", "Đỗ Văn Đông", "Nguyễn Anh Hà", "Trần Minh Hải",
            "Lê Quốc Hiếu", "Phạm Văn Hưng", "Hoàng Đức Khanh", "Ngô Hoàng Kiên",
            "Vũ Văn Lâm", "Đặng Thanh Long", "Bùi Minh Nam", "Đỗ Quốc Quân",
            "Nguyễn Văn Sơn", "Trần Đức Tuấn", "Lê Hữu Việt", "Phạm Hoàng Vũ",
            "Hoàng Quốc Anh", "Ngô Thanh Bình", "Vũ Minh Cường", "Đặng Đức Duy",
            "Bùi Văn Đông", "Đỗ Anh Hà", "Nguyễn Minh Hải", "Trần Quốc Hiếu",
            "Lê Văn Hưng", "Phạm Đức Khanh", "Hoàng Hoàng Kiên", "Ngô Văn Lâm",
            "Vũ Thanh Long", "Đặng Minh Nam", "Bùi Quốc Quân", "Đỗ Văn Sơn",
            "Nguyễn Đức Tuấn", "Trần Hữu Việt", "Lê Hoàng Vũ", "Phạm Quốc Anh",
            "Hoàng Thanh Bình", "Ngô Minh Cường", "Vũ Đức Duy", "Đặng Văn Đông",
            "Bùi Anh Hà", "Đỗ Minh Hải", "Nguyễn Quốc Hiếu", "Trần Văn Hưng",
            "Lê Đức Khanh", "Phạm Hoàng Kiên", "Hoàng Văn Lâm", "Ngô Thanh Long",
            "Vũ Minh Nam", "Đặng Quốc Quân", "Bùi Văn Sơn", "Đỗ Đức Tuấn",
            "Nguyễn Hữu Việt", "Trần Hoàng Vũ", "Lê Quốc Anh", "Phạm Thanh Bình",
            "Hoàng Minh Cường", "Ngô Đức Duy", "Vũ Văn Đông", "Đặng Anh Hà",
            "Bùi Minh Hải", "Đỗ Quốc Hiếu", "Nguyễn Văn Hưng", "Trần Đức Khanh",
            "Lê Hoàng Kiên", "Phạm Văn Lâm", "Hoàng Thanh Long", "Ngô Minh Nam",
            "Vũ Quốc Quân", "Đặng Văn Sơn", "Bùi Đức Tuấn", "Đỗ Hữu Việt",
            "Nguyễn Hoàng Vũ", "Trần Quốc Anh", "Lê Thanh Bình", "Phạm Minh Cường",
            "Hoàng Đức Duy", "Ngô Văn Đông", "Vũ Anh Hà", "Đặng Minh Hải",
            "Bùi Quốc Hiếu", "Đỗ Văn Hưng", "Nguyễn Đức Khanh", "Trần Hoàng Kiên",
            "Lê Văn Lâm", "Phạm Thanh Long", "Hoàng Minh Nam", "Ngô Quốc Quân",
            "Vũ Văn Sơn", "Đặng Đức Tuấn", "Bùi Hữu Việt", "Đỗ Hoàng Vũ",
            "Nguyễn Quốc Anh", "Trần Thanh Bình", "Lê Minh Cường", "Phạm Đức Duy",
            "Hoàng Văn Đông", "Ngô Anh Hà", "Vũ Minh Hải", "Đặng Quốc Hiếu",
            "Bùi Văn Hưng", "Đỗ Đức Khanh", "Nguyễn Hoàng Kiên", "Trần Văn Lâm",
            "Lê Thanh Long", "Phạm Minh Nam", "Hoàng Quốc Quân", "Ngô Văn Sơn",
            "Vũ Đức Tuấn", "Đặng Hữu Việt", "Bùi Hoàng Vũ", "Đỗ Quốc Anh",
            "Nguyễn Thanh Bình", "Trần Minh Cường", "Lê Đức Duy", "Phạm Văn Đông",
            "Hoàng Anh Hà", "Ngô Minh Hải", "Vũ Quốc Hiếu", "Đặng Văn Hưng",
            "Bùi Đức Khanh", "Đỗ Hoàng Kiên", "Nguyễn Văn Lâm", "Trần Thanh Long",
            "Lê Minh Nam", "Phạm Quốc Quân", "Hoàng Văn Sơn", "Ngô Đức Tuấn",
            "Vũ Hữu Việt", "Đặng Hoàng Vũ", "Bùi Quốc Anh", "Đỗ Thanh Bình",
            "Nguyễn Minh Cường", "Trần Đức Duy", "Lê Văn Đông", "Phạm Anh Hà",
            "Hoàng Minh Hải", "Ngô Quốc Hiếu", "Vũ Văn Hưng", "Đặng Đức Khanh",
            "Bùi Hoàng Kiên", "Đỗ Văn Lâm", "Nguyễn Thanh Long", "Trần Minh Nam",
            "Lê Quốc Quân", "Phạm Văn Sơn", "Hoàng Đức Tuấn", "Ngô Hữu Việt",
            "Vũ Hoàng Vũ", "Đặng Quốc Anh", "Bùi Thanh Bình", "Đỗ Minh Cường",
            "Nguyễn Đức Duy", "Trần Văn Đông", "Lê Anh Hà", "Phạm Minh Hải",
            "Hoàng Quốc Hiếu", "Ngô Văn Hưng", "Vũ Đức Khanh", "Đặng Hoàng Kiên",
            "Bùi Văn Lâm", "Đỗ Thanh Long", "Nguyễn Minh Nam", "Trần Quốc Quân",
            "Lê Văn Sơn", "Phạm Đức Tuấn", "Hoàng Hữu Việt", "Ngô Hoàng Vũ",
            "Vũ Quốc Anh", "Đặng Thanh Bình", "Bùi Minh Cường", "Đỗ Đức Duy",
            "Nguyễn Văn Đông", "Trần Anh Hà", "Lê Minh Hải", "Phạm Quốc Hiếu",
            "Hoàng Văn Hưng", "Ngô Đức Khanh", "Vũ Hoàng Kiên", "Đặng Văn Lâm",
            "Bùi Thanh Long", "Đỗ Minh Nam", "Nguyễn Quốc Quân", "Trần Văn Sơn",
            "Lê Đức Tuấn", "Phạm Hữu Việt", "Hoàng Hoàng Vũ", "Ngô Quốc Anh",
            "Vũ Thanh Bình", "Đặng Minh Cường", "Bùi Đức Duy", "Đỗ Văn Đông",
            "Nguyễn Anh Hà", "Trần Minh Hải", "Lê Quốc Hiếu", "Phạm Văn Hưng",
            "Hoàng Đức Khanh", "Ngô Hoàng Kiên", "Vũ Văn Lâm", "Đặng Thanh Long",
            "Bùi Minh Nam", "Đỗ Quốc Quân", "Nguyễn Văn Sơn", "Trần Đức Tuấn",
            "Lê Hữu Việt", "Phạm Hoàng Vũ", "Hoàng Quốc Anh", "Ngô Thanh Bình",
            "Vũ Minh Cường", "Đặng Đức Duy", "Bùi Văn Đông", "Đỗ Anh Hà",
            "Nguyễn Minh Hải", "Trần Quốc Hiếu", "Lê Văn Hưng", "Phạm Đức Khanh",
            "Hoàng Hoàng Kiên", "Ngô Văn Lâm", "Vũ Thanh Long", "Đặng Minh Nam",
            "Bùi Quốc Quân", "Đỗ Văn Sơn", "Nguyễn Đức Tuấn", "Trần Hữu Việt",
            "Lê Hoàng Vũ", "Phạm Quốc Anh", "Hoàng Thanh Bình", "Ngô Minh Cường",
            "Vũ Đức Duy", "Đặng Văn Đông", "Bùi Anh Hà", "Đỗ Minh Hải",
            "Nguyễn Quốc Hiếu", "Trần Văn Hưng", "Lê Đức Khanh", "Phạm Hoàng Kiên",
            "Hoàng Văn Lâm", "Ngô Thanh Long", "Vũ Minh Nam", "Đặng Quốc Quân",
            "Bùi Văn Sơn", "Đỗ Đức Tuấn", "Nguyễn Hữu Việt", "Trần Hoàng Vũ",
            "Lê Quốc Anh", "Phạm Thanh Bình", "Hoàng Minh Cường", "Ngô Đức Duy",
            "Vũ Văn Đông", "Đặng Anh Hà", "Bùi Minh Hải", "Đỗ Quốc Hiếu",
            "Nguyễn Văn Hưng", "Trần Đức Khanh", "Lê Hoàng Kiên", "Phạm Văn Lâm",
            "Hoàng Thanh Long", "Ngô Minh Nam", "Vũ Quốc Quân", "Đặng Văn Sơn",
            "Bùi Đức Tuấn", "Đỗ Hữu Việt", "Nguyễn Hoàng Vũ", "Trần Quốc Anh",
            "Lê Thanh Bình", "Phạm Minh Cường", "Hoàng Đức Duy", "Ngô Văn Đông",
            "Vũ Anh Hà", "Đặng Minh Hải", "Bùi Quốc Hiếu", "Đỗ Văn Hưng",
            "Nguyễn Đức Khanh", "Trần Hoàng Kiên", "Lê Văn Lâm", "Phạm Thanh Long",
            "Hoàng Minh Nam", "Ngô Quốc Quân", "Vũ Văn Sơn", "Đặng Đức Tuấn"
        ]
    return _dictionary_cache['vn_m_names']


# Vietnamese female names
def get_vn_female_names() -> List[str]:
    """
    Returns Vietnamese female names.

    Returns
    -------
        List[str]: List of Vietnamese female names
    """
    if 'vn_f_names' not in _dictionary_cache:
        _dictionary_cache['vn_f_names'] = [
            "Nguyễn Thị An", "Trần Thị Bình", "Lê Thị Cúc", "Phạm Thị Dung",
            "Hoàng Thị Em", "Ngô Thị Gấm", "Vũ Thị Hà", "Đặng Thị Hương",
            "Bùi Thị Lan", "Đỗ Thị Mai", "Nguyễn Thị Nga", "Trần Thị Oanh",
            "Lê Thị Phượng", "Phạm Thị Quế", "Hoàng Thị Sen", "Ngô Thị Thảo",
            "Vũ Thị Trúc", "Đặng Thị Uyên", "Bùi Thị Vân", "Đỗ Thị Xuân",
            "Nguyễn Thị Yến", "Trần Thị Ánh", "Lê Thị Bích", "Phạm Thị Châu",
            "Hoàng Thị Diễm", "Ngô Thị Giang", "Vũ Thị Hoa", "Đặng Thị Kiều",
            "Bùi Thị Liễu", "Đỗ Thị Mộng", "Nguyễn Thị Ngọc", "Trần Thị Phương",
            "Lê Thị Quỳnh", "Phạm Thị Sương", "Hoàng Thị Thu", "Ngô Thị Trang",
            "Vũ Thị Tuyền", "Đặng Thị Vy", "Bùi Thị Xuyến", "Đỗ Thị Yến",
            "Nguyễn Thị Diệu", "Trần Thị Đoan", "Lê Thị Đài", "Phạm Thị Giang",
            "Hoàng Thị Hạnh", "Ngô Thị Huyền", "Vũ Thị Khánh", "Đặng Thị Linh",
            "Bùi Thị Nga", "Đỗ Thị Phương", "Nguyễn Thị Quyên", "Trần Thị Thủy",
            "Lê Thị Trinh", "Phạm Thị Tú", "Hoàng Thị Vân", "Ngô Thị Xuyến",
            "Vũ Thị Yến", "Đặng Thị Ái", "Bùi Thị Bích", "Đỗ Thị Chi",
            "Nguyễn Thị Duyên", "Trần Thị Hà", "Lê Thị Hiền", "Phạm Thị Kiều",
            "Hoàng Thị Loan", "Ngô Thị Mến", "Vũ Thị Nhài", "Đặng Thị Oanh",
            "Bùi Thị Quỳnh", "Đỗ Thị Sương", "Nguyễn Thị Thúy", "Trần Thị Tiên",
            "Lê Thị Trâm", "Phạm Thị Uyên", "Hoàng Thị Xuân", "Ngô Thị Yến",
            "Vũ Thị Ánh", "Đặng Thị Châu", "Bùi Thị Diễm", "Đỗ Thị Giang",
            "Nguyễn Thị Hoa", "Trần Thị Kiều", "Lê Thị Liễu", "Phạm Thị Mộng",
            "Hoàng Thị Ngọc", "Ngô Thị Phương", "Vũ Thị Quỳnh", "Đặng Thị Sương",
            "Bùi Thị Thu", "Đỗ Thị Trang", "Nguyễn Thị Tuyền", "Trần Thị Vy",
            "Lê Thị Xuyến", "Phạm Thị Yến", "Hoàng Thị Diệu", "Ngô Thị Đoan",
            "Vũ Thị Đài", "Đặng Thị Giang", "Bùi Thị Hạnh", "Đỗ Thị Huyền",
            "Nguyễn Thị Khánh", "Trần Thị Linh", "Lê Thị Nga", "Phạm Thị Phương",
            "Hoàng Thị Quyên", "Ngô Thị Thủy", "Vũ Thị Trinh", "Đặng Thị Tú",
            "Bùi Thị Vân", "Đỗ Thị Xuyến", "Nguyễn Thị Yến", "Trần Thị Ái",
            "Lê Thị Bích", "Phạm Thị Chi", "Hoàng Thị Duyên", "Ngô Thị Hà",
            "Vũ Thị Hiền", "Đặng Thị Kiều", "Bùi Thị Loan", "Đỗ Thị Mến",
            "Nguyễn Thị Nhài", "Trần Thị Oanh", "Lê Thị Quỳnh", "Phạm Thị Sương",
            "Hoàng Thị Thúy", "Ngô Thị Tiên", "Vũ Thị Trâm", "Đặng Thị Uyên",
            "Bùi Thị Xuân", "Đỗ Thị Yến", "Nguyễn Thị Ánh", "Trần Thị Châu",
            "Lê Thị Diễm", "Phạm Thị Giang", "Hoàng Thị Hoa", "Ngô Thị Kiều",
            "Vũ Thị Liễu", "Đặng Thị Mộng", "Bùi Thị Ngọc", "Đỗ Thị Phương",
            "Nguyễn Thị Quỳnh", "Trần Thị Sương", "Lê Thị Thu", "Phạm Thị Trang",
            "Hoàng Thị Tuyền", "Ngô Thị Vy", "Vũ Thị Xuyến", "Đặng Thị Yến",
            "Bùi Thị Diệu", "Đỗ Thị Đoan", "Nguyễn Thị Đài", "Trần Thị Giang",
            "Lê Thị Hạnh", "Phạm Thị Huyền", "Hoàng Thị Khánh", "Ngô Thị Linh",
            "Vũ Thị Nga", "Đặng Thị Phương", "Bùi Thị Quyên", "Đỗ Thị Thủy",
            "Nguyễn Thị Trinh", "Trần Thị Tú", "Lê Thị Vân", "Phạm Thị Xuyến",
            "Hoàng Thị Yến", "Ngô Thị Ái", "Vũ Thị Bích", "Đặng Thị Chi",
            "Bùi Thị Duyên", "Đỗ Thị Hà", "Nguyễn Thị Hiền", "Trần Thị Kiều",
            "Lê Thị Loan", "Phạm Thị Mến", "Hoàng Thị Nhài", "Ngô Thị Oanh",
            "Vũ Thị Quỳnh", "Đặng Thị Sương", "Bùi Thị Thúy", "Đỗ Thị Tiên",
            "Nguyễn Thị Trâm", "Trần Thị Uyên", "Lê Thị Xuân", "Phạm Thị Yến",
            "Hoàng Thị Ánh", "Ngô Thị Châu", "Vũ Thị Diễm", "Đặng Thị Giang",
            "Bùi Thị Hoa", "Đỗ Thị Kiều", "Nguyễn Thị Liễu", "Trần Thị Mộng",
            "Lê Thị Ngọc", "Phạm Thị Phương", "Hoàng Thị Quỳnh", "Ngô Thị Sương",
            "Vũ Thị Thu", "Đặng Thị Trang", "Bùi Thị Tuyền", "Đỗ Thị Vy",
            "Nguyễn Thị Xuyến", "Trần Thị Yến", "Lê Thị Diệu", "Phạm Thị Đoan",
            "Hoàng Thị Đài", "Ngô Thị Giang", "Vũ Thị Hạnh", "Đặng Thị Huyền",
            "Bùi Thị Khánh", "Đỗ Thị Linh", "Nguyễn Thị Nga", "Trần Thị Phương",
            "Lê Thị Quyên", "Phạm Thị Thủy", "Hoàng Thị Trinh", "Ngô Thị Tú",
            "Vũ Thị Vân", "Đặng Thị Xuyến", "Bùi Thị Yến", "Đỗ Thị Ái",
            "Nguyễn Thị Bích", "Trần Thị Chi", "Lê Thị Duyên", "Phạm Thị Hà",
            "Hoàng Thị Hiền", "Ngô Thị Kiều", "Vũ Thị Loan", "Đặng Thị Mến",
            "Bùi Thị Nhài", "Đỗ Thị Oanh", "Nguyễn Thị Quỳnh", "Trần Thị Sương",
            "Lê Thị Thúy", "Phạm Thị Tiên", "Hoàng Thị Trâm", "Ngô Thị Uyên",
            "Vũ Thị Xuân", "Đặng Thị Yến", "Bùi Thị Ánh", "Đỗ Thị Châu",
            "Nguyễn Thị Diễm", "Trần Thị Giang", "Lê Thị Hoa", "Phạm Thị Kiều",
            "Hoàng Thị Liễu", "Ngô Thị Mộng", "Vũ Thị Ngọc", "Đặng Thị Phương",
            "Bùi Thị Quỳnh", "Đỗ Thị Sương", "Nguyễn Thị Thu", "Trần Thị Trang",
            "Lê Thị Tuyền", "Phạm Thị Vy", "Hoàng Thị Xuyến", "Ngô Thị Yến",
            "Vũ Thị Diệu", "Đặng Thị Đoan", "Bùi Thị Đài", "Đỗ Thị Giang",
            "Nguyễn Thị Hạnh", "Trần Thị Huyền", "Lê Thị Khánh", "Phạm Thị Linh",
            "Hoàng Thị Nga", "Ngô Thị Phương", "Vũ Thị Quyên", "Đặng Thị Thủy",
            "Bùi Thị Trinh", "Đỗ Thị Tú", "Nguyễn Thị Vân", "Trần Thị Xuyến",
            "Lê Thị Yến", "Phạm Thị Ái", "Hoàng Thị Bích", "Ngô Thị Chi",
            "Vũ Thị Duyên", "Đặng Thị Hà", "Bùi Thị Hiền", "Đỗ Thị Kiều",
            "Nguyễn Thị Loan", "Trần Thị Mến", "Lê Thị Nhài", "Phạm Thị Oanh",
            "Hoàng Thị Quỳnh", "Ngô Thị Sương", "Vũ Thị Thúy", "Đặng Thị Tiên",
            "Bùi Thị Trâm", "Đỗ Thị Uyên", "Nguyễn Thị Xuân", "Trần Thị Yến",
            "Lê Thị Ánh", "Phạm Thị Châu", "Hoàng Thị Diễm", "Ngô Thị Giang",
            "Vũ Thị Hoa", "Đặng Thị Kiều", "Bùi Thị Liễu", "Đỗ Thị Mộng",
            "Nguyễn Thị Ngọc", "Trần Thị Phương", "Lê Thị Quỳnh", "Phạm Thị Sương",
            "Hoàng Thị Thu", "Ngô Thị Trang", "Vũ Thị Tuyền", "Đặng Thị Vy",
            "Bùi Thị Xuyến", "Đỗ Thị Yến", "Nguyễn Thị Diệu", "Trần Thị Đoan",
            "Lê Thị Đài", "Phạm Thị Giang", "Hoàng Thị Hạnh", "Ngô Thị Huyền",
            "Vũ Thị Khánh", "Đặng Thị Linh", "Bùi Thị Nga", "Đỗ Thị Phương",
            "Nguyễn Thị Quyên", "Trần Thị Thủy", "Lê Thị Trinh", "Phạm Thị Tú",
            "Hoàng Thị Vân", "Ngô Thị Xuyến", "Vũ Thị Yến", "Đặng Thị Ái",
            "Bùi Thị Bích", "Đỗ Thị Chi", "Nguyễn Thị Duyên", "Trần Thị Hà",
            "Lê Thị Hiền", "Phạm Thị Kiều", "Hoàng Thị Loan", "Ngô Thị Mến",
            "Vũ Thị Nhài", "Đặng Thị Oanh", "Bùi Thị Quỳnh", "Đỗ Thị Sương",
            "Nguyễn Thị Thúy", "Trần Thị Tiên", "Lê Thị Trâm", "Phạm Thị Uyên",
            "Hoàng Thị Xuân", "Ngô Thị Yến", "Vũ Thị Ánh", "Đặng Thị Châu",
            "Bùi Thị Diễm", "Đỗ Thị Giang", "Nguyễn Thị Hoa", "Trần Thị Kiều",
            "Lê Thị Liễu", "Phạm Thị Mộng", "Hoàng Thị Ngọc", "Ngô Thị Phương",
            "Vũ Thị Quỳnh", "Đặng Thị Sương", "Bùi Thị Thu", "Đỗ Thị Trang",
            "Nguyễn Thị Tuyền", "Trần Thị Vy", "Lê Thị Xuyến", "Phạm Thị Yến",
            "Hoàng Thị Diệu", "Ngô Thị Đoan", "Vũ Thị Đài", "Đặng Thị Giang",
            "Bùi Thị Hạnh", "Đỗ Thị Huyền", "Nguyễn Thị Khánh", "Trần Thị Linh",
            "Lê Thị Nga", "Phạm Thị Phương", "Hoàng Thị Quyên", "Ngô Thị Thủy",
            "Vũ Thị Trinh", "Đặng Thị Tú", "Bùi Thị Vân", "Đỗ Thị Xuyến",
            "Nguyễn Thị Yến", "Trần Thị Ái", "Lê Thị Bích", "Phạm Thị Chi",
            "Hoàng Thị Duyên", "Ngô Thị Hà", "Vũ Thị Hiền", "Đặng Thị Kiều",
            "Bùi Thị Loan", "Đỗ Thị Mến", "Nguyễn Thị Nhài", "Trần Thị Oanh",
            "Lê Thị Quỳnh", "Phạm Thị Sương", "Hoàng Thị Thúy", "Ngô Thị Tiên",
            "Vũ Thị Trâm", "Đặng Thị Uyên", "Bùi Thị Xuân", "Đỗ Thị Yến",
            "Nguyễn Thị Ánh", "Trần Thị Châu", "Lê Thị Diễm", "Phạm Thị Giang",
            "Hoàng Thị Hoa", "Ngô Thị Kiều", "Vũ Thị Liễu", "Đặng Thị Mộng",
            "Bùi Thị Ngọc", "Đỗ Thị Phương", "Nguyễn Thị Quỳnh", "Trần Thị Sương",
            "Lê Thị Thu", "Phạm Thị Trang", "Hoàng Thị Tuyền", "Ngô Thị Vy",
            "Vũ Thị Xuyến", "Đặng Thị Yến", "Bùi Thị Diệu", "Đỗ Thị Đoан",
            "Nguyễn Thị Đài", "Trần Thị Giang", "Lê Thị Hạnh", "Phạm Thị Huyền",
            "Hoàng Thị Khánh", "Ngô Thị Linh", "Vũ Thị Nga", "Đặng Thị Phương",
            "Bùi Thị Quyên", "Đỗ Thị Thủy", "Nguyễn Thị Trinh", "Trần Thị Tú",
            "Lê Thị Vân", "Phạm Thị Xuyến", "Hoàng Thị Yến", "Ngô Thị Ái",
            "Vũ Thị Bích", "Đặng Thị Chi", "Bùi Thị Duyên", "Đỗ Thị Hà",
            "Nguyễn Thị Hiền", "Trần Thị Kiều", "Lê Thị Loan", "Phạm Thị Mến",
            "Hoàng Thị Nhài", "Ngô Thị Oanh", "Vũ Thị Quỳnh", "Đặng Thị Sương",
            "Bùi Thị Thúy", "Đỗ Thị Tiên", "Nguyễn Thị Trâm", "Trần Thị Uyên",
            "Lê Thị Xuân", "Phạm Thị Yến", "Hoàng Thị Ánh", "Ngô Thị Châu",
            "Vũ Thị Diễm", "Đặng Thị Giang", "Bùi Thị Hoa", "Đỗ Thị Kiều",
            "Nguyễn Thị Liễu", "Trần Thị Mộng", "Lê Thị Ngọc", "Phạm Thị Phương",
            "Hoàng Thị Quỳnh", "Ngô Thị Sương", "Vũ Thị Thu", "Đặng Thị Trang",
            "Bùi Thị Tuyền", "Đỗ Thị Vy", "Nguyễn Thị Xuyến", "Trần Thị Yến",
            "Lê Thị Diệu", "Phạm Thị Đoan", "Hoàng Thị Đài", "Ngô Thị Giang",
            "Vũ Thị Hạnh", "Đặng Thị Huyền", "Bùi Thị Khánh", "Đỗ Thị Linh",
            "Nguyễn Thị Nga", "Trần Thị Phương", "Lê Thị Quyên", "Phạm Thị Thủy",
            "Hoàng Thị Trinh", "Ngô Thị Tú", "Vũ Thị Vân", "Đặng Thị Xuyến",
            "Bùi Thị Yến", "Đỗ Thị Ái", "Nguyễn Thị Bích", "Trần Thị Chi",
            "Lê Thị Duyên", "Phạm Thị Hà", "Hoàng Thị Hiền", "Ngô Thị Kiều",
            "Vũ Thị Loan", "Đặng Thị Mến", "Bùi Thị Nhài", "Đỗ Thị Oanh",
            "Nguyễn Thị Quỳnh", "Trần Thị Sương", "Lê Thị Thúy", "Phạm Thị Tiên",
            "Hoàng Thị Trâm", "Ngô Thị Uyên", "Vũ Thị Xuân", "Đặng Thị Yến",
            "Bùi Thị Ánh", "Đỗ Thị Châu", "Nguyễn Thị Diễm", "Trần Thị Giang",
            "Lê Thị Hoa", "Phạm Thị Kiều", "Hoàng Thị Liễu", "Ngô Thị Mộng",
            "Vũ Thị Ngọc", "Đặng Thị Phương", "Bùi Thị Quỳnh", "Đỗ Thị Sương",
            "Nguyễn Thị Thu", "Trần Thị Trang", "Lê Thị Tuyền", "Phạm Thị Vy",
            "Hoàng Thị Xuyến", "Ngô Thị Yến", "Vũ Thị Diệu", "Đặng Thị Đoan",
            "Bùi Thị Đài", "Đỗ Thị Giang", "Nguyễn Thị Hạnh", "Trần Thị Huyền",
            "Lê Thị Khánh", "Phạm Thị Linh", "Hoàng Thị Nga", "Ngô Thị Phương",
            "Vũ Thị Quyên", "Đặng Thị Thủy", "Bùi Thị Trinh", "Đỗ Thị Tú",
            "Nguyễn Thị Vân", "Trần Thị Xuyến", "Lê Thị Yến", "Phạm Thị Ái",
            "Hoàng Thị Bích", "Ngô Thị Chi", "Vũ Thị Duyên", "Đặng Thị Hà",
            "Bùi Thị Hiền", "Đỗ Thị Kiều", "Nguyễn Thị Loan", "Trần Thị Mến",
            "Lê Thị Nhài", "Phạm Thị Oanh", "Hoàng Thị Quỳnh", "Ngô Thị Sương",
            "Vũ Thị Thúy", "Đặng Thị Tiên", "Bùi Thị Trâm", "Đỗ Thị Uyên",
            "Nguyễn Thị Xuân", "Trần Thị Yến", "Lê Thị Ánh", "Phạm Thị Châu",
            "Hoàng Thị Diễm", "Ngô Thị Giang", "Vũ Thị Hoa", "Đặng Thị Kiều"
        ]
    return _dictionary_cache['vn_f_names']


# ----------------------- PUBLIC API -----------------------

def get_names(language: str = "ru",
              gender: Optional[str] = None,
              name_type: str = "first_name") -> List[str]:
    """
    Get names based on language, gender, and name type.

    Parameters
    ----------
        language: Language code ("ru", "en", "vn")
        gender: Gender code ("M", "F" or None)
        name_type: Type of name ("first_name", "last_name", "middle_name", "full_name")

    Returns
    -------
        List[str]: List of names matching the criteria
    """
    language = language.lower()
    gender_normalized = gender.upper() if gender else None

    # Russian names
    if language == "ru":
        if name_type == "first_name":
            if gender_normalized == "M":
                return get_ru_male_first_names()
            elif gender_normalized == "F":
                return get_ru_female_first_names()
            else:
                return get_ru_male_first_names() + get_ru_female_first_names()
        elif name_type == "last_name":
            if gender_normalized == "M":
                return get_ru_male_last_names()
            elif gender_normalized == "F":
                return get_ru_female_last_names()
            else:
                return get_ru_male_last_names() + get_ru_female_last_names()
        elif name_type == "middle_name":
            if gender_normalized == "M":
                return get_ru_male_middle_names()
            elif gender_normalized == "F":
                return get_ru_female_middle_names()
            else:
                return get_ru_male_middle_names() + get_ru_female_middle_names()

    # English names
    elif language in ["en", "us", "gb"]:
        if name_type == "first_name":
            if gender_normalized == "M":
                return get_en_male_first_names()
            elif gender_normalized == "F":
                return get_en_female_first_names()
            else:
                return get_en_male_first_names() + get_en_female_first_names()
        elif name_type == "last_name":
            return get_en_last_names()

    # Vietnamese names
    elif language in ["vn", "vi"]:
        if name_type == "full_name":
            if gender_normalized == "M":
                return get_vn_male_names()
            elif gender_normalized == "F":
                return get_vn_female_names()
            else:
                return get_vn_male_names() + get_vn_female_names()

    # Return empty list if no matching dictionary found
    return []


def clear_cache():
    """
    Clears the dictionary cache to free memory.
    """
    global _dictionary_cache
    _dictionary_cache = {}