# /**********************************************************************************************
# * 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. 
# ************************************************************************************************/

# KUWAIT_names.properties # Level 0
KWT = Kuwait

# Level 1 (admin 1 = e.g., state)
KW-K = Kuwait

# Level 2 (admin 2 = e.g., country)
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060001 = KWT.L2.1 ). 
KW-K-G060001 = KW-K-G060001
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060003 = KWT.L2.2 ). 
KW-K-G060003 = KW-K-G060003
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060004 = KWT.L2.3 ). 
KW-K-G060004 = KW-K-G060004
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060005 = KWT.L2.4 ). 
KW-K-G060005 = KW-K-G060005
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060006 = KWT.L2.5 ). 
KW-K-G060006 = KW-K-G060006
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060007 = KWT.L2.6 ). 
KW-K-G060007 = KW-K-G060007
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060008 = KWT.L2.7 ). 
KW-K-G060008 = KW-K-G060008
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060009 = KWT.L2.8 ). 
KW-K-G060009 = KW-K-G060009
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060010 = KWT.L2.9 ). 
KW-K-G060010 = KW-K-G060010
# Generated key details :  Level 1 ( KW-K = KUWAIT ). Level 2 ( 060002 = KWT.L2.10 ). 
KW-K-G060002 = KW-K-G060002
