local p = {}
local format = mw.ustring.format

-- Countries with separate state modules --
local countriesWithStates = {}
--- Canada ---
local CAN = {'AB', 'BC', 'MB', 'NB', 'NL', 'NS', 'NT', 'NU', 'ON', 'PE', 'QC', 'SK', 'YT'}

countriesWithStates.CAN = CAN

--- United States ---
local USA = {'AK', 'AL', 'AR', 'AS', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', 'GU', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS',
             'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VI', 'VT', 'WA', 'WI', 'WV', 'WY'}

countriesWithStates.USA = USA

-- Countries without separate state modules --

local countries = {'HKG'}

-- Processing --

for country, states in pairs(countriesWithStates) do
	local countryTable = {}
	p[country] = countryTable
	for _, state in pairs(states) do
		countryTable[state] = format("Module:Road data/strings/%s/%s", country, state)
	end
end

for _, country in pairs(countries) do
	p[country] = format("Module:Road data/strings/%s", country)
end

return p