# /**********************************************************************************************
# * Key Format: 
# * 
# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
# *
# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
# * a level 1 administration. 
# ************************************************************************************************/

# KYRGYZSTAN_names.properties # Level 0
KGZ = Kyrgyzstan

# Level 1 (admin 1 = e.g., state)
KG-ISK = Issyk-Kul
KG-KIT = Kirghizistan Territories
KG-O = Osh

# Level 2 (admin 2 = e.g., country)
# Generated key details :  Level 1 ( KG-KIT = KIRGHIZISTAN TERRITORIES ). Level 2 ( 060001 = KGZ.L2.1 ). 
KG-KIT-G060001 = KG-KIT-G060001
# Generated key details :  Level 1 ( KG-ISK = ISSYK KUL ). Level 2 ( 040001 = KGZ.L2.2 ). 
KG-ISK-G040001 = KG-ISK-G040001
# Generated key details :  Level 1 ( KG-O = OSH ). Level 2 ( 080001 = KGZ.L2.3 ). 
KG-O-G080001 = KG-O-G080001
