Yacine Jernite commited on
Commit
bcc2d25
1 Parent(s): f9ce8c3

make initial commit

Browse files
app.py ADDED
@@ -0,0 +1,303 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ import streamlit as st
4
+ from datasets import load_dataset
5
+ from streamlit_folium import folium_static
6
+
7
+ from catalogue import make_choro_map, region_tree
8
+
9
+ ##################
10
+ ## streamlit
11
+ ##################
12
+ st.set_page_config(
13
+ page_title="BigScience Language Resource Catalogue Input Form",
14
+ page_icon="https://avatars.githubusercontent.com/u/82455566",
15
+ layout="wide",
16
+ initial_sidebar_state="auto",
17
+ )
18
+
19
+ query_params = st.experimental_get_query_params()
20
+
21
+
22
+ def main():
23
+ if "save_state" not in st.session_state:
24
+ st.session_state.save_state = {}
25
+
26
+ viz_page()
27
+
28
+
29
+ ##################
30
+ ## SECTION: Explore the current catalogue
31
+ ##################
32
+
33
+ app_categories = {
34
+ "entry_types": {
35
+ "primary": "Primary source",
36
+ "processed": "Processed language dataset",
37
+ "organization": "Language organization or advocate",
38
+ },
39
+ "language_lists": json.load(
40
+ open("resources/language_lists.json", encoding="utf-8")
41
+ ),
42
+ "programming_languages": [
43
+ x
44
+ for x in json.load(
45
+ open("resources/programming_languages.json", encoding="utf-8")
46
+ )["itemListElement"]
47
+ ],
48
+ "languages_bcp47": [
49
+ x
50
+ for x in json.load(open("resources/bcp47.json", encoding="utf-8"))["subtags"]
51
+ if x["type"] == "language"
52
+ ],
53
+ "custodian_types": [
54
+ "A private individual",
55
+ "A commercial entity",
56
+ "A library, museum, or archival institute",
57
+ "A university or research institution",
58
+ "A nonprofit/NGO (other)",
59
+ "A government organization",
60
+ ],
61
+ "pii_categories": json.load(
62
+ open("resources/pii_categories.json", encoding="utf-8")
63
+ ),
64
+ "licenses": json.load(open("resources/licenses.json", encoding="utf-8")),
65
+ "primary_taxonomy": json.load(
66
+ open("resources/primary_source_taxonomy.json", encoding="utf-8")
67
+ ),
68
+ "file_formats": json.load(open("resources/file_formats.json", encoding="utf-8")),
69
+ }
70
+
71
+
72
+ def filter_entry(entry, filter_dct):
73
+ res = True
74
+ for k, v in entry.items():
75
+ if k in filter_dct:
76
+ if isinstance(v, dict):
77
+ res = res and filter_entry(v, filter_dct[k])
78
+ elif isinstance(v, list):
79
+ res = res and (
80
+ len(filter_dct[k]) == 0 or any([e in filter_dct[k] for e in v])
81
+ )
82
+ else:
83
+ res = res and (len(filter_dct[k]) == 0 or v in filter_dct[k])
84
+ return res
85
+
86
+
87
+ def filter_catalogue_visualization(catalogue, options):
88
+ st.markdown("### Select entries to visualize")
89
+ st.markdown(
90
+ "##### Select entries by category, language, type of custodian or media"
91
+ )
92
+ st.markdown(
93
+ "You can select specific parts of the catalogue to visualize in this window."
94
+ + " Leave a field empty to select all values, or select specific options to only select entries that have one of the chosen values."
95
+ )
96
+ filter_by_options = [
97
+ "resource type",
98
+ "language names",
99
+ "custodian type",
100
+ "available for download",
101
+ "license type",
102
+ "source type",
103
+ "media type",
104
+ ]
105
+ filter_by = st.multiselect(
106
+ key="viz_filter_by",
107
+ label="You can filter the catalogue to only visualize entries that have certain properties, such as:",
108
+ options=filter_by_options,
109
+ )
110
+ filter_dict = {}
111
+ if "resource type" in filter_by:
112
+ filter_dict["type"] = st.multiselect(
113
+ key="viz_filter_type",
114
+ label="I want to only see entries that are of the following category:",
115
+ options=options["entry_types"],
116
+ format_func=lambda x: options["entry_types"][x],
117
+ )
118
+ if "language names" in filter_by:
119
+ filter_dict["languages"] = {}
120
+ filter_dict["languages"]["language_names"] = st.multiselect(
121
+ key="viz_filter_languages_language_names",
122
+ label="I want to only see entries that have one of the following languages:",
123
+ options=list(options["language_lists"]["language_groups"].keys())
124
+ + options["language_lists"]["niger_congo_languages"]
125
+ + options["language_lists"]["indic_languages"],
126
+ )
127
+ if "custodian type" in filter_by:
128
+ filter_dict["custodian"] = {}
129
+ filter_dict["custodian"]["type"] = st.multiselect(
130
+ key="viz_filter_custodian_type",
131
+ label="I want to only see entries that corresponds to organizations or to data that id owned/managed by organizations of the following types:",
132
+ options=options["custodian_types"],
133
+ )
134
+ if "available for download" in filter_by:
135
+ filter_dict["availability"] = filter_dict.get("availability", {})
136
+ filter_dict["availability"]["procurement"] = {}
137
+ download_options = [
138
+ "No - but the current owners/custodians have contact information for data queries",
139
+ "No - we would need to spontaneously reach out to the current owners/custodians",
140
+ "Yes - it has a direct download link or links",
141
+ "Yes - after signing a user agreement",
142
+ ]
143
+ filter_dict["availability"]["procurement"]["for_download"] = st.multiselect(
144
+ key="viz_availability_procurement_for_download",
145
+ label="Select based on whether the data can be obtained online:",
146
+ options=download_options,
147
+ )
148
+ if "license type" in filter_by:
149
+ filter_dict["availability"] = filter_dict.get("availability", {})
150
+ filter_dict["availability"]["licensing"] = {}
151
+ filter_dict["availability"]["licensing"]["license_properties"] = st.multiselect(
152
+ key="viz_availability_licensing_license_properties",
153
+ label="Select primary entries that have the following license types",
154
+ options=[
155
+ "public domain",
156
+ "multiple licenses",
157
+ "copyright - all rights reserved",
158
+ "open license",
159
+ "research use",
160
+ "non-commercial use",
161
+ "do not distribute",
162
+ ],
163
+ )
164
+ primary_license_options = [
165
+ "Unclear / I don't know",
166
+ "Yes - the source material has an open license that allows re-use",
167
+ "Yes - the dataset has the same license as the source material",
168
+ "Yes - the dataset curators have obtained consent from the source material owners",
169
+ "No - the license of the source material actually prohibits re-use in this manner",
170
+ ]
171
+ filter_dict["processed_from_primary"] = filter_dict.get(
172
+ "processed_from_primary", {}
173
+ )
174
+ filter_dict["processed_from_primary"]["primary_license"] = st.multiselect(
175
+ key="viz_processed_from_primary_primary_license",
176
+ label="For datasets, selected based on: Is the license or commercial status of the source material compatible with the license of the dataset?",
177
+ options=primary_license_options,
178
+ )
179
+ if "source type" in filter_by:
180
+ filter_dict["source_category"] = {}
181
+ filter_dict["source_category"]["category_type"] = st.multiselect(
182
+ key="viz_source_category_category_type",
183
+ label="Select primary sources that correspond to:",
184
+ options=["collection", "website"],
185
+ )
186
+ filter_dict["source_category"]["category_web"] = st.multiselect(
187
+ key="viz_source_category_category_web",
188
+ label="Select web-based primary sources that contain:",
189
+ options=options["primary_taxonomy"]["website"],
190
+ )
191
+ filter_dict["source_category"]["category_media"] = st.multiselect(
192
+ key="viz_source_category_category_media",
193
+ label="Select primary sources that are collections of:",
194
+ options=options["primary_taxonomy"]["collection"],
195
+ )
196
+ filter_dict["processed_from_primary"] = filter_dict.get(
197
+ "processed_from_primary", {}
198
+ )
199
+ filter_dict["processed_from_primary"]["primary_types"] = st.multiselect(
200
+ key="viz_processed_from_primary_primary_types",
201
+ label="Select processed datasets whose primary sources contain:",
202
+ options=[f"web | {w}" for w in options["primary_taxonomy"]["website"]]
203
+ + options["primary_taxonomy"]["collection"],
204
+ )
205
+ if "media type" in filter_by:
206
+ filter_dict["media"] = {}
207
+ filter_dict["media"]["category"] = st.multiselect(
208
+ key="viz_media_category",
209
+ label="Select language data resources that contain:",
210
+ options=["text", "audiovisual", "image"],
211
+ help="Media data provided with transcription should go into **text**, then select the *transcribed* option. PDFs that have pre-extracted text information should go into **text**, PDFs that need OCR should go into **images**, select the latter if you're unsure",
212
+ )
213
+ filtered_catalogue = [
214
+ entry
215
+ for entry in catalogue
216
+ if filter_entry(entry, filter_dict) and not (entry["uid"] == "")
217
+ ]
218
+ st.markdown(
219
+ f"##### Your query matched **{len(filtered_catalogue)}** entries in the current catalogue."
220
+ )
221
+ return filtered_catalogue
222
+
223
+
224
+ def viz_page():
225
+ st.title("🌸 - BigScience Catalog of Language Resources")
226
+ st.markdown("---\n")
227
+ catalogue = load_dataset("bigscience/collaborative_catalog")["train"]
228
+ with st.sidebar:
229
+ filtered_catalogue = filter_catalogue_visualization(catalogue, app_categories)
230
+ entry_location_type = st.radio(
231
+ label="I want to visualize",
232
+ options=[
233
+ "Where the organizations or data custodians are located",
234
+ "Where the language data creators are located",
235
+ ],
236
+ key="viz_show_location_type",
237
+ )
238
+ show_by_org = (
239
+ entry_location_type
240
+ == "Where the organizations or data custodians are located"
241
+ )
242
+ with st.expander("Map of entries", expanded=True):
243
+ filtered_counts = {}
244
+ for entry in filtered_catalogue:
245
+ locations = (
246
+ [entry["custodian"]["location"]]
247
+ if show_by_org
248
+ else entry["languages"]["language_locations"]
249
+ )
250
+ # be as specific as possible
251
+ locations = [
252
+ loc
253
+ for loc in locations
254
+ if not any([l in region_tree.get(loc, []) for l in locations])
255
+ ]
256
+ for loc in locations:
257
+ filtered_counts[loc] = filtered_counts.get(loc, 0) + 1
258
+ world_map = make_choro_map(filtered_counts)
259
+ folium_static(world_map, width=1150, height=600)
260
+ with st.expander("View selected resources", expanded=False):
261
+ st.write("You can further select locations to select entries from here:")
262
+ filter_region_choices = sorted(
263
+ set(
264
+ [
265
+ loc
266
+ for entry in filtered_catalogue
267
+ for loc in (
268
+ [entry["custodian"]["location"]]
269
+ if show_by_org
270
+ else entry["languages"]["language_locations"]
271
+ )
272
+ ]
273
+ )
274
+ )
275
+ filter_locs = st.multiselect(
276
+ "View entries from the following locations:",
277
+ options=filter_region_choices,
278
+ key="viz_select_location",
279
+ )
280
+ filter_loc_dict = (
281
+ {"custodian": {"location": filter_locs}}
282
+ if show_by_org
283
+ else {"languages": {"language_locations": filter_locs}}
284
+ )
285
+ filtered_catalogue_by_loc = [
286
+ entry
287
+ for entry in filtered_catalogue
288
+ if filter_entry(entry, filter_loc_dict)
289
+ ]
290
+ view_entry = st.selectbox(
291
+ label="Select an entry to see more detail:",
292
+ options=filtered_catalogue_by_loc,
293
+ format_func=lambda entry: f"{entry['uid']} | {entry['description']['name']} -- {entry['description']['description']}",
294
+ key="viz_select_entry",
295
+ )
296
+ st.markdown(
297
+ f"##### *Type:* {view_entry['type']} *UID:* {view_entry['uid']} - *Name:* {view_entry['description']['name']}\n\n{view_entry['description']['description']}"
298
+ )
299
+ st.write(view_entry)
300
+
301
+
302
+ if __name__ == "__main__":
303
+ main()
catalogue/__init__.py ADDED
@@ -0,0 +1 @@
 
1
+ from .geography import countries, make_choro_map, region_tree
catalogue/geography.py ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ import folium
4
+ import pandas as pd
5
+ from folium import Marker
6
+ from folium.plugins import MarkerCluster
7
+ from jinja2 import Template
8
+
9
+ regions, countries, region_tree = json.load(
10
+ open("resources/country_regions.json", encoding="utf-8")
11
+ )
12
+ country_centers = json.load(
13
+ open("resources/country_center_coordinates.json", encoding="utf-8")
14
+ )
15
+ country_mappings = json.load(open("resources/country_mappings.json", encoding="utf-8"))
16
+
17
+ WORLD_GEO_URL = "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/world-countries.json"
18
+
19
+ ICON_CREATE_FUNCTIOM = """
20
+ function(cluster) {
21
+ var markers = cluster.getAllChildMarkers();
22
+ var sum = 0;
23
+ for (var i = 0; i < markers.length; i++) {
24
+ sum += markers[i].options.props.resources;
25
+ }
26
+
27
+ return L.divIcon({
28
+ html: '<b>' + sum + '</b>',
29
+ className: 'marker-cluster marker-cluster-small',
30
+ iconSize: new L.Point(20, 20)
31
+ });
32
+ }
33
+ """
34
+
35
+
36
+ class MarkerWithProps(Marker):
37
+ _template = Template(
38
+ """
39
+ {% macro script(this, kwargs) %}
40
+ var {{this.get_name()}} = L.marker(
41
+ [{{this.location[0]}}, {{this.location[1]}}],
42
+ {
43
+ icon: new L.Icon.Default(),
44
+ {%- if this.draggable %}
45
+ draggable: true,
46
+ autoPan: true,
47
+ {%- endif %}
48
+ {%- if this.props %}
49
+ props : {{ this.props }}
50
+ {%- endif %}
51
+ }
52
+ )
53
+ .addTo({{this._parent.get_name()}});
54
+ {% endmacro %}
55
+ """
56
+ )
57
+
58
+ def __init__(
59
+ self, location, popup=None, tooltip=None, icon=None, draggable=False, props=None
60
+ ):
61
+ super(MarkerWithProps, self).__init__(
62
+ location=location,
63
+ popup=popup,
64
+ tooltip=tooltip,
65
+ icon=icon,
66
+ draggable=draggable,
67
+ )
68
+ self.props = json.loads(json.dumps(props))
69
+
70
+
71
+ def get_region_center(region_name):
72
+ latitudes = []
73
+ longitudes = []
74
+ for name in region_tree[region_name]:
75
+ if name in region_tree:
76
+ region_latitudes, region_longitudes = get_region_center(name)
77
+ latitudes += region_latitudes
78
+ longitudes += region_longitudes
79
+ elif name in country_centers or name in country_mappings["to_center"]:
80
+ country_center = country_centers[
81
+ country_mappings["to_center"].get(name, name)
82
+ ]
83
+ latitudes += [float(country_center["latitude"])]
84
+ longitudes += [float(country_center["longitude"])]
85
+ return latitudes, longitudes
86
+
87
+
88
+ def get_region_countries(region_name):
89
+ countries = []
90
+ for name in region_tree[region_name]:
91
+ if name in region_tree:
92
+ countries += get_region_countries(name)
93
+ else:
94
+ countries += [name]
95
+ return countries
96
+
97
+
98
+ def make_choro_map(resource_counts, marker_thres=0):
99
+ world_map = folium.Map(tiles="cartodbpositron", location=[0, 0], zoom_start=1.5)
100
+ marker_cluster = MarkerCluster(icon_create_function=ICON_CREATE_FUNCTIOM)
101
+ marker_cluster.add_to(world_map)
102
+ for name, count in resource_counts.items():
103
+ if name in country_centers or name in country_mappings["to_center"]:
104
+ country_center = country_centers[
105
+ country_mappings["to_center"].get(name, name)
106
+ ]
107
+ MarkerWithProps(
108
+ location=[country_center["latitude"], country_center["longitude"]],
109
+ popup=f"{'Region' if name in region_tree else 'Country'} : {name}<br> \n Resources : {count} <br>",
110
+ props={"name": name, "resources": count},
111
+ ).add_to(marker_cluster)
112
+ # put a pin at the center of the region
113
+ elif name in region_tree:
114
+ latitudes, longitudes = get_region_center(name)
115
+ if len(latitudes) > 0:
116
+ lat = sum(latitudes) / len(latitudes)
117
+ lon = sum(longitudes) / len(longitudes)
118
+ MarkerWithProps(
119
+ location=[lat, lon],
120
+ popup=f"{'Region' if name in region_tree else 'Country'} : {name}<br> \n Resources : {count} <br>",
121
+ props={"name": name, "resources": count},
122
+ ).add_to(marker_cluster)
123
+ # for choropleth, add counts to all countries in a region
124
+ choropleth_counts = {}
125
+ for loc_name in list(resource_counts.keys()):
126
+ if loc_name in region_tree:
127
+ for country_name in get_region_countries(loc_name):
128
+ choropleth_counts[country_name] = (
129
+ choropleth_counts.get(country_name, 0) + resource_counts[loc_name]
130
+ )
131
+ else:
132
+ choropleth_counts[loc_name] = (
133
+ choropleth_counts.get(loc_name, 0) + resource_counts[loc_name]
134
+ )
135
+ df_resource_counts = pd.DataFrame(
136
+ [
137
+ (country_mappings["to_outline"].get(n, n), c)
138
+ for n, c in choropleth_counts.items()
139
+ ],
140
+ columns=["Name", "Resources"],
141
+ )
142
+ folium.Choropleth(
143
+ geo_data=WORLD_GEO_URL,
144
+ name="resource map",
145
+ data=df_resource_counts,
146
+ columns=["Name", "Resources"],
147
+ key_on="feature.properties.name",
148
+ fill_color="PuRd",
149
+ nan_fill_color="white",
150
+ ).add_to(world_map)
151
+ return world_map
resources/.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
1
+ */*.jsonl
2
+
resources/bcp47.json ADDED
The diff for this file is too large to render. See raw diff
resources/country_center_coordinates.json ADDED
@@ -0,0 +1,1237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Andorra": {
3
+ "latitude": "42.546245",
4
+ "longitude": "1.601554",
5
+ "code": "AD"
6
+ },
7
+ "United Arab Emirates": {
8
+ "latitude": "23.424076",
9
+ "longitude": "53.847818",
10
+ "code": "AE"
11
+ },
12
+ "Afghanistan": {
13
+ "latitude": "33.93911",
14
+ "longitude": "67.709953",
15
+ "code": "AF"
16
+ },
17
+ "Antigua and Barbuda": {
18
+ "latitude": "17.060816",
19
+ "longitude": "-61.796428",
20
+ "code": "AG"
21
+ },
22
+ "Anguilla": {
23
+ "latitude": "18.220554",
24
+ "longitude": "-63.068615",
25
+ "code": "AI"
26
+ },
27
+ "Albania": {
28
+ "latitude": "41.153332",
29
+ "longitude": "20.168331",
30
+ "code": "AL"
31
+ },
32
+ "Armenia": {
33
+ "latitude": "40.069099",
34
+ "longitude": "45.038189",
35
+ "code": "AM"
36
+ },
37
+ "Netherlands Antilles": {
38
+ "latitude": "12.226079",
39
+ "longitude": "-69.060087",
40
+ "code": "AN"
41
+ },
42
+ "Angola": {
43
+ "latitude": "-11.202692",
44
+ "longitude": "17.873887",
45
+ "code": "AO"
46
+ },
47
+ "Antarctica": {
48
+ "latitude": "-75.250973",
49
+ "longitude": "-0.071389",
50
+ "code": "AQ"
51
+ },
52
+ "Argentina": {
53
+ "latitude": "-38.416097",
54
+ "longitude": "-63.616672",
55
+ "code": "AR"
56
+ },
57
+ "American Samoa": {
58
+ "latitude": "-14.270972",
59
+ "longitude": "-170.132217",
60
+ "code": "AS"
61
+ },
62
+ "Austria": {
63
+ "latitude": "47.516231",
64
+ "longitude": "14.550072",
65
+ "code": "AT"
66
+ },
67
+ "Australia": {
68
+ "latitude": "-25.274398",
69
+ "longitude": "133.775136",
70
+ "code": "AU"
71
+ },
72
+ "Aruba": {
73
+ "latitude": "12.52111",
74
+ "longitude": "-69.968338",
75
+ "code": "AW"
76
+ },
77
+ "Azerbaijan": {
78
+ "latitude": "40.143105",
79
+ "longitude": "47.576927",
80
+ "code": "AZ"
81
+ },
82
+ "Bosnia and Herzegovina": {
83
+ "latitude": "43.915886",
84
+ "longitude": "17.679076",
85
+ "code": "BA"
86
+ },
87
+ "Barbados": {
88
+ "latitude": "13.193887",
89
+ "longitude": "-59.543198",
90
+ "code": "BB"
91
+ },
92
+ "Bangladesh": {
93
+ "latitude": "23.684994",
94
+ "longitude": "90.356331",
95
+ "code": "BD"
96
+ },
97
+ "Belgium": {
98
+ "latitude": "50.503887",
99
+ "longitude": "4.469936",
100
+ "code": "BE"
101
+ },
102
+ "Burkina Faso": {
103
+ "latitude": "12.238333",
104
+ "longitude": "-1.561593",
105
+ "code": "BF"
106
+ },
107
+ "Bulgaria": {
108
+ "latitude": "42.733883",
109
+ "longitude": "25.48583",
110
+ "code": "BG"
111
+ },
112
+ "Bahrain": {
113
+ "latitude": "25.930414",
114
+ "longitude": "50.637772",
115
+ "code": "BH"
116
+ },
117
+ "Burundi": {
118
+ "latitude": "-3.373056",
119
+ "longitude": "29.918886",
120
+ "code": "BI"
121
+ },
122
+ "Benin": {
123
+ "latitude": "9.30769",
124
+ "longitude": "2.315834",
125
+ "code": "BJ"
126
+ },
127
+ "Bermuda": {
128
+ "latitude": "32.321384",
129
+ "longitude": "-64.75737",
130
+ "code": "BM"
131
+ },
132
+ "Brunei": {
133
+ "latitude": "4.535277",
134
+ "longitude": "114.727669",
135
+ "code": "BN"
136
+ },
137
+ "Bolivia": {
138
+ "latitude": "-16.290154",
139
+ "longitude": "-63.588653",
140
+ "code": "BO"
141
+ },
142
+ "Brazil": {
143
+ "latitude": "-14.235004",
144
+ "longitude": "-51.92528",
145
+ "code": "BR"
146
+ },
147
+ "Bahamas": {
148
+ "latitude": "25.03428",
149
+ "longitude": "-77.39628",
150
+ "code": "BS"
151
+ },
152
+ "Bhutan": {
153
+ "latitude": "27.514162",
154
+ "longitude": "90.433601",
155
+ "code": "BT"
156
+ },
157
+ "Bouvet Island": {
158
+ "latitude": "-54.423199",
159
+ "longitude": "3.413194",
160
+ "code": "BV"
161
+ },
162
+ "Botswana": {
163
+ "latitude": "-22.328474",
164
+ "longitude": "24.684866",
165
+ "code": "BW"
166
+ },
167
+ "Belarus": {
168
+ "latitude": "53.709807",
169
+ "longitude": "27.953389",
170
+ "code": "BY"
171
+ },
172
+ "Belize": {
173
+ "latitude": "17.189877",
174
+ "longitude": "-88.49765",
175
+ "code": "BZ"
176
+ },
177
+ "Canada": {
178
+ "latitude": "56.130366",
179
+ "longitude": "-106.346771",
180
+ "code": "CA"
181
+ },
182
+ "Cocos [Keeling] Islands": {
183
+ "latitude": "-12.164165",
184
+ "longitude": "96.870956",
185
+ "code": "CC"
186
+ },
187
+ "Congo [DRC]": {
188
+ "latitude": "-4.038333",
189
+ "longitude": "21.758664",
190
+ "code": "CD"
191
+ },
192
+ "Central African Republic": {
193
+ "latitude": "6.611111",
194
+ "longitude": "20.939444",
195
+ "code": "CF"
196
+ },
197
+ "Congo [Republic]": {
198
+ "latitude": "-0.228021",
199
+ "longitude": "15.827659",
200
+ "code": "CG"
201
+ },
202
+ "Switzerland": {
203
+ "latitude": "46.818188",
204
+ "longitude": "8.227512",
205
+ "code": "CH"
206
+ },
207
+ "C\u00f4te d'Ivoire": {
208
+ "latitude": "7.539989",
209
+ "longitude": "-5.54708",
210
+ "code": "CI"
211
+ },
212
+ "Cook Islands": {
213
+ "latitude": "-21.236736",
214
+ "longitude": "-159.777671",
215
+ "code": "CK"
216
+ },
217
+ "Chile": {
218
+ "latitude": "-35.675147",
219
+ "longitude": "-71.542969",
220
+ "code": "CL"
221
+ },
222
+ "Cameroon": {
223
+ "latitude": "7.369722",
224
+ "longitude": "12.354722",
225
+ "code": "CM"
226
+ },
227
+ "China": {
228
+ "latitude": "35.86166",
229
+ "longitude": "104.195397",
230
+ "code": "CN"
231
+ },
232
+ "Colombia": {
233
+ "latitude": "4.570868",
234
+ "longitude": "-74.297333",
235
+ "code": "CO"
236
+ },
237
+ "Costa Rica": {
238
+ "latitude": "9.748917",
239
+ "longitude": "-83.753428",
240
+ "code": "CR"
241
+ },
242
+ "Cuba": {
243
+ "latitude": "21.521757",
244
+ "longitude": "-77.781167",
245
+ "code": "CU"
246
+ },
247
+ "Cape Verde": {
248
+ "latitude": "16.002082",
249
+ "longitude": "-24.013197",
250
+ "code": "CV"
251
+ },
252
+ "Christmas Island": {
253
+ "latitude": "-10.447525",
254
+ "longitude": "105.690449",
255
+ "code": "CX"
256
+ },
257
+ "Cyprus": {
258
+ "latitude": "35.126413",
259
+ "longitude": "33.429859",
260
+ "code": "CY"
261
+ },
262
+ "Czech Republic": {
263
+ "latitude": "49.817492",
264
+ "longitude": "15.472962",
265
+ "code": "CZ"
266
+ },
267
+ "Germany": {
268
+ "latitude": "51.165691",
269
+ "longitude": "10.451526",
270
+ "code": "DE"
271
+ },
272
+ "Djibouti": {
273
+ "latitude": "11.825138",
274
+ "longitude": "42.590275",
275
+ "code": "DJ"
276
+ },
277
+ "Denmark": {
278
+ "latitude": "56.26392",
279
+ "longitude": "9.501785",
280
+ "code": "DK"
281
+ },
282
+ "Dominica": {
283
+ "latitude": "15.414999",
284
+ "longitude": "-61.370976",
285
+ "code": "DM"
286
+ },
287
+ "Dominican Republic": {
288
+ "latitude": "18.735693",
289
+ "longitude": "-70.162651",
290
+ "code": "DO"
291
+ },
292
+ "Algeria": {
293
+ "latitude": "28.033886",
294
+ "longitude": "1.659626",
295
+ "code": "DZ"
296
+ },
297
+ "Ecuador": {
298
+ "latitude": "-1.831239",
299
+ "longitude": "-78.183406",
300
+ "code": "EC"
301
+ },
302
+ "Estonia": {
303
+ "latitude": "58.595272",
304
+ "longitude": "25.013607",
305
+ "code": "EE"
306
+ },
307
+ "Egypt": {
308
+ "latitude": "26.820553",
309
+ "longitude": "30.802498",
310
+ "code": "EG"
311
+ },
312
+ "Western Sahara": {
313
+ "latitude": "24.215527",
314
+ "longitude": "-12.885834",
315
+ "code": "EH"
316
+ },
317
+ "Eritrea": {
318
+ "latitude": "15.179384",
319
+ "longitude": "39.782334",
320
+ "code": "ER"
321
+ },
322
+ "Spain": {
323
+ "latitude": "40.463667",
324
+ "longitude": "-3.74922",
325
+ "code": "ES"
326
+ },
327
+ "Ethiopia": {
328
+ "latitude": "9.145",
329
+ "longitude": "40.489673",
330
+ "code": "ET"
331
+ },
332
+ "Finland": {
333
+ "latitude": "61.92411",
334
+ "longitude": "25.748151",
335
+ "code": "FI"
336
+ },
337
+ "Fiji": {
338
+ "latitude": "-16.578193",
339
+ "longitude": "179.414413",
340
+ "code": "FJ"
341
+ },
342
+ "Falkland Islands [Islas Malvinas]": {
343
+ "latitude": "-51.796253",
344
+ "longitude": "-59.523613",
345
+ "code": "FK"
346
+ },
347
+ "Micronesia": {
348
+ "latitude": "7.425554",
349
+ "longitude": "150.550812",
350
+ "code": "FM"
351
+ },
352
+ "Faroe Islands": {
353
+ "latitude": "61.892635",
354
+ "longitude": "-6.911806",
355
+ "code": "FO"
356
+ },
357
+ "France": {
358
+ "latitude": "46.227638",
359
+ "longitude": "2.213749",
360
+ "code": "FR"
361
+ },
362
+ "Gabon": {
363
+ "latitude": "-0.803689",
364
+ "longitude": "11.609444",
365
+ "code": "GA"
366
+ },
367
+ "United Kingdom": {
368
+ "latitude": "55.378051",
369
+ "longitude": "-3.435973",
370
+ "code": "GB"
371
+ },
372
+ "Grenada": {
373
+ "latitude": "12.262776",
374
+ "longitude": "-61.604171",
375
+ "code": "GD"
376
+ },
377
+ "Georgia": {
378
+ "latitude": "42.315407",
379
+ "longitude": "43.356892",
380
+ "code": "GE"
381
+ },
382
+ "French Guiana": {
383
+ "latitude": "3.933889",
384
+ "longitude": "-53.125782",
385
+ "code": "GF"
386
+ },
387
+ "Guernsey": {
388
+ "latitude": "49.465691",
389
+ "longitude": "-2.585278",
390
+ "code": "GG"
391
+ },
392
+ "Ghana": {
393
+ "latitude": "7.946527",
394
+ "longitude": "-1.023194",
395
+ "code": "GH"
396
+ },
397
+ "Gibraltar": {
398
+ "latitude": "36.137741",
399
+ "longitude": "-5.345374",
400
+ "code": "GI"
401
+ },
402
+ "Greenland": {
403
+ "latitude": "71.706936",
404
+ "longitude": "-42.604303",
405
+ "code": "GL"
406
+ },
407
+ "Gambia": {
408
+ "latitude": "13.443182",
409
+ "longitude": "-15.310139",
410
+ "code": "GM"
411
+ },
412
+ "Guinea": {
413
+ "latitude": "9.945587",
414
+ "longitude": "-9.696645",
415
+ "code": "GN"
416
+ },
417
+ "Guadeloupe": {
418
+ "latitude": "16.995971",
419
+ "longitude": "-62.067641",
420
+ "code": "GP"
421
+ },
422
+ "Equatorial Guinea": {
423
+ "latitude": "1.650801",
424
+ "longitude": "10.267895",
425
+ "code": "GQ"
426
+ },
427
+ "Greece": {
428
+ "latitude": "39.074208",
429
+ "longitude": "21.824312",
430
+ "code": "GR"
431
+ },
432
+ "South Georgia and the South Sandwich Islands": {
433
+ "latitude": "-54.429579",
434
+ "longitude": "-36.587909",
435
+ "code": "GS"
436
+ },
437
+ "Guatemala": {
438
+ "latitude": "15.783471",
439
+ "longitude": "-90.230759",
440
+ "code": "GT"
441
+ },
442
+ "Guam": {
443
+ "latitude": "13.444304",
444
+ "longitude": "144.793731",
445
+ "code": "GU"
446
+ },
447
+ "Guinea-Bissau": {
448
+ "latitude": "11.803749",
449
+ "longitude": "-15.180413",
450
+ "code": "GW"
451
+ },
452
+ "Guyana": {
453
+ "latitude": "4.860416",
454
+ "longitude": "-58.93018",
455
+ "code": "GY"
456
+ },
457
+ "Gaza Strip": {
458
+ "latitude": "31.354676",
459
+ "longitude": "34.308825",
460
+ "code": "GZ"
461
+ },
462
+ "Hong Kong": {
463
+ "latitude": "22.396428",
464
+ "longitude": "114.109497",
465
+ "code": "HK"
466
+ },
467
+ "Heard Island and McDonald Islands": {
468
+ "latitude": "-53.08181",
469
+ "longitude": "73.504158",
470
+ "code": "HM"
471
+ },
472
+ "Honduras": {
473
+ "latitude": "15.199999",
474
+ "longitude": "-86.241905",
475
+ "code": "HN"
476
+ },
477
+ "Croatia": {
478
+ "latitude": "45.1",
479
+ "longitude": "15.2",
480
+ "code": "HR"
481
+ },
482
+ "Haiti": {
483
+ "latitude": "18.971187",
484
+ "longitude": "-72.285215",
485
+ "code": "HT"
486
+ },
487
+ "Hungary": {
488
+ "latitude": "47.162494",
489
+ "longitude": "19.503304",
490
+ "code": "HU"
491
+ },
492
+ "Indonesia": {
493
+ "latitude": "-0.789275",
494
+ "longitude": "113.921327",
495
+ "code": "ID"
496
+ },
497
+ "Ireland": {
498
+ "latitude": "53.41291",
499
+ "longitude": "-8.24389",
500
+ "code": "IE"
501
+ },
502
+ "Israel": {
503
+ "latitude": "31.046051",
504
+ "longitude": "34.851612",
505
+ "code": "IL"
506
+ },
507
+ "Isle of Man": {
508
+ "latitude": "54.236107",
509
+ "longitude": "-4.548056",
510
+ "code": "IM"
511
+ },
512
+ "India": {
513
+ "latitude": "20.593684",
514
+ "longitude": "78.96288",
515
+ "code": "IN"
516
+ },
517
+ "British Indian Ocean Territory": {
518
+ "latitude": "-6.343194",
519
+ "longitude": "71.876519",
520
+ "code": "IO"
521
+ },
522
+ "Iraq": {
523
+ "latitude": "33.223191",
524
+ "longitude": "43.679291",
525
+ "code": "IQ"
526
+ },
527
+ "Iran": {
528
+ "latitude": "32.427908",
529
+ "longitude": "53.688046",
530
+ "code": "IR"
531
+ },
532
+ "Iceland": {
533
+ "latitude": "64.963051",
534
+ "longitude": "-19.020835",
535
+ "code": "IS"
536
+ },
537
+ "Italy": {
538
+ "latitude": "41.87194",
539
+ "longitude": "12.56738",
540
+ "code": "IT"
541
+ },
542
+ "Jersey": {
543
+ "latitude": "49.214439",
544
+ "longitude": "-2.13125",
545
+ "code": "JE"
546
+ },
547
+ "Jamaica": {
548
+ "latitude": "18.109581",
549
+ "longitude": "-77.297508",
550
+ "code": "JM"
551
+ },
552
+ "Jordan": {
553
+ "latitude": "30.585164",
554
+ "longitude": "36.238414",
555
+ "code": "JO"
556
+ },
557
+ "Japan": {
558
+ "latitude": "36.204824",
559
+ "longitude": "138.252924",
560
+ "code": "JP"
561
+ },
562
+ "Kenya": {
563
+ "latitude": "-0.023559",
564
+ "longitude": "37.906193",
565
+ "code": "KE"
566
+ },
567
+ "Kyrgyzstan": {
568
+ "latitude": "41.20438",
569
+ "longitude": "74.766098",
570
+ "code": "KG"
571
+ },
572
+ "Cambodia": {
573
+ "latitude": "12.565679",
574
+ "longitude": "104.990963",
575
+ "code": "KH"
576
+ },
577
+ "Kiribati": {
578
+ "latitude": "-3.370417",
579
+ "longitude": "-168.734039",
580
+ "code": "KI"
581
+ },
582
+ "Comoros": {
583
+ "latitude": "-11.875001",
584
+ "longitude": "43.872219",
585
+ "code": "KM"
586
+ },
587
+ "Saint Kitts and Nevis": {
588
+ "latitude": "17.357822",
589
+ "longitude": "-62.782998",
590
+ "code": "KN"
591
+ },
592
+ "North Korea": {
593
+ "latitude": "40.339852",
594
+ "longitude": "127.510093",
595
+ "code": "KP"
596
+ },
597
+ "South Korea": {
598
+ "latitude": "35.907757",
599
+ "longitude": "127.766922",
600
+ "code": "KR"
601
+ },
602
+ "Kuwait": {
603
+ "latitude": "29.31166",
604
+ "longitude": "47.481766",
605
+ "code": "KW"
606
+ },
607
+ "Cayman Islands": {
608
+ "latitude": "19.513469",
609
+ "longitude": "-80.566956",
610
+ "code": "KY"
611
+ },
612
+ "Kazakhstan": {
613
+ "latitude": "48.019573",
614
+ "longitude": "66.923684",
615
+ "code": "KZ"
616
+ },
617
+ "Laos": {
618
+ "latitude": "19.85627",
619
+ "longitude": "102.495496",
620
+ "code": "LA"
621
+ },
622
+ "Lebanon": {
623
+ "latitude": "33.854721",
624
+ "longitude": "35.862285",
625
+ "code": "LB"
626
+ },
627
+ "Saint Lucia": {
628
+ "latitude": "13.909444",
629
+ "longitude": "-60.978893",
630
+ "code": "LC"
631
+ },
632
+ "Liechtenstein": {
633
+ "latitude": "47.166",
634
+ "longitude": "9.555373",
635
+ "code": "LI"
636
+ },
637
+ "Sri Lanka": {
638
+ "latitude": "7.873054",
639
+ "longitude": "80.771797",
640
+ "code": "LK"
641
+ },
642
+ "Liberia": {
643
+ "latitude": "6.428055",
644
+ "longitude": "-9.429499",
645
+ "code": "LR"
646
+ },
647
+ "Lesotho": {
648
+ "latitude": "-29.609988",
649
+ "longitude": "28.233608",
650
+ "code": "LS"
651
+ },
652
+ "Lithuania": {
653
+ "latitude": "55.169438",
654
+ "longitude": "23.881275",
655
+ "code": "LT"
656
+ },
657
+ "Luxembourg": {
658
+ "latitude": "49.815273",
659
+ "longitude": "6.129583",
660
+ "code": "LU"
661
+ },
662
+ "Latvia": {
663
+ "latitude": "56.879635",
664
+ "longitude": "24.603189",
665
+ "code": "LV"
666
+ },
667
+ "Libya": {
668
+ "latitude": "26.3351",
669
+ "longitude": "17.228331",
670
+ "code": "LY"
671
+ },
672
+ "Morocco": {
673
+ "latitude": "31.791702",
674
+ "longitude": "-7.09262",
675
+ "code": "MA"
676
+ },
677
+ "Monaco": {
678
+ "latitude": "43.750298",
679
+ "longitude": "7.412841",
680
+ "code": "MC"
681
+ },
682
+ "Moldova": {
683
+ "latitude": "47.411631",
684
+ "longitude": "28.369885",
685
+ "code": "MD"
686
+ },
687
+ "Montenegro": {
688
+ "latitude": "42.708678",
689
+ "longitude": "19.37439",
690
+ "code": "ME"
691
+ },
692
+ "Madagascar": {
693
+ "latitude": "-18.766947",
694
+ "longitude": "46.869107",
695
+ "code": "MG"
696
+ },
697
+ "Marshall Islands": {
698
+ "latitude": "7.131474",
699
+ "longitude": "171.184478",
700
+ "code": "MH"
701
+ },
702
+ "Macedonia [FYROM]": {
703
+ "latitude": "41.608635",
704
+ "longitude": "21.745275",
705
+ "code": "MK"
706
+ },
707
+ "Mali": {
708
+ "latitude": "17.570692",
709
+ "longitude": "-3.996166",
710
+ "code": "ML"
711
+ },
712
+ "Myanmar [Burma]": {
713
+ "latitude": "21.913965",
714
+ "longitude": "95.956223",
715
+ "code": "MM"
716
+ },
717
+ "Mongolia": {
718
+ "latitude": "46.862496",
719
+ "longitude": "103.846656",
720
+ "code": "MN"
721
+ },
722
+ "Macau": {
723
+ "latitude": "22.198745",
724
+ "longitude": "113.543873",
725
+ "code": "MO"
726
+ },
727
+ "Northern Mariana Islands": {
728
+ "latitude": "17.33083",
729
+ "longitude": "145.38469",
730
+ "code": "MP"
731
+ },
732
+ "Martinique": {
733
+ "latitude": "14.641528",
734
+ "longitude": "-61.024174",
735
+ "code": "MQ"
736
+ },
737
+ "Mauritania": {
738
+ "latitude": "21.00789",
739
+ "longitude": "-10.940835",
740
+ "code": "MR"
741
+ },
742
+ "Montserrat": {
743
+ "latitude": "16.742498",
744
+ "longitude": "-62.187366",
745
+ "code": "MS"
746
+ },
747
+ "Malta": {
748
+ "latitude": "35.937496",
749
+ "longitude": "14.375416",
750
+ "code": "MT"
751
+ },
752
+ "Mauritius": {
753
+ "latitude": "-20.348404",
754
+ "longitude": "57.552152",
755
+ "code": "MU"
756
+ },
757
+ "Maldives": {
758
+ "latitude": "3.202778",
759
+ "longitude": "73.22068",
760
+ "code": "MV"
761
+ },
762
+ "Malawi": {
763
+ "latitude": "-13.254308",
764
+ "longitude": "34.301525",
765
+ "code": "MW"
766
+ },
767
+ "Mexico": {
768
+ "latitude": "23.634501",
769
+ "longitude": "-102.552784",
770
+ "code": "MX"
771
+ },
772
+ "Malaysia": {
773
+ "latitude": "4.210484",
774
+ "longitude": "101.975766",
775
+ "code": "MY"
776
+ },
777
+ "Mozambique": {
778
+ "latitude": "-18.665695",
779
+ "longitude": "35.529562",
780
+ "code": "MZ"
781
+ },
782
+ "Namibia": {
783
+ "latitude": "-22.95764",
784
+ "longitude": "18.49041",
785
+ "code": "NA"
786
+ },
787
+ "New Caledonia": {
788
+ "latitude": "-20.904305",
789
+ "longitude": "165.618042",
790
+ "code": "NC"
791
+ },
792
+ "Niger": {
793
+ "latitude": "17.607789",
794
+ "longitude": "8.081666",
795
+ "code": "NE"
796
+ },
797
+ "Norfolk Island": {
798
+ "latitude": "-29.040835",
799
+ "longitude": "167.954712",
800
+ "code": "NF"
801
+ },
802
+ "Nigeria": {
803
+ "latitude": "9.081999",
804
+ "longitude": "8.675277",
805
+ "code": "NG"
806
+ },
807
+ "Nicaragua": {
808
+ "latitude": "12.865416",
809
+ "longitude": "-85.207229",
810
+ "code": "NI"
811
+ },
812
+ "Netherlands": {
813
+ "latitude": "52.132633",
814
+ "longitude": "5.291266",
815
+ "code": "NL"
816
+ },
817
+ "Norway": {
818
+ "latitude": "60.472024",
819
+ "longitude": "8.468946",
820
+ "code": "NO"
821
+ },
822
+ "Nepal": {
823
+ "latitude": "28.394857",
824
+ "longitude": "84.124008",
825
+ "code": "NP"
826
+ },
827
+ "Nauru": {
828
+ "latitude": "-0.522778",
829
+ "longitude": "166.931503",
830
+ "code": "NR"
831
+ },
832
+ "Niue": {
833
+ "latitude": "-19.054445",
834
+ "longitude": "-169.867233",
835
+ "code": "NU"
836
+ },
837
+ "New Zealand": {
838
+ "latitude": "-40.900557",
839
+ "longitude": "174.885971",
840
+ "code": "NZ"
841
+ },
842
+ "Oman": {
843
+ "latitude": "21.512583",
844
+ "longitude": "55.923255",
845
+ "code": "OM"
846
+ },
847
+ "Panama": {
848
+ "latitude": "8.537981",
849
+ "longitude": "-80.782127",
850
+ "code": "PA"
851
+ },
852
+ "Peru": {
853
+ "latitude": "-9.189967",
854
+ "longitude": "-75.015152",
855
+ "code": "PE"
856
+ },
857
+ "French Polynesia": {
858
+ "latitude": "-17.679742",
859
+ "longitude": "-149.406843",
860
+ "code": "PF"
861
+ },
862
+ "Papua New Guinea": {
863
+ "latitude": "-6.314993",
864
+ "longitude": "143.95555",
865
+ "code": "PG"
866
+ },
867
+ "Philippines": {
868
+ "latitude": "12.879721",
869
+ "longitude": "121.774017",
870
+ "code": "PH"
871
+ },
872
+ "Pakistan": {
873
+ "latitude": "30.375321",
874
+ "longitude": "69.345116",
875
+ "code": "PK"
876
+ },
877
+ "Poland": {
878
+ "latitude": "51.919438",
879
+ "longitude": "19.145136",
880
+ "code": "PL"
881
+ },
882
+ "Saint Pierre and Miquelon": {
883
+ "latitude": "46.941936",
884
+ "longitude": "-56.27111",
885
+ "code": "PM"
886
+ },
887
+ "Pitcairn Islands": {
888
+ "latitude": "-24.703615",
889
+ "longitude": "-127.439308",
890
+ "code": "PN"
891
+ },
892
+ "Puerto Rico": {
893
+ "latitude": "18.220833",
894
+ "longitude": "-66.590149",
895
+ "code": "PR"
896
+ },
897
+ "Palestinian Territories": {
898
+ "latitude": "31.952162",
899
+ "longitude": "35.233154",
900
+ "code": "PS"
901
+ },
902
+ "Portugal": {
903
+ "latitude": "39.399872",
904
+ "longitude": "-8.224454",
905
+ "code": "PT"
906
+ },
907
+ "Palau": {
908
+ "latitude": "7.51498",
909
+ "longitude": "134.58252",
910
+ "code": "PW"
911
+ },
912
+ "Paraguay": {
913
+ "latitude": "-23.442503",
914
+ "longitude": "-58.443832",
915
+ "code": "PY"
916
+ },
917
+ "Qatar": {
918
+ "latitude": "25.354826",
919
+ "longitude": "51.183884",
920
+ "code": "QA"
921
+ },
922
+ "R\u00e9union": {
923
+ "latitude": "-21.115141",
924
+ "longitude": "55.536384",
925
+ "code": "RE"
926
+ },
927
+ "Romania": {
928
+ "latitude": "45.943161",
929
+ "longitude": "24.96676",
930
+ "code": "RO"
931
+ },
932
+ "Serbia": {
933
+ "latitude": "44.016521",
934
+ "longitude": "21.005859",
935
+ "code": "RS"
936
+ },
937
+ "Russia": {
938
+ "latitude": "61.52401",
939
+ "longitude": "105.318756",
940
+ "code": "RU"
941
+ },
942
+ "Rwanda": {
943
+ "latitude": "-1.940278",
944
+ "longitude": "29.873888",
945
+ "code": "RW"
946
+ },
947
+ "Saudi Arabia": {
948
+ "latitude": "23.885942",
949
+ "longitude": "45.079162",
950
+ "code": "SA"
951
+ },
952
+ "Solomon Islands": {
953
+ "latitude": "-9.64571",
954
+ "longitude": "160.156194",
955
+ "code": "SB"
956
+ },
957
+ "Seychelles": {
958
+ "latitude": "-4.679574",
959
+ "longitude": "55.491977",
960
+ "code": "SC"
961
+ },
962
+ "Sudan": {
963
+ "latitude": "12.862807",
964
+ "longitude": "30.217636",
965
+ "code": "SD"
966
+ },
967
+ "Sweden": {
968
+ "latitude": "60.128161",
969
+ "longitude": "18.643501",
970
+ "code": "SE"
971
+ },
972
+ "Singapore": {
973
+ "latitude": "1.352083",
974
+ "longitude": "103.819836",
975
+ "code": "SG"
976
+ },
977
+ "Saint Helena": {
978
+ "latitude": "-24.143474",
979
+ "longitude": "-10.030696",
980
+ "code": "SH"
981
+ },
982
+ "Slovenia": {
983
+ "latitude": "46.151241",
984
+ "longitude": "14.995463",
985
+ "code": "SI"
986
+ },
987
+ "Svalbard and Jan Mayen": {
988
+ "latitude": "77.553604",
989
+ "longitude": "23.670272",
990
+ "code": "SJ"
991
+ },
992
+ "Slovakia": {
993
+ "latitude": "48.669026",
994
+ "longitude": "19.699024",
995
+ "code": "SK"
996
+ },
997
+ "Sierra Leone": {
998
+ "latitude": "8.460555",
999
+ "longitude": "-11.779889",
1000
+ "code": "SL"
1001
+ },
1002
+ "San Marino": {
1003
+ "latitude": "43.94236",
1004
+ "longitude": "12.457777",
1005
+ "code": "SM"
1006
+ },
1007
+ "Senegal": {
1008
+ "latitude": "14.497401",
1009
+ "longitude": "-14.452362",
1010
+ "code": "SN"
1011
+ },
1012
+ "Somalia": {
1013
+ "latitude": "5.152149",
1014
+ "longitude": "46.199616",
1015
+ "code": "SO"
1016
+ },
1017
+ "Suriname": {
1018
+ "latitude": "3.919305",
1019
+ "longitude": "-56.027783",
1020
+ "code": "SR"
1021
+ },
1022
+ "S\u00e3o Tom\u00e9 and Pr\u00edncipe": {
1023
+ "latitude": "0.18636",
1024
+ "longitude": "6.613081",
1025
+ "code": "ST"
1026
+ },
1027
+ "El Salvador": {
1028
+ "latitude": "13.794185",
1029
+ "longitude": "-88.89653",
1030
+ "code": "SV"
1031
+ },
1032
+ "Syria": {
1033
+ "latitude": "34.802075",
1034
+ "longitude": "38.996815",
1035
+ "code": "SY"
1036
+ },
1037
+ "Swaziland": {
1038
+ "latitude": "-26.522503",
1039
+ "longitude": "31.465866",
1040
+ "code": "SZ"
1041
+ },
1042
+ "Turks and Caicos Islands": {
1043
+ "latitude": "21.694025",
1044
+ "longitude": "-71.797928",
1045
+ "code": "TC"
1046
+ },
1047
+ "Chad": {
1048
+ "latitude": "15.454166",
1049
+ "longitude": "18.732207",
1050
+ "code": "TD"
1051
+ },
1052
+ "French Southern Territories": {
1053
+ "latitude": "-49.280366",
1054
+ "longitude": "69.348557",
1055
+ "code": "TF"
1056
+ },
1057
+ "Togo": {
1058
+ "latitude": "8.619543",
1059
+ "longitude": "0.824782",
1060
+ "code": "TG"
1061
+ },
1062
+ "Thailand": {
1063
+ "latitude": "15.870032",
1064
+ "longitude": "100.992541",
1065
+ "code": "TH"
1066
+ },
1067
+ "Tajikistan": {
1068
+ "latitude": "38.861034",
1069
+ "longitude": "71.276093",
1070
+ "code": "TJ"
1071
+ },
1072
+ "Tokelau": {
1073
+ "latitude": "-8.967363",
1074
+ "longitude": "-171.855881",
1075
+ "code": "TK"
1076
+ },
1077
+ "Timor-Leste": {
1078
+ "latitude": "-8.874217",
1079
+ "longitude": "125.727539",
1080
+ "code": "TL"
1081
+ },
1082
+ "Turkmenistan": {
1083
+ "latitude": "38.969719",
1084
+ "longitude": "59.556278",
1085
+ "code": "TM"
1086
+ },
1087
+ "Tunisia": {
1088
+ "latitude": "33.886917",
1089
+ "longitude": "9.537499",
1090
+ "code": "TN"
1091
+ },
1092
+ "Tonga": {
1093
+ "latitude": "-21.178986",
1094
+ "longitude": "-175.198242",
1095
+ "code": "TO"
1096
+ },
1097
+ "Turkey": {
1098
+ "latitude": "38.963745",
1099
+ "longitude": "35.243322",
1100
+ "code": "TR"
1101
+ },
1102
+ "Trinidad and Tobago": {
1103
+ "latitude": "10.691803",
1104
+ "longitude": "-61.222503",
1105
+ "code": "TT"
1106
+ },
1107
+ "Tuvalu": {
1108
+ "latitude": "-7.109535",
1109
+ "longitude": "177.64933",
1110
+ "code": "TV"
1111
+ },
1112
+ "Taiwan": {
1113
+ "latitude": "23.69781",
1114
+ "longitude": "120.960515",
1115
+ "code": "TW"
1116
+ },
1117
+ "Tanzania": {
1118
+ "latitude": "-6.369028",
1119
+ "longitude": "34.888822",
1120
+ "code": "TZ"
1121
+ },
1122
+ "Ukraine": {
1123
+ "latitude": "48.379433",
1124
+ "longitude": "31.16558",
1125
+ "code": "UA"
1126
+ },
1127
+ "Uganda": {
1128
+ "latitude": "1.373333",
1129
+ "longitude": "32.290275",
1130
+ "code": "UG"
1131
+ },
1132
+ "U.S. Minor Outlying Islands": {
1133
+ "latitude": "",
1134
+ "longitude": "",
1135
+ "code": "UM"
1136
+ },
1137
+ "United States": {
1138
+ "latitude": "37.09024",
1139
+ "longitude": "-95.712891",
1140
+ "code": "US"
1141
+ },
1142
+ "Uruguay": {
1143
+ "latitude": "-32.522779",
1144
+ "longitude": "-55.765835",
1145
+ "code": "UY"
1146
+ },
1147
+ "Uzbekistan": {
1148
+ "latitude": "41.377491",
1149
+ "longitude": "64.585262",
1150
+ "code": "UZ"
1151
+ },
1152
+ "Vatican City": {
1153
+ "latitude": "41.902916",
1154
+ "longitude": "12.453389",
1155
+ "code": "VA"
1156
+ },
1157
+ "Saint Vincent and the Grenadines": {
1158
+ "latitude": "12.984305",
1159
+ "longitude": "-61.287228",
1160
+ "code": "VC"
1161
+ },
1162
+ "Venezuela": {
1163
+ "latitude": "6.42375",
1164
+ "longitude": "-66.58973",
1165
+ "code": "VE"
1166
+ },
1167
+ "British Virgin Islands": {
1168
+ "latitude": "18.420695",
1169
+ "longitude": "-64.639968",
1170
+ "code": "VG"
1171
+ },
1172
+ "U.S. Virgin Islands": {
1173
+ "latitude": "18.335765",
1174
+ "longitude": "-64.896335",
1175
+ "code": "VI"
1176
+ },
1177
+ "Vietnam": {
1178
+ "latitude": "14.058324",
1179
+ "longitude": "108.277199",
1180
+ "code": "VN"
1181
+ },
1182
+ "Vanuatu": {
1183
+ "latitude": "-15.376706",
1184
+ "longitude": "166.959158",
1185
+ "code": "VU"
1186
+ },
1187
+ "Wallis and Futuna": {
1188
+ "latitude": "-13.768752",
1189
+ "longitude": "-177.156097",
1190
+ "code": "WF"
1191
+ },
1192
+ "Samoa": {
1193
+ "latitude": "-13.759029",
1194
+ "longitude": "-172.104629",
1195
+ "code": "WS"
1196
+ },
1197
+ "Kosovo": {
1198
+ "latitude": "42.602636",
1199
+ "longitude": "20.902977",
1200
+ "code": "XK"
1201
+ },
1202
+ "Yemen": {
1203
+ "latitude": "15.552727",
1204
+ "longitude": "48.516388",
1205
+ "code": "YE"
1206
+ },
1207
+ "Mayotte": {
1208
+ "latitude": "-12.8275",
1209
+ "longitude": "45.166244",
1210
+ "code": "YT"
1211
+ },
1212
+ "South Africa": {
1213
+ "latitude": "-30.559482",
1214
+ "longitude": "22.937506",
1215
+ "code": "ZA"
1216
+ },
1217
+ "Zambia": {
1218
+ "latitude": "-13.133897",
1219
+ "longitude": "27.849332",
1220
+ "code": "ZM"
1221
+ },
1222
+ "Zimbabwe": {
1223
+ "latitude": "-19.015438",
1224
+ "longitude": "29.154857",
1225
+ "code": "ZW"
1226
+ },
1227
+ "Northern Cyprus": {
1228
+ "latitude": "35.11",
1229
+ "longitude": "33.22",
1230
+ "code": "TRC"
1231
+ },
1232
+ "South Sudan": {
1233
+ "latitude": "04.51",
1234
+ "longitude": "31.36",
1235
+ "code": ""
1236
+ }
1237
+ }
resources/country_mappings.json ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "to_outline": {
3
+ "Democratic Republic of the Congo": "Democratic Republic of the Congo",
4
+ "Congo [DRC]": "Democratic Republic of the Congo",
5
+ "Congo": "Democratic Republic of the Congo",
6
+ "Republic of the Congo": "Republic of the Congo",
7
+ "Congo [Republic]": "Republic of the Congo",
8
+ "East Timor": "East Timor",
9
+ "Timor-Leste": "East Timor",
10
+ "Falkland Islands": "Falkland Islands",
11
+ "Falkland Islands [Islas Malvinas]": "Falkland Islands",
12
+ "Gambia": "Gambia",
13
+ "The Gambia": "Gambia",
14
+ "Guinea Bissau": "Guinea Bissau",
15
+ "Guinea-Bissau": "Guinea Bissau",
16
+ "Ivory Coast": "Ivory Coast",
17
+ "C\u00f4te d'Ivoire": "Ivory Coast",
18
+ "Cote d'Ivoire": "Ivory Coast",
19
+ "Macedonia": "Macedonia",
20
+ "Macedonia [FYROM]": "Macedonia",
21
+ "North Macedonia": "Macedonia",
22
+ "Myanmar": "Myanmar",
23
+ "Myanmar [Burma]": "Myanmar",
24
+ "Republic of Serbia": "Republic of Serbia",
25
+ "Serbia": "Republic of Serbia",
26
+ "Somaliland": "Somaliland",
27
+ "Somalia": "Somalia",
28
+ "Swaziland": "Swaziland",
29
+ "Eswatini": "Swaziland",
30
+ "The Bahamas": "The Bahamas",
31
+ "Bahamas": "The Bahamas",
32
+ "United Republic of Tanzania": "United Republic of Tanzania",
33
+ "Tanzania": "United Republic of Tanzania",
34
+ "United States of America": "United States of America",
35
+ "United States": "United States of America",
36
+ "West Bank": "West Bank",
37
+ "Palestinian Territories": "West Bank",
38
+ "Palestine": "West Bank"
39
+ },
40
+ "to_center": {
41
+ "Democratic Republic of the Congo": "Congo [DRC]",
42
+ "Congo [DRC]": "Congo [DRC]",
43
+ "Congo": "Congo [DRC]",
44
+ "Republic of the Congo": "Congo [Republic]",
45
+ "Congo [Republic]": "Congo [Republic]",
46
+ "East Timor": "Timor-Leste",
47
+ "Timor-Leste": "Timor-Leste",
48
+ "Falkland Islands": "Falkland Islands [Islas Malvinas]",
49
+ "Falkland Islands [Islas Malvinas]": "Falkland Islands [Islas Malvinas]",
50
+ "Gambia": "Gambia",
51
+ "The Gambia": "Gambia",
52
+ "Guinea Bissau": "Guinea-Bissau",
53
+ "Guinea-Bissau": "Guinea-Bissau",
54
+ "Ivory Coast": "C\u00f4te d'Ivoire",
55
+ "C\u00f4te d'Ivoire": "C\u00f4te d'Ivoire",
56
+ "Cote d'Ivoire": "C\u00f4te d'Ivoire",
57
+ "Macedonia": "Macedonia [FYROM]",
58
+ "Macedonia [FYROM]": "Macedonia [FYROM]",
59
+ "North Macedonia": "Macedonia [FYROM]",
60
+ "Myanmar": "Myanmar [Burma]",
61
+ "Myanmar [Burma]": "Myanmar [Burma]",
62
+ "Republic of Serbia": "Serbia",
63
+ "Serbia": "Serbia",
64
+ "Somaliland": "Somalia",
65
+ "Somalia": "Somalia",
66
+ "Swaziland": "Swaziland",
67
+ "Eswatini": "Swaziland",
68
+ "The Bahamas": "Bahamas",
69
+ "Bahamas": "Bahamas",
70
+ "United Republic of Tanzania": "Tanzania",
71
+ "Tanzania": "Tanzania",
72
+ "United States of America": "United States",
73
+ "United States": "United States",
74
+ "West Bank": "Palestinian Territories",
75
+ "Palestinian Territories": "Palestinian Territories",
76
+ "Palestine": "Palestinian Territories"
77
+ },
78
+ "to_region": {
79
+ "Democratic Republic of the Congo": "Congo",
80
+ "Congo [DRC]": "Congo",
81
+ "Congo": "Congo",
82
+ "Republic of the Congo": "Republic of the Congo",
83
+ "Congo [Republic]": "Republic of the Congo",
84
+ "East Timor": "Timor-Leste",
85
+ "Timor-Leste": "Timor-Leste",
86
+ "Falkland Islands": "Falkland Islands",
87
+ "Falkland Islands [Islas Malvinas]": "Falkland Islands",
88
+ "Gambia": "The Gambia",
89
+ "The Gambia": "The Gambia",
90
+ "Guinea Bissau": "Guinea-Bissau",
91
+ "Guinea-Bissau": "Guinea-Bissau",
92
+ "Ivory Coast": "Cote d'Ivoire",
93
+ "C\u00f4te d'Ivoire": "Cote d'Ivoire",
94
+ "Cote d'Ivoire": "Cote d'Ivoire",
95
+ "Macedonia": "North Macedonia",
96
+ "Macedonia [FYROM]": "North Macedonia",
97
+ "North Macedonia": "North Macedonia",
98
+ "Myanmar": "Myanmar",
99
+ "Myanmar [Burma]": "Myanmar",
100
+ "Republic of Serbia": "Serbia",
101
+ "Serbia": "Serbia",
102
+ "Somaliland": "Somalia",
103
+ "Somalia": "Somalia",
104
+ "Swaziland": "Eswatini",
105
+ "Eswatini": "Eswatini",
106
+ "The Bahamas": "The Bahamas",
107
+ "Bahamas": "The Bahamas",
108
+ "United Republic of Tanzania": "Tanzania",
109
+ "Tanzania": "Tanzania",
110
+ "United States of America": "United States of America",
111
+ "United States": "United States of America",
112
+ "West Bank": "Palestine",
113
+ "Palestinian Territories": "Palestine",
114
+ "Palestine": "Palestine"
115
+ }
116
+ }
resources/country_regions.json ADDED
@@ -0,0 +1,652 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ [
3
+ "Africa",
4
+ "Americas",
5
+ "Asia",
6
+ "Europe",
7
+ "Oceania"
8
+ ],
9
+ [
10
+ "Afghanistan",
11
+ "Albania",
12
+ "Algeria",
13
+ "American Samoa",
14
+ "Andorra",
15
+ "Angola",
16
+ "Anguilla",
17
+ "Antigua and Barbuda",
18
+ "Argentina",
19
+ "Armenia",
20
+ "Aruba",
21
+ "Australia",
22
+ "Austria",
23
+ "Azerbaijan",
24
+ "Azores",
25
+ "Bahrain",
26
+ "Bangladesh",
27
+ "Barbados",
28
+ "Belarus",
29
+ "Belgium",
30
+ "Belize",
31
+ "Benin",
32
+ "Bermuda",
33
+ "Bhutan",
34
+ "Bolivia",
35
+ "Bonaire, Saint Eustatius and Saba",
36
+ "Bosnia and Herzegovina",
37
+ "Botswana",
38
+ "Bouvet Island",
39
+ "Brazil",
40
+ "British Indian Ocean Territory",
41
+ "British Virgin Islands",
42
+ "Brunei",
43
+ "Bulgaria",
44
+ "Burkina Faso",
45
+ "Burundi",
46
+ "Cambodia",
47
+ "Cameroon",
48
+ "Canada",
49
+ "Cape Verde",
50
+ "Cayman Islands",
51
+ "Central African Republic",
52
+ "Chad",
53
+ "Chile",
54
+ "Christmas Island",
55
+ "Cocos (Keeling) Islands",
56
+ "Colombia",
57
+ "Comoros",
58
+ "Congo",
59
+ "Cook Islands",
60
+ "Costa Rica",
61
+ "Cote d'Ivoire",
62
+ "Croatia",
63
+ "Cuba",
64
+ "Cura\u00e7ao",
65
+ "Cyprus",
66
+ "Czech Republic",
67
+ "Denmark",
68
+ "Djibouti",
69
+ "Dominica",
70
+ "Dominican Republic",
71
+ "Ecuador",
72
+ "Egypt",
73
+ "El Salvador",
74
+ "England",
75
+ "Equatorial Guinea",
76
+ "Eritrea",
77
+ "Estonia",
78
+ "Eswatini",
79
+ "Ethiopia",
80
+ "Falkland Islands",
81
+ "Faroe Islands",
82
+ "Federated States of Micronesia",
83
+ "Fiji",
84
+ "Finland",
85
+ "France",
86
+ "French Guiana",
87
+ "French Polynesia",
88
+ "French Southern Territories",
89
+ "Gabon",
90
+ "Georgia",
91
+ "Germany",
92
+ "Ghana",
93
+ "Gibraltar",
94
+ "Greece",
95
+ "Greenland",
96
+ "Grenada",
97
+ "Guadeloupe",
98
+ "Guam",
99
+ "Guatemala",
100
+ "Guernsey",
101
+ "Guinea",
102
+ "Guinea-Bissau",
103
+ "Guyana",
104
+ "Haiti",
105
+ "Heard Island and McDonald Islands",
106
+ "Holy See",
107
+ "Honduras",
108
+ "Hong Kong",
109
+ "Hungary",
110
+ "Iceland",
111
+ "India",
112
+ "Indonesia",
113
+ "Iran",
114
+ "Iraq",
115
+ "Ireland",
116
+ "Isle of Man",
117
+ "Israel",
118
+ "Jamaica",
119
+ "Japan",
120
+ "Jersey",
121
+ "Jordan",
122
+ "Kazakhstan",
123
+ "Kenya",
124
+ "Kiribati",
125
+ "Kosovo",
126
+ "Kuwait",
127
+ "Kyrgyzstan",
128
+ "Laos",
129
+ "Latvia",
130
+ "Lebanon",
131
+ "Lesotho",
132
+ "Liberia",
133
+ "Libya",
134
+ "Liechtenstein",
135
+ "Lithuania",
136
+ "Luxembourg",
137
+ "Macau",
138
+ "Madagascar",
139
+ "Madeira",
140
+ "Malawi",
141
+ "Malaysia",
142
+ "Maldives",
143
+ "Mali",
144
+ "Malta",
145
+ "Marshall Islands",
146
+ "Martinique",
147
+ "Mauritania",
148
+ "Mauritius",
149
+ "Mayotte",
150
+ "Mexico",
151
+ "Moldova",
152
+ "Monaco",
153
+ "Mongolia",
154
+ "Montenegro",
155
+ "Montserrat",
156
+ "Morocco",
157
+ "Mozambique",
158
+ "Myanmar",
159
+ "Namibia",
160
+ "Nauru",
161
+ "Nepal",
162
+ "Netherlands",
163
+ "New Caledonia",
164
+ "New Zealand",
165
+ "Nicaragua",
166
+ "Niger",
167
+ "Nigeria",
168
+ "Niue",
169
+ "Norfolk Island",
170
+ "North Korea",
171
+ "North Macedonia",
172
+ "Northern Ireland",
173
+ "Northern Mariana Islands",
174
+ "Norway",
175
+ "Oman",
176
+ "Pakistan",
177
+ "Palau",
178
+ "Palestine",
179
+ "Panama",
180
+ "Papua New Guinea",
181
+ "Paraguay",
182
+ "Peru",
183
+ "Philippines",
184
+ "Pitcairn Islands",
185
+ "Poland",
186
+ "Puerto Rico",
187
+ "Qatar",
188
+ "Republic of the Congo",
189
+ "Romania",
190
+ "Russia",
191
+ "Rwanda",
192
+ "R\u00e9union",
193
+ "Saint Barth\u00e9lemy",
194
+ "Saint Helena, Ascension and Tristan da Cunha",
195
+ "Saint Kitts and Nevis",
196
+ "Saint Lucia",
197
+ "Saint Martin",
198
+ "Saint Pierre and Miquelon",
199
+ "Saint Vincent and the Grenadines",
200
+ "Samoa",
201
+ "San Marino",
202
+ "Sark",
203
+ "Saudi Arabia",
204
+ "Scotland",
205
+ "Senegal",
206
+ "Seychelles",
207
+ "Sierra Leone",
208
+ "Singapore",
209
+ "Sint Maarten",
210
+ "Slovakia",
211
+ "Slovenia",
212
+ "Solomon Islands",
213
+ "Somalia",
214
+ "Somaliland",
215
+ "South Africa",
216
+ "South Georgia and the South Sandwich Islands",
217
+ "South Korea",
218
+ "South Sudan",
219
+ "Spain",
220
+ "Sri Lanka",
221
+ "Sudan",
222
+ "Suriname",
223
+ "Svalbard and Jan Mayen Islands",
224
+ "Sweden",
225
+ "Switzerland",
226
+ "Syria",
227
+ "S\u00e3o Tom\u00e9 and Pr\u00edncipe",
228
+ "Taiwan",
229
+ "Tajikistan",
230
+ "Tanzania",
231
+ "Thailand",
232
+ "The Bahamas",
233
+ "The Gambia",
234
+ "Timor-Leste",
235
+ "Togo",
236
+ "Tokelau",
237
+ "Tonga",
238
+ "Trinidad and Tobago",
239
+ "Tunisia",
240
+ "Turkey",
241
+ "Turkmenistan",
242
+ "Turks and Caicos Islands",
243
+ "Tuvalu",
244
+ "Uganda",
245
+ "Ukraine",
246
+ "United Arab Emirates",
247
+ "United Kingdom",
248
+ "United States Minor Outlying Islands",
249
+ "United States Virgin Islands",
250
+ "United States of America",
251
+ "Uruguay",
252
+ "Uzbekistan",
253
+ "Vanuatu",
254
+ "Vatican City",
255
+ "Venezuela",
256
+ "Vietnam",
257
+ "Wales",
258
+ "Wallis and Futuna Islands",
259
+ "Western Sahara",
260
+ "Yemen",
261
+ "Zambia",
262
+ "Zimbabwe",
263
+ "\u00c5land Islands",
264
+ "China",
265
+ "Italy",
266
+ "Northern Cyprus",
267
+ "Portugal",
268
+ "Serbia"
269
+ ],
270
+ {
271
+ "World-Wide": [
272
+ "Africa",
273
+ "Americas",
274
+ "Asia",
275
+ "Europe",
276
+ "Oceania"
277
+ ],
278
+ "Africa": [
279
+ "Northern Africa",
280
+ "Sub-Saharan Africa"
281
+ ],
282
+ "Northern Africa": [
283
+ "Algeria",
284
+ "Egypt",
285
+ "Libya",
286
+ "Morocco",
287
+ "Sudan",
288
+ "Tunisia",
289
+ "Western Sahara"
290
+ ],
291
+ "Sub-Saharan Africa": [
292
+ "Eastern Africa",
293
+ "Middle Africa",
294
+ "Southern Africa",
295
+ "Western Africa"
296
+ ],
297
+ "Eastern Africa": [
298
+ "British Indian Ocean Territory",
299
+ "Burundi",
300
+ "Comoros",
301
+ "Djibouti",
302
+ "Eritrea",
303
+ "Ethiopia",
304
+ "French Southern Territories",
305
+ "Kenya",
306
+ "Madagascar",
307
+ "Malawi",
308
+ "Mauritius",
309
+ "Mayotte",
310
+ "Mozambique",
311
+ "R\u00e9union",
312
+ "Rwanda",
313
+ "Seychelles",
314
+ "Somalia",
315
+ "Somaliland",
316
+ "South Sudan",
317
+ "Uganda",
318
+ "Zambia",
319
+ "Zimbabwe",
320
+ "Tanzania"
321
+ ],
322
+ "Middle Africa": [
323
+ "Angola",
324
+ "Cameroon",
325
+ "Central African Republic",
326
+ "Chad",
327
+ "Congo",
328
+ "Equatorial Guinea",
329
+ "Gabon",
330
+ "S\u00e3o Tom\u00e9 and Pr\u00edncipe",
331
+ "Republic of the Congo"
332
+ ],
333
+ "Southern Africa": [
334
+ "Botswana",
335
+ "Eswatini",
336
+ "Lesotho",
337
+ "Namibia",
338
+ "South Africa"
339
+ ],
340
+ "Western Africa": [
341
+ "Benin",
342
+ "Burkina Faso",
343
+ "Ghana",
344
+ "Guinea",
345
+ "Guinea-Bissau",
346
+ "Liberia",
347
+ "Mali",
348
+ "Mauritania",
349
+ "Niger",
350
+ "Nigeria",
351
+ "Senegal",
352
+ "Sierra Leone",
353
+ "Togo",
354
+ "Cote d'Ivoire",
355
+ "Cape Verde",
356
+ "Saint Helena, Ascension and Tristan da Cunha",
357
+ "The Gambia"
358
+ ],
359
+ "Americas": [
360
+ "Latin America and the Caribbean",
361
+ "Northern America"
362
+ ],
363
+ "Latin America and the Caribbean": [
364
+ "Caribbean",
365
+ "Central America",
366
+ "South America"
367
+ ],
368
+ "Caribbean": [
369
+ "Anguilla",
370
+ "Antigua and Barbuda",
371
+ "Aruba",
372
+ "Barbados",
373
+ "British Virgin Islands",
374
+ "Cayman Islands",
375
+ "Cuba",
376
+ "Cura\u00e7ao",
377
+ "Dominica",
378
+ "Dominican Republic",
379
+ "Grenada",
380
+ "Guadeloupe",
381
+ "Haiti",
382
+ "Jamaica",
383
+ "Martinique",
384
+ "Montserrat",
385
+ "Puerto Rico",
386
+ "Saint Barth\u00e9lemy",
387
+ "Saint Kitts and Nevis",
388
+ "Saint Lucia",
389
+ "Saint Vincent and the Grenadines",
390
+ "Trinidad and Tobago",
391
+ "Turks and Caicos Islands",
392
+ "United States Virgin Islands",
393
+ "The Bahamas",
394
+ "Sint Maarten",
395
+ "Saint Martin",
396
+ "Bonaire, Saint Eustatius and Saba"
397
+ ],
398
+ "Central America": [
399
+ "Belize",
400
+ "Costa Rica",
401
+ "El Salvador",
402
+ "Guatemala",
403
+ "Honduras",
404
+ "Mexico",
405
+ "Nicaragua",
406
+ "Panama"
407
+ ],
408
+ "South America": [
409
+ "Argentina",
410
+ "Bouvet Island",
411
+ "Brazil",
412
+ "Chile",
413
+ "Colombia",
414
+ "Ecuador",
415
+ "French Guiana",
416
+ "Guyana",
417
+ "Paraguay",
418
+ "Peru",
419
+ "South Georgia and the South Sandwich Islands",
420
+ "Suriname",
421
+ "Uruguay",
422
+ "Bolivia",
423
+ "Venezuela",
424
+ "Falkland Islands"
425
+ ],
426
+ "Northern America": [
427
+ "Bermuda",
428
+ "Canada",
429
+ "Greenland",
430
+ "Saint Pierre and Miquelon",
431
+ "United States of America"
432
+ ],
433
+ "Asia": [
434
+ "Central Asia",
435
+ "Eastern Asia",
436
+ "South-eastern Asia",
437
+ "Southern Asia",
438
+ "Western Asia"
439
+ ],
440
+ "Central Asia": [
441
+ "Kazakhstan",
442
+ "Kyrgyzstan",
443
+ "Tajikistan",
444
+ "Turkmenistan",
445
+ "Uzbekistan"
446
+ ],
447
+ "Eastern Asia": [
448
+ "Japan",
449
+ "Mongolia",
450
+ "North Korea",
451
+ "South Korea",
452
+ "Hong Kong",
453
+ "Macau",
454
+ "Taiwan",
455
+ "China"
456
+ ],
457
+ "South-eastern Asia": [
458
+ "Cambodia",
459
+ "Indonesia",
460
+ "Malaysia",
461
+ "Myanmar",
462
+ "Philippines",
463
+ "Singapore",
464
+ "Thailand",
465
+ "Timor-Leste",
466
+ "Vietnam",
467
+ "Laos",
468
+ "Brunei"
469
+ ],
470
+ "Southern Asia": [
471
+ "Afghanistan",
472
+ "Bangladesh",
473
+ "Bhutan",
474
+ "India",
475
+ "Maldives",
476
+ "Nepal",
477
+ "Pakistan",
478
+ "Sri Lanka",
479
+ "Iran"
480
+ ],
481
+ "Western Asia": [
482
+ "Armenia",
483
+ "Azerbaijan",
484
+ "Bahrain",
485
+ "Cyprus",
486
+ "Georgia",
487
+ "Iraq",
488
+ "Israel",
489
+ "Jordan",
490
+ "Kuwait",
491
+ "Lebanon",
492
+ "Oman",
493
+ "Qatar",
494
+ "Saudi Arabia",
495
+ "Turkey",
496
+ "United Arab Emirates",
497
+ "Yemen",
498
+ "Syria",
499
+ "Palestine"
500
+ ],
501
+ "Europe": [
502
+ "Eastern Europe",
503
+ "Northern Europe",
504
+ "Southern Europe",
505
+ "Western Europe"
506
+ ],
507
+ "Eastern Europe": [
508
+ "Belarus",
509
+ "Bulgaria",
510
+ "Hungary",
511
+ "Poland",
512
+ "Romania",
513
+ "Slovakia",
514
+ "Ukraine",
515
+ "Czech Republic",
516
+ "Russia",
517
+ "Moldova",
518
+ "Serbia"
519
+ ],
520
+ "Northern Europe": [
521
+ "\u00c5land Islands",
522
+ "Channel Islands",
523
+ "Denmark",
524
+ "Estonia",
525
+ "Faroe Islands",
526
+ "Finland",
527
+ "Iceland",
528
+ "Ireland",
529
+ "Isle of Man",
530
+ "Latvia",
531
+ "Lithuania",
532
+ "Norway",
533
+ "Svalbard and Jan Mayen Islands",
534
+ "Sweden",
535
+ "United Kingdom",
536
+ "Scotland",
537
+ "England",
538
+ "Northern Ireland",
539
+ "Wales"
540
+ ],
541
+ "Channel Islands": [
542
+ "Guernsey",
543
+ "Jersey",
544
+ "Sark"
545
+ ],
546
+ "Southern Europe": [
547
+ "Albania",
548
+ "Andorra",
549
+ "Bosnia and Herzegovina",
550
+ "Croatia",
551
+ "Gibraltar",
552
+ "Greece",
553
+ "Holy See",
554
+ "Malta",
555
+ "Montenegro",
556
+ "North Macedonia",
557
+ "San Marino",
558
+ "Slovenia",
559
+ "Spain",
560
+ "Azores",
561
+ "Vatican City",
562
+ "Madeira",
563
+ "Kosovo",
564
+ "Italy",
565
+ "Northern Cyprus",
566
+ "Portugal"
567
+ ],
568
+ "Western Europe": [
569
+ "Austria",
570
+ "Belgium",
571
+ "France",
572
+ "Germany",
573
+ "Liechtenstein",
574
+ "Luxembourg",
575
+ "Monaco",
576
+ "Netherlands",
577
+ "Switzerland"
578
+ ],
579
+ "Oceania": [
580
+ "Australia and New Zealand",
581
+ "Pacific Islands"
582
+ ],
583
+ "Australia and New Zealand": [
584
+ "Australia",
585
+ "Christmas Island",
586
+ "Cocos (Keeling) Islands",
587
+ "Heard Island and McDonald Islands",
588
+ "New Zealand",
589
+ "Norfolk Island"
590
+ ],
591
+ "Melanesia": [
592
+ "Fiji",
593
+ "New Caledonia",
594
+ "Papua New Guinea",
595
+ "Solomon Islands",
596
+ "Vanuatu"
597
+ ],
598
+ "Micronesia": [
599
+ "Guam",
600
+ "Kiribati",
601
+ "Marshall Islands",
602
+ "Nauru",
603
+ "Northern Mariana Islands",
604
+ "Palau",
605
+ "United States Minor Outlying Islands",
606
+ "Federated States of Micronesia"
607
+ ],
608
+ "Polynesia": [
609
+ "American Samoa",
610
+ "Cook Islands",
611
+ "French Polynesia",
612
+ "Niue",
613
+ "Samoa",
614
+ "Tokelau",
615
+ "Tonga",
616
+ "Tuvalu",
617
+ "Wallis and Futuna Islands",
618
+ "Pitcairn Islands"
619
+ ],
620
+ "Pacific Islands": [
621
+ "Melanesia",
622
+ "Micronesia",
623
+ "Polynesia"
624
+ ],
625
+ "Middle East and North Africa": [
626
+ "Algeria",
627
+ "Bahrain",
628
+ "Djibouti",
629
+ "Egypt",
630
+ "Iraq",
631
+ "Israel",
632
+ "Jordan",
633
+ "Kuwait",
634
+ "Lebanon",
635
+ "Libya",
636
+ "Malta",
637
+ "Mauritania",
638
+ "Morocco",
639
+ "Oman",
640
+ "Palestine",
641
+ "Qatar",
642
+ "Saudi Arabia",
643
+ "Somalia",
644
+ "Sudan",
645
+ "Syria",
646
+ "Tunisia",
647
+ "United Arab Emirates",
648
+ "Western Sahara",
649
+ "Yemen"
650
+ ]
651
+ }
652
+ ]
resources/file_formats.json ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Text": {
3
+ ".CSV": "Comma-Separated Values File",
4
+ ".DOC": "Microsoft Word Document (Legacy)",
5
+ ".DOCX": "Microsoft Word Document",
6
+ ".ODT": "OpenDocument Text Document",
7
+ ".PAGES": "Apple Pages Document",
8
+ ".PDF": "Portable Document Format File",
9
+ ".RTF": "Rich Text Format File",
10
+ ".TEX": "LaTeX Source Document",
11
+ ".TXT": "Plain Text File",
12
+ ".WPD": "WordPerfect Document",
13
+ ".WPS": "Microsoft Works Document"
14
+ },
15
+ "Data": {
16
+ ".CSV" : "Comma-Separated Values File",
17
+ ".DAT" : "Data File",
18
+ ".GED" : "GEDCOM Genealogy Data File",
19
+ ".JSON": "JavaScript Object Notation File",
20
+ ".KEY" : "Apple Keynote Presentation",
21
+ ".KEYCHAIN" : "Mac OS X Keychain File",
22
+ ".NUMBERS" : "Apple Numbers Spreadsheet",
23
+ ".ODS": "OpenDocument Spreadsheet File",
24
+ ".ODP": "OpenDocument Presentation File",
25
+ ".PPT" : "Microsoft PowerPoint Presentation (Legacy)",
26
+ ".PPTX" : "Microsoft PowerPoint Presentation",
27
+ ".SDF" : "Standard Data File",
28
+ ".TAR" : "Consolidated Unix File Archive",
29
+ ".TOML" : "TOML (TOML Language) File",
30
+ ".VCF" : "vCard File",
31
+ ".XLR" : "Works Spreadsheet",
32
+ ".XLS": "Microsoft Excel Spreadsheet (Legacy)",
33
+ ".XLSX": "Microsoft Excel Spreadsheet",
34
+ ".XML" : "XML File",
35
+ ".YAML" : "YAML File"
36
+ },
37
+ "Database": {
38
+ ".ACCDB" : "Microsoft Access Database",
39
+ ".DB": "Database File",
40
+ ".DBF": "dBASE File",
41
+ ".FDB": "Firebird Database File",
42
+ ".MDB": "Microsoft Access Database File",
43
+ ".SQL": "SQL Database File",
44
+ ".SQLITE": "SQLite Database File",
45
+ ".TDB": "SQLite Database File",
46
+ ".VSDB": "Visual Studio Database File",
47
+ ".XML": "XML Database File"
48
+ },
49
+ "Web": {
50
+ ".ASP" : "Active Server Page",
51
+ ".ASPX" : "Active Server Page Extended File",
52
+ ".CER" : "Internet Security Certificate",
53
+ ".CFM" : "ColdFusion Markup File",
54
+ ".CRDOWNLOAD" : "Chrome Partially Downloaded File",
55
+ ".CSR" : "Certificate Signing Request File",
56
+ ".CSS" : "Cascading Style Sheet",
57
+ ".DCR" : "Shockwave Media File",
58
+ ".HTM" : "Hypertext Markup Language File",
59
+ ".HTML" : "Hypertext Markup Language File",
60
+ ".JS" : "JavaScript File",
61
+ ".JSP" : "Java Server Page",
62
+ ".PHP" : "PHP Source Code File",
63
+ ".RSS" : "Rich Site Summary",
64
+ ".XHTML" : "Extensible Hypertext Markup Language File"
65
+ },
66
+ "Audio": {
67
+ ".AIF" : "Audio Interchange File",
68
+ ".AIFF" : "Audio Interchange File",
69
+ ".IFF" : "Audio Interchange File",
70
+ ".AU" : "Sun Audio File",
71
+ ".CAF" : "Core Audio File",
72
+ ".CDA" : "Compact Disc Audio File",
73
+ ".FLAC" : "Free Lossless Audio Codec File",
74
+ ".M4A" : "MPEG-4 Audio File",
75
+ ".M4B" : "MPEG-4 Audio Book File",
76
+ ".M4P" : "MPEG-4 Protected Audio File",
77
+ ".M4R" : "MPEG-4 Ringtone File",
78
+ ".M4V" : "MPEG-4 Video File",
79
+ ".MID" : "MIDI File",
80
+ ".MKA" : "Matroska Audio File",
81
+ ".MP3" : "MPEG-1 Audio Layer 3 File",
82
+ ".MP4" : "MPEG-4 Audio File",
83
+ ".MPC" : "Musepack Audio File",
84
+ ".OGG" : "Ogg Vorbis File",
85
+ ".RA" : "Real Audio File",
86
+ ".RAM" : "Real Media Audio File",
87
+ ".WAV" : "Waveform Audio File",
88
+ ".WMA" : "Windows Media Audio File"
89
+ },
90
+ "Video": {
91
+ ".3G2" : "3GPP2 Multimedia File",
92
+ ".3GP" : "3GPP Multimedia File",
93
+ ".ASF" : "Advanced Systems Format File",
94
+ ".AVI" : "Audio Video Interleave File",
95
+ ".FLV" : "Flash Video File",
96
+ ".M4V" : "iTunes Video File",
97
+ ".MOV" : "Apple QuickTime Movie",
98
+ ".MP4" : "MPEG-4 Video File",
99
+ ".MPG" : "MPEG Video File",
100
+ ".RM" : "RealMedia File",
101
+ ".SRT" : "SubRip Subtitle File",
102
+ ".SWF" : "Shockwave Flash Movie",
103
+ ".VOB" : "DVD Video Object File",
104
+ ".WMV" : "Windows Media Video"
105
+ },
106
+ "Image": {
107
+ ".AI" : "Adobe Illustrator File",
108
+ ".BMP" : "Bitmap Image",
109
+ ".CUR" : "Windows Cursor File",
110
+ ".DCX" : "ZSoft IBM PC Multi-page Paintbrush File",
111
+ ".DDS" : "DirectDraw Surface",
112
+ ".EPS" : "Encapsulated PostScript File",
113
+ ".GIF" : "Graphics Interchange Format File",
114
+ ".HEIC" : "High Efficiency Image File Format",
115
+ ".ICO" : "Windows Icon File",
116
+ ".JP2" : "JPEG 2000 File",
117
+ ".JPEG2" : "JPEG 2000 File",
118
+ ".JPG" : "JPEG Image",
119
+ ".JPEG" : "JPEG Image",
120
+ ".PBM" : "Portable Bitmap Image",
121
+ ".PCT" : "Macintosh Picture File",
122
+ ".PCX" : "PC Paintbrush Exchange File",
123
+ ".PGM" : "Portable Graymap Image",
124
+ ".PNG" : "Portable Network Graphics File",
125
+ ".PPM" : "Portable Pixmap Image",
126
+ ".PSD" : "Adobe Photoshop File",
127
+ ".PSP" : "Paint Shop Pro Image",
128
+ ".SVG" : "Scalable Vector Graphics File",
129
+ ".TGA" : "Truevision Targa File",
130
+ ".THM" : "Microsoft Thumbnail File",
131
+ ".TIF" : "Tagged Image File",
132
+ ".TIFF" : "Tagged Image File",
133
+ ".XBM" : "X11 Bitmap Image",
134
+ ".XPM" : "X11 Pixmap Image",
135
+ ".YUB" : "YUV Encoded Image File"
136
+ },
137
+ "Compressed" : {
138
+ ".7Z" : "7-Zip Compressed File",
139
+ ".ACE" : "WinZip Compressed File",
140
+ ".ARC" : "ARJ Compressed File",
141
+ ".ARJ" : "ARJ Compressed File",
142
+ ".BZ" : "BZip Compressed File",
143
+ ".BZ2" : "BZip2 Compressed File",
144
+ ".CAB" : "Microsoft Cabinet File",
145
+ ".CRB" : "Comic Book RAR Archive",
146
+ ".DMG" : "Apple Disk Image",
147
+ ".DEB" : "Debian Software Package",
148
+ ".GZ" : "GZip Compressed File",
149
+ ".GZIP" : "GZip Compressed File",
150
+ ".LZH" : "LZH Compressed File",
151
+ ".LZIP" : "LZip Compressed File",
152
+ ".LZMA" : "LZMA Compressed File",
153
+ ".LZOP" : "LZOP Compressed File",
154
+ ".PKG" : "Mac OS X Installer Package",
155
+ ".RAR" : "RAR Compressed File",
156
+ ".RPM" : "Red Hat Package Manager File",
157
+ ".TAR.GZ" : "Compressed Tarball File",
158
+ ".TGZ" : "Tar Compressed File",
159
+ ".Z" : "Unix Compressed File",
160
+ ".ZIP" : "ZIP Compressed File",
161
+ ".ZIPX" : "ZIPX Compressed File",
162
+ ".ZOO" : "ZOO Compressed File"
163
+ }
164
+ }
resources/language_lists.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language_groups": {
3
+ "Niger-Congo": "African languages of the Niger-Congo family, incl. Bantu languages",
4
+ "Arabic": "Arabic",
5
+ "Basque": "Basque",
6
+ "Catalan": "Catalan",
7
+ "Chinese": "Chinese",
8
+ "English": "English",
9
+ "French": "French",
10
+ "Indic": "Indic languages, incl. Bengali, Hindi, Urdu...",
11
+ "Indonesian": "Indonesian",
12
+ "Portuguese": "Portuguese",
13
+ "Spanish": "Spanish",
14
+ "Vietnamese": "Vietnamese",
15
+ "Programming Language": "Programming Language"
16
+ },
17
+ "niger_congo_languages": [
18
+ "Akan",
19
+ "Bambara",
20
+ "Chi Chewa",
21
+ "ChiShona",
22
+ "ChiTumbuka",
23
+ "Fon",
24
+ "Igbo",
25
+ "isiZulu",
26
+ "Kinyarwanda",
27
+ "Kikongo",
28
+ "Kikuyu",
29
+ "Kirundi",
30
+ "Lingala",
31
+ "Luganda",
32
+ "Northern Sotho",
33
+ "Sesotho",
34
+ "Setswana",
35
+ "Swahili",
36
+ "Twi",
37
+ "Wolof",
38
+ "Xhosa",
39
+ "Xitsonga",
40
+ "Yoruba"
41
+ ],
42
+ "indic_languages": [
43
+ "Assamese",
44
+ "Bengali",
45
+ "Gujarati",
46
+ "Hindi",
47
+ "Kannada",
48
+ "Malayalam",
49
+ "Marathi",
50
+ "Odia",
51
+ "Punjabi",
52
+ "Telugu",
53
+ "Tamil",
54
+ "Urdu"
55
+ ],
56
+ "arabic": {
57
+ "ar-CLS": "(Arabic (Classic))",
58
+ "ar-MSA": "(Arabic (Modern Standard Arabic))",
59
+ "ar-LEV": "(Arabic (Levant))",
60
+ "ar-NOR": "(Arabic (North Africa))",
61
+ "ar-GLF": "(Arabic (Gulf))",
62
+ "ar-AE": "(Arabic (United Arab Emirates))",
63
+ "ar-BH": "(Arabic (Bahrain))",
64
+ "ar-DJ": "(Arabic (Djibouti))",
65
+ "ar-DZ": "(Arabic (Algeria))",
66
+ "ar-EG": "(Arabic (Egypt))",
67
+ "ar-IQ": "(Arabic (Iraq))",
68
+ "ar-JO": "(Arabic (Jordan))",
69
+ "ar-KM": "(Arabic (Comoros))",
70
+ "ar-KW": "(Arabic (Kuwait))",
71
+ "ar-LB": "(Arabic (Lebanon))",
72
+ "ar-LY": "(Arabic (Libya))",
73
+ "ar-MA": "(Arabic (Morocco))",
74
+ "ar-MR": "(Arabic (Mauritania))",
75
+ "ar-OM": "(Arabic (Oman))",
76
+ "ar-PS": "(Arabic (Palestinian Territories))",
77
+ "ar-QA": "(Arabic (Qatar))",
78
+ "ar-SA": "(Arabic (Saudi Arabia))",
79
+ "ar-SD": "(Arabic (Sudan))",
80
+ "ar-SO": "(Arabic (Somalia))",
81
+ "ar-SS": "(Arabic (South Sudan))",
82
+ "ar-SY": "(Arabic (Syria))",
83
+ "ar-TN": "(Arabic (Tunisia))",
84
+ "ar-YE": "(Arabic (Yemen))"
85
+ }
86
+ }
resources/licenses.json ADDED
@@ -0,0 +1,452 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ "other: Other license",
3
+ "unknown: License information unavailable",
4
+ "0bsd: BSD Zero Clause License",
5
+ "aal: Attribution Assurance License",
6
+ "abstyles: Abstyles License",
7
+ "adobe-2006: Adobe Systems Incorporated Source Code License Agreement",
8
+ "adobe-glyph: Adobe Glyph List License",
9
+ "adsl: Amazon Digital Services License",
10
+ "afl-1.1: Academic Free License v1.1",
11
+ "afl-1.2: Academic Free License v1.2",
12
+ "afl-2.0: Academic Free License v2.0",
13
+ "afl-2.1: Academic Free License v2.1",
14
+ "afl-3.0: Academic Free License v3.0",
15
+ "afmparse: Afmparse License",
16
+ "agpl-1.0: Affero General Public License v1.0",
17
+ "agpl-1.0-only: Affero General Public License v1.0 only",
18
+ "agpl-1.0-or-later: Affero General Public License v1.0 or later",
19
+ "agpl-3.0: GNU Affero General Public License v3.0",
20
+ "agpl-3.0-only: GNU Affero General Public License v3.0 only",
21
+ "agpl-3.0-or-later: GNU Affero General Public License v3.0 or later",
22
+ "aladdin: Aladdin Free Public License",
23
+ "amdplpa: AMD's plpa_map.c License",
24
+ "aml: Apple MIT License",
25
+ "ampas: Academy of Motion Picture Arts and Sciences BSD",
26
+ "antlr-pd: ANTLR Software Rights Notice",
27
+ "antlr-pd-fallback: ANTLR Software Rights Notice with license fallback",
28
+ "apache-1.0: Apache License 1.0",
29
+ "apache-1.1: Apache License 1.1",
30
+ "apache-2.0: Apache License 2.0",
31
+ "apafml: Adobe Postscript AFM License",
32
+ "apl-1.0: Adaptive Public License 1.0",
33
+ "apsl-1.0: Apple Public Source License 1.0",
34
+ "apsl-1.1: Apple Public Source License 1.1",
35
+ "apsl-1.2: Apple Public Source License 1.2",
36
+ "apsl-2.0: Apple Public Source License 2.0",
37
+ "artistic-1.0: Artistic License 1.0",
38
+ "artistic-1.0-cl8: Artistic License 1.0 w/clause 8",
39
+ "artistic-1.0-perl: Artistic License 1.0 (Perl)",
40
+ "artistic-2.0: Artistic License 2.0",
41
+ "bahyph: Bahyph License",
42
+ "barr: Barr License",
43
+ "beerware: Beerware License",
44
+ "bittorrent-1.0: BitTorrent Open Source License v1.0",
45
+ "bittorrent-1.1: BitTorrent Open Source License v1.1",
46
+ "blessing: SQLite Blessing",
47
+ "blueoak-1.0.0: Blue Oak Model License 1.0.0",
48
+ "borceux: Borceux license",
49
+ "bsd-1-clause: BSD 1-Clause License",
50
+ "bsd-2-clause: BSD 2-Clause \"Simplified\" License",
51
+ "bsd-2-clause-freebsd: BSD 2-Clause FreeBSD License",
52
+ "bsd-2-clause-netbsd: BSD 2-Clause NetBSD License",
53
+ "bsd-2-clause-patent: BSD-2-Clause Plus Patent License",
54
+ "bsd-2-clause-views: BSD 2-Clause with views sentence",
55
+ "bsd-3-clause: BSD 3-Clause \"New\" or \"Revised\" License",
56
+ "bsd-3-clause-attribution: BSD with attribution",
57
+ "bsd-3-clause-clear: BSD 3-Clause Clear License",
58
+ "bsd-3-clause-lbnl: Lawrence Berkeley National Labs BSD variant license",
59
+ "bsd-3-clause-no-nuclear-license: BSD 3-Clause No Nuclear License",
60
+ "bsd-3-clause-no-nuclear-license-2014: BSD 3-Clause No Nuclear License 2014",
61
+ "bsd-3-clause-no-nuclear-warranty: BSD 3-Clause No Nuclear Warranty",
62
+ "bsd-3-clause-open-mpi: BSD 3-Clause Open MPI variant",
63
+ "bsd-4-clause: BSD 4-Clause \"Original\" or \"Old\" License",
64
+ "bsd-4-clause-uc: BSD-4-Clause (University of California-Specific)",
65
+ "bsd-protection: BSD Protection License",
66
+ "bsd-source-code: BSD Source Code Attribution",
67
+ "bsl-1.0: Boost Software License 1.0",
68
+ "busl-1.1: Business Source License 1.1",
69
+ "bzip2-1.0.5: bzip2 and libbzip2 License v1.0.5",
70
+ "bzip2-1.0.6: bzip2 and libbzip2 License v1.0.6",
71
+ "cal-1.0: Cryptographic Autonomy License 1.0",
72
+ "cal-1.0-combined-work-exception: Cryptographic Autonomy License 1.0 (Combined Work Exception)",
73
+ "caldera: Caldera License",
74
+ "catosl-1.1: Computer Associates Trusted Open Source License 1.1",
75
+ "cc-by-1.0: Creative Commons Attribution 1.0 Generic",
76
+ "cc-by-2.0: Creative Commons Attribution 2.0 Generic",
77
+ "cc-by-2.5: Creative Commons Attribution 2.5 Generic",
78
+ "cc-by-3.0: Creative Commons Attribution 3.0 Unported",
79
+ "cc-by-3.0-at: Creative Commons Attribution 3.0 Austria",
80
+ "cc-by-3.0-us: Creative Commons Attribution 3.0 United States",
81
+ "cc-by-4.0: Creative Commons Attribution 4.0 International",
82
+ "cc-by-nc-1.0: Creative Commons Attribution Non Commercial 1.0 Generic",
83
+ "cc-by-nc-2.0: Creative Commons Attribution Non Commercial 2.0 Generic",
84
+ "cc-by-nc-2.5: Creative Commons Attribution Non Commercial 2.5 Generic",
85
+ "cc-by-nc-3.0: Creative Commons Attribution Non Commercial 3.0 Unported",
86
+ "cc-by-nc-4.0: Creative Commons Attribution Non Commercial 4.0 International",
87
+ "cc-by-nc-nd-1.0: Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic",
88
+ "cc-by-nc-nd-2.0: Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic",
89
+ "cc-by-nc-nd-2.5: Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic",
90
+ "cc-by-nc-nd-3.0: Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported",
91
+ "cc-by-nc-nd-3.0-igo: Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO",
92
+ "cc-by-nc-nd-4.0: Creative Commons Attribution Non Commercial No Derivatives 4.0 International",
93
+ "cc-by-nc-sa-1.0: Creative Commons Attribution Non Commercial Share Alike 1.0 Generic",
94
+ "cc-by-nc-sa-2.0: Creative Commons Attribution Non Commercial Share Alike 2.0 Generic",
95
+ "cc-by-nc-sa-2.5: Creative Commons Attribution Non Commercial Share Alike 2.5 Generic",
96
+ "cc-by-nc-sa-3.0: Creative Commons Attribution Non Commercial Share Alike 3.0 Unported",
97
+ "cc-by-nc-sa-4.0: Creative Commons Attribution Non Commercial Share Alike 4.0 International",
98
+ "cc-by-nd-1.0: Creative Commons Attribution No Derivatives 1.0 Generic",
99
+ "cc-by-nd-2.0: Creative Commons Attribution No Derivatives 2.0 Generic",
100
+ "cc-by-nd-2.5: Creative Commons Attribution No Derivatives 2.5 Generic",
101
+ "cc-by-nd-3.0: Creative Commons Attribution No Derivatives 3.0 Unported",
102
+ "cc-by-nd-4.0: Creative Commons Attribution No Derivatives 4.0 International",
103
+ "cc-by-sa-1.0: Creative Commons Attribution Share Alike 1.0 Generic",
104
+ "cc-by-sa-2.0: Creative Commons Attribution Share Alike 2.0 Generic",
105
+ "cc-by-sa-2.0-uk: Creative Commons Attribution Share Alike 2.0 England and Wales",
106
+ "cc-by-sa-2.5: Creative Commons Attribution Share Alike 2.5 Generic",
107
+ "cc-by-sa-3.0: Creative Commons Attribution Share Alike 3.0 Unported",
108
+ "cc-by-sa-3.0-at: Creative Commons Attribution-Share Alike 3.0 Austria",
109
+ "cc-by-sa-4.0: Creative Commons Attribution Share Alike 4.0 International",
110
+ "cc-pddc: Creative Commons Public Domain Dedication and Certification",
111
+ "cc0-1.0: Creative Commons Zero v1.0 Universal",
112
+ "cddl-1.0: Common Development and Distribution License 1.0",
113
+ "cddl-1.1: Common Development and Distribution License 1.1",
114
+ "cdla-permissive-1.0: Community Data License Agreement Permissive 1.0",
115
+ "cdla-sharing-1.0: Community Data License Agreement Sharing 1.0",
116
+ "cecill-1.0: CeCILL Free Software License Agreement v1.0",
117
+ "cecill-1.1: CeCILL Free Software License Agreement v1.1",
118
+ "cecill-2.0: CeCILL Free Software License Agreement v2.0",
119
+ "cecill-2.1: CeCILL Free Software License Agreement v2.1",
120
+ "cecill-b: CeCILL-B Free Software License Agreement",
121
+ "cecill-c: CeCILL-C Free Software License Agreement",
122
+ "cern-ohl-1.1: CERN Open Hardware Licence v1.1",
123
+ "cern-ohl-1.2: CERN Open Hardware Licence v1.2",
124
+ "cern-ohl-p-2.0: CERN Open Hardware Licence Version 2 - Permissive",
125
+ "cern-ohl-s-2.0: CERN Open Hardware Licence Version 2 - Strongly Reciprocal",
126
+ "cern-ohl-w-2.0: CERN Open Hardware Licence Version 2 - Weakly Reciprocal",
127
+ "clartistic: Clarified Artistic License",
128
+ "cnri-jython: CNRI Jython License",
129
+ "cnri-python: CNRI Python License",
130
+ "cnri-python-gpl-compatible: CNRI Python Open Source GPL Compatible License Agreement",
131
+ "condor-1.1: Condor Public License v1.1",
132
+ "copyleft-next-0.3.0: copyleft-next 0.3.0",
133
+ "copyleft-next-0.3.1: copyleft-next 0.3.1",
134
+ "cpal-1.0: Common Public Attribution License 1.0",
135
+ "cpl-1.0: Common Public License 1.0",
136
+ "cpol-1.02: Code Project Open License 1.02",
137
+ "crossword: Crossword License",
138
+ "crystalstacker: CrystalStacker License",
139
+ "cua-opl-1.0: CUA Office Public License v1.0",
140
+ "cube: Cube License",
141
+ "curl: curl License",
142
+ "d-fsl-1.0: Deutsche Freie Software Lizenz",
143
+ "diffmark: diffmark license",
144
+ "doc: DOC License",
145
+ "dotseqn: Dotseqn License",
146
+ "dsdp: DSDP License",
147
+ "dvipdfm: dvipdfm License",
148
+ "ecl-1.0: Educational Community License v1.0",
149
+ "ecl-2.0: Educational Community License v2.0",
150
+ "ecos-2.0: eCos license version 2.0",
151
+ "efl-1.0: Eiffel Forum License v1.0",
152
+ "efl-2.0: Eiffel Forum License v2.0",
153
+ "egenix: eGenix.com Public License 1.1.0",
154
+ "entessa: Entessa Public License v1.0",
155
+ "epics: EPICS Open License",
156
+ "epl-1.0: Eclipse Public License 1.0",
157
+ "epl-2.0: Eclipse Public License 2.0",
158
+ "erlpl-1.1: Erlang Public License v1.1",
159
+ "etalab-2.0: Etalab Open License 2.0",
160
+ "eudatagrid: EU DataGrid Software License",
161
+ "eupl-1.0: European Union Public License 1.0",
162
+ "eupl-1.1: European Union Public License 1.1",
163
+ "eupl-1.2: European Union Public License 1.2",
164
+ "eurosym: Eurosym License",
165
+ "fair: Fair License",
166
+ "frameworx-1.0: Frameworx Open License 1.0",
167
+ "freeimage: FreeImage Public License v1.0",
168
+ "fsfap: FSF All Permissive License",
169
+ "fsful: FSF Unlimited License",
170
+ "fsfullr: FSF Unlimited License (with License Retention)",
171
+ "ftl: Freetype Project License",
172
+ "gfdl-1.1: GNU Free Documentation License v1.1",
173
+ "gfdl-1.1-invariants-only: GNU Free Documentation License v1.1 only - invariants",
174
+ "gfdl-1.1-invariants-or-later: GNU Free Documentation License v1.1 or later - invariants",
175
+ "gfdl-1.1-no-invariants-only: GNU Free Documentation License v1.1 only - no invariants",
176
+ "gfdl-1.1-no-invariants-or-later: GNU Free Documentation License v1.1 or later - no invariants",
177
+ "gfdl-1.1-only: GNU Free Documentation License v1.1 only",
178
+ "gfdl-1.1-or-later: GNU Free Documentation License v1.1 or later",
179
+ "gfdl-1.2: GNU Free Documentation License v1.2",
180
+ "gfdl-1.2-invariants-only: GNU Free Documentation License v1.2 only - invariants",
181
+ "gfdl-1.2-invariants-or-later: GNU Free Documentation License v1.2 or later - invariants",
182
+ "gfdl-1.2-no-invariants-only: GNU Free Documentation License v1.2 only - no invariants",
183
+ "gfdl-1.2-no-invariants-or-later: GNU Free Documentation License v1.2 or later - no invariants",
184
+ "gfdl-1.2-only: GNU Free Documentation License v1.2 only",
185
+ "gfdl-1.2-or-later: GNU Free Documentation License v1.2 or later",
186
+ "gfdl-1.3: GNU Free Documentation License v1.3",
187
+ "gfdl-1.3-invariants-only: GNU Free Documentation License v1.3 only - invariants",
188
+ "gfdl-1.3-invariants-or-later: GNU Free Documentation License v1.3 or later - invariants",
189
+ "gfdl-1.3-no-invariants-only: GNU Free Documentation License v1.3 only - no invariants",
190
+ "gfdl-1.3-no-invariants-or-later: GNU Free Documentation License v1.3 or later - no invariants",
191
+ "gfdl-1.3-only: GNU Free Documentation License v1.3 only",
192
+ "gfdl-1.3-or-later: GNU Free Documentation License v1.3 or later",
193
+ "giftware: Giftware License",
194
+ "gl2ps: GL2PS License",
195
+ "glide: 3dfx Glide License",
196
+ "glulxe: Glulxe License",
197
+ "glwtpl: Good Luck With That Public License",
198
+ "gnuplot: gnuplot License",
199
+ "gpl-1.0: GNU General Public License v1.0 only",
200
+ "gpl-1.0+: GNU General Public License v1.0 or later",
201
+ "gpl-1.0-only: GNU General Public License v1.0 only",
202
+ "gpl-1.0-or-later: GNU General Public License v1.0 or later",
203
+ "gpl-2.0: GNU General Public License v2.0 only",
204
+ "gpl-2.0+: GNU General Public License v2.0 or later",
205
+ "gpl-2.0-only: GNU General Public License v2.0 only",
206
+ "gpl-2.0-or-later: GNU General Public License v2.0 or later",
207
+ "gpl-2.0-with-autoconf-exception: GNU General Public License v2.0 w/Autoconf exception",
208
+ "gpl-2.0-with-bison-exception: GNU General Public License v2.0 w/Bison exception",
209
+ "gpl-2.0-with-classpath-exception: GNU General Public License v2.0 w/Classpath exception",
210
+ "gpl-2.0-with-font-exception: GNU General Public License v2.0 w/Font exception",
211
+ "gpl-2.0-with-gcc-exception: GNU General Public License v2.0 w/GCC Runtime Library exception",
212
+ "gpl-3.0: GNU General Public License v3.0 only",
213
+ "gpl-3.0+: GNU General Public License v3.0 or later",
214
+ "gpl-3.0-only: GNU General Public License v3.0 only",
215
+ "gpl-3.0-or-later: GNU General Public License v3.0 or later",
216
+ "gpl-3.0-with-autoconf-exception: GNU General Public License v3.0 w/Autoconf exception",
217
+ "gpl-3.0-with-gcc-exception: GNU General Public License v3.0 w/GCC Runtime Library exception",
218
+ "gsoap-1.3b: gSOAP Public License v1.3b",
219
+ "haskellreport: Haskell Language Report License",
220
+ "hippocratic-2.1: Hippocratic License 2.1",
221
+ "hpnd: Historical Permission Notice and Disclaimer",
222
+ "hpnd-sell-variant: Historical Permission Notice and Disclaimer - sell variant",
223
+ "htmltidy: HTML Tidy License",
224
+ "ibm-pibs: IBM PowerPC Initialization and Boot Software",
225
+ "icu: ICU License",
226
+ "ijg: Independent JPEG Group License",
227
+ "imagemagick: ImageMagick License",
228
+ "imatix: iMatix Standard Function Library Agreement",
229
+ "imlib2: Imlib2 License",
230
+ "info-zip: Info-ZIP License",
231
+ "intel: Intel Open Source License",
232
+ "intel-acpi: Intel ACPI Software License Agreement",
233
+ "interbase-1.0: Interbase Public License v1.0",
234
+ "ipa: IPA Font License",
235
+ "ipl-1.0: IBM Public License v1.0",
236
+ "isc: ISC License",
237
+ "jasper-2.0: JasPer License",
238
+ "jpnic: Japan Network Information Center License",
239
+ "json: JSON License",
240
+ "lal-1.2: Licence Art Libre 1.2",
241
+ "lal-1.3: Licence Art Libre 1.3",
242
+ "latex2e: Latex2e License",
243
+ "leptonica: Leptonica License",
244
+ "lgpl-2.0: GNU Library General Public License v2 only",
245
+ "lgpl-2.0+: GNU Library General Public License v2 or later",
246
+ "lgpl-2.0-only: GNU Library General Public License v2 only",
247
+ "lgpl-2.0-or-later: GNU Library General Public License v2 or later",
248
+ "lgpl-2.1: GNU Lesser General Public License v2.1 only",
249
+ "lgpl-2.1+: GNU Library General Public License v2.1 or later",
250
+ "lgpl-2.1-only: GNU Lesser General Public License v2.1 only",
251
+ "lgpl-2.1-or-later: GNU Lesser General Public License v2.1 or later",
252
+ "lgpl-3.0: GNU Lesser General Public License v3.0 only",
253
+ "lgpl-3.0+: GNU Lesser General Public License v3.0 or later",
254
+ "lgpl-3.0-only: GNU Lesser General Public License v3.0 only",
255
+ "lgpl-3.0-or-later: GNU Lesser General Public License v3.0 or later",
256
+ "lgpllr: Lesser General Public License For Linguistic Resources",
257
+ "libpng: libpng License",
258
+ "libpng-2.0: PNG Reference Library version 2",
259
+ "libselinux-1.0: libselinux public domain notice",
260
+ "libtiff: libtiff License",
261
+ "liliq-p-1.1: Licence Libre du Qu\u00e9bec \u2013 Permissive version 1.1",
262
+ "liliq-r-1.1: Licence Libre du Qu\u00e9bec \u2013 R\u00e9ciprocit\u00e9 version 1.1",
263
+ "liliq-rplus-1.1: Licence Libre du Qu\u00e9bec \u2013 R\u00e9ciprocit\u00e9 forte version 1.1",
264
+ "linux-openib: Linux Kernel Variant of OpenIB.org license",
265
+ "lpl-1.0: Lucent Public License Version 1.0",
266
+ "lpl-1.02: Lucent Public License v1.02",
267
+ "lppl-1.0: LaTeX Project Public License v1.0",
268
+ "lppl-1.1: LaTeX Project Public License v1.1",
269
+ "lppl-1.2: LaTeX Project Public License v1.2",
270
+ "lppl-1.3a: LaTeX Project Public License v1.3a",
271
+ "lppl-1.3c: LaTeX Project Public License v1.3c",
272
+ "makeindex: MakeIndex License",
273
+ "miros: The MirOS Licence",
274
+ "mit: MIT License",
275
+ "mit-0: MIT No Attribution",
276
+ "mit-advertising: Enlightenment License (e16)",
277
+ "mit-cmu: CMU License",
278
+ "mit-enna: enna License",
279
+ "mit-feh: feh License",
280
+ "mit-open-group: MIT Open Group variant",
281
+ "mitnfa: MIT +no-false-attribs license",
282
+ "motosoto: Motosoto License",
283
+ "mpich2: mpich2 License",
284
+ "mpl-1.0: Mozilla Public License 1.0",
285
+ "mpl-1.1: Mozilla Public License 1.1",
286
+ "mpl-2.0: Mozilla Public License 2.0",
287
+ "mpl-2.0-no-copyleft-exception: Mozilla Public License 2.0 (no copyleft exception)",
288
+ "ms-pl: Microsoft Public License",
289
+ "ms-rl: Microsoft Reciprocal License",
290
+ "mtll: Matrix Template Library License",
291
+ "mulanpsl-1.0: Mulan Permissive Software License, Version 1",
292
+ "mulanpsl-2.0: Mulan Permissive Software License, Version 2",
293
+ "multics: Multics License",
294
+ "mup: Mup License",
295
+ "nasa-1.3: NASA Open Source Agreement 1.3",
296
+ "naumen: Naumen Public License",
297
+ "nbpl-1.0: Net Boolean Public License v1",
298
+ "ncgl-uk-2.0: Non-Commercial Government Licence",
299
+ "ncsa: University of Illinois/NCSA Open Source License",
300
+ "net-snmp: Net-SNMP License",
301
+ "netcdf: NetCDF license",
302
+ "newsletr: Newsletr License",
303
+ "ngpl: Nethack General Public License",
304
+ "nist-pd: NIST Public Domain Notice",
305
+ "nist-pd-fallback: NIST Public Domain Notice with license fallback",
306
+ "nlod-1.0: Norwegian Licence for Open Government Data",
307
+ "nlpl: No Limit Public License",
308
+ "nokia: Nokia Open Source License",
309
+ "nosl: Netizen Open Source License",
310
+ "noweb: Noweb License",
311
+ "npl-1.0: Netscape Public License v1.0",
312
+ "npl-1.1: Netscape Public License v1.1",
313
+ "nposl-3.0: Non-Profit Open Software License 3.0",
314
+ "nrl: NRL License",
315
+ "ntp: NTP License",
316
+ "ntp-0: NTP No Attribution",
317
+ "nunit: Nunit License",
318
+ "o-uda-1.0: Open Use of Data Agreement v1.0",
319
+ "occt-pl: Open CASCADE Technology Public License",
320
+ "oclc-2.0: OCLC Research Public License 2.0",
321
+ "odbl-1.0: ODC Open Database License v1.0",
322
+ "odc-by-1.0: Open Data Commons Attribution License v1.0",
323
+ "ofl-1.0: SIL Open Font License 1.0",
324
+ "ofl-1.0-no-rfn: SIL Open Font License 1.0 with no Reserved Font Name",
325
+ "ofl-1.0-rfn: SIL Open Font License 1.0 with Reserved Font Name",
326
+ "ofl-1.1: SIL Open Font License 1.1",
327
+ "ofl-1.1-no-rfn: SIL Open Font License 1.1 with no Reserved Font Name",
328
+ "ofl-1.1-rfn: SIL Open Font License 1.1 with Reserved Font Name",
329
+ "ogc-1.0: OGC Software License, Version 1.0",
330
+ "ogl-canada-2.0: Open Government Licence - Canada",
331
+ "ogl-uk-1.0: Open Government Licence v1.0",
332
+ "ogl-uk-2.0: Open Government Licence v2.0",
333
+ "ogl-uk-3.0: Open Government Licence v3.0",
334
+ "ogtsl: Open Group Test Suite License",
335
+ "oldap-1.1: Open LDAP Public License v1.1",
336
+ "oldap-1.2: Open LDAP Public License v1.2",
337
+ "oldap-1.3: Open LDAP Public License v1.3",
338
+ "oldap-1.4: Open LDAP Public License v1.4",
339
+ "oldap-2.0: Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)",
340
+ "oldap-2.0.1: Open LDAP Public License v2.0.1",
341
+ "oldap-2.1: Open LDAP Public License v2.1",
342
+ "oldap-2.2: Open LDAP Public License v2.2",
343
+ "oldap-2.2.1: Open LDAP Public License v2.2.1",
344
+ "oldap-2.2.2: Open LDAP Public License 2.2.2",
345
+ "oldap-2.3: Open LDAP Public License v2.3",
346
+ "oldap-2.4: Open LDAP Public License v2.4",
347
+ "oldap-2.5: Open LDAP Public License v2.5",
348
+ "oldap-2.6: Open LDAP Public License v2.6",
349
+ "oldap-2.7: Open LDAP Public License v2.7",
350
+ "oldap-2.8: Open LDAP Public License v2.8",
351
+ "oml: Open Market License",
352
+ "openssl: OpenSSL License",
353
+ "opl-1.0: Open Public License v1.0",
354
+ "oset-pl-2.1: OSET Public License version 2.1",
355
+ "osl-1.0: Open Software License 1.0",
356
+ "osl-1.1: Open Software License 1.1",
357
+ "osl-2.0: Open Software License 2.0",
358
+ "osl-2.1: Open Software License 2.1",
359
+ "osl-3.0: Open Software License 3.0",
360
+ "parity-6.0.0: The Parity Public License 6.0.0",
361
+ "parity-7.0.0: The Parity Public License 7.0.0",
362
+ "pddl-1.0: ODC Public Domain Dedication & License 1.0",
363
+ "php-3.0: PHP License v3.0",
364
+ "php-3.01: PHP License v3.01",
365
+ "plexus: Plexus Classworlds License",
366
+ "polyform-noncommercial-1.0.0: PolyForm Noncommercial License 1.0.0",
367
+ "polyform-small-business-1.0.0: PolyForm Small Business License 1.0.0",
368
+ "postgresql: PostgreSQL License",
369
+ "psf-2.0: Python Software Foundation License 2.0",
370
+ "psfrag: psfrag License",
371
+ "psutils: psutils License",
372
+ "python-2.0: Python License 2.0",
373
+ "qhull: Qhull License",
374
+ "qpl-1.0: Q Public License 1.0",
375
+ "rdisc: Rdisc License",
376
+ "rhecos-1.1: Red Hat eCos Public License v1.1",
377
+ "rpl-1.1: Reciprocal Public License 1.1",
378
+ "rpl-1.5: Reciprocal Public License 1.5",
379
+ "rpsl-1.0: RealNetworks Public Source License v1.0",
380
+ "rsa-md: RSA Message-Digest License",
381
+ "rscpl: Ricoh Source Code Public License",
382
+ "ruby: Ruby License",
383
+ "sax-pd: Sax Public Domain Notice",
384
+ "saxpath: Saxpath License",
385
+ "scea: SCEA Shared Source License",
386
+ "sendmail: Sendmail License",
387
+ "sendmail-8.23: Sendmail License 8.23",
388
+ "sgi-b-1.0: SGI Free Software License B v1.0",
389
+ "sgi-b-1.1: SGI Free Software License B v1.1",
390
+ "sgi-b-2.0: SGI Free Software License B v2.0",
391
+ "shl-0.5: Solderpad Hardware License v0.5",
392
+ "shl-0.51: Solderpad Hardware License, Version 0.51",
393
+ "simpl-2.0: Simple Public License 2.0",
394
+ "sissl: Sun Industry Standards Source License v1.1",
395
+ "sissl-1.2: Sun Industry Standards Source License v1.2",
396
+ "sleepycat: Sleepycat License",
397
+ "smlnj: Standard ML of New Jersey License",
398
+ "smppl: Secure Messaging Protocol Public License",
399
+ "snia: SNIA Public License 1.1",
400
+ "spencer-86: Spencer License 86",
401
+ "spencer-94: Spencer License 94",
402
+ "spencer-99: Spencer License 99",
403
+ "spl-1.0: Sun Public License v1.0",
404
+ "ssh-openssh: SSH OpenSSH license",
405
+ "ssh-short: SSH short notice",
406
+ "sspl-1.0: Server Side Public License, v 1",
407
+ "standardml-nj: Standard ML of New Jersey License",
408
+ "sugarcrm-1.1.3: SugarCRM Public License v1.1.3",
409
+ "swl: Scheme Widget Library (SWL) Software License Agreement",
410
+ "tapr-ohl-1.0: TAPR Open Hardware License v1.0",
411
+ "tcl: TCL/TK License",
412
+ "tcp-wrappers: TCP Wrappers License",
413
+ "tmate: TMate Open Source License",
414
+ "torque-1.1: TORQUE v2.5+ Software License v1.1",
415
+ "tosl: Trusster Open Source License",
416
+ "tu-berlin-1.0: Technische Universitaet Berlin License 1.0",
417
+ "tu-berlin-2.0: Technische Universitaet Berlin License 2.0",
418
+ "ucl-1.0: Upstream Compatibility License v1.0",
419
+ "unicode-dfs-2015: Unicode License Agreement - Data Files and Software (2015)",
420
+ "unicode-dfs-2016: Unicode License Agreement - Data Files and Software (2016)",
421
+ "unicode-tou: Unicode Terms of Use",
422
+ "unlicense: The Unlicense",
423
+ "upl-1.0: Universal Permissive License v1.0",
424
+ "vim: Vim License",
425
+ "vostrom: VOSTROM Public License for Open Source",
426
+ "vsl-1.0: Vovida Software License v1.0",
427
+ "w3c: W3C Software Notice and License (2002-12-31)",
428
+ "w3c-19980720: W3C Software Notice and License (1998-07-20)",
429
+ "w3c-20150513: W3C Software Notice and Document License (2015-05-13)",
430
+ "watcom-1.0: Sybase Open Watcom Public License 1.0",
431
+ "wsuipa: Wsuipa License",
432
+ "wtfpl: Do What The F*ck You Want To Public License",
433
+ "wxwindows: wxWindows Library License",
434
+ "x11: X11 License",
435
+ "xerox: Xerox License",
436
+ "xfree86-1.1: XFree86 License 1.1",
437
+ "xinetd: xinetd License",
438
+ "xnet: X.Net License",
439
+ "xpp: XPP License",
440
+ "xskat: XSkat License",
441
+ "ypl-1.0: Yahoo! Public License v1.0",
442
+ "ypl-1.1: Yahoo! Public License v1.1",
443
+ "zed: Zed License",
444
+ "zend-2.0: Zend License v2.0",
445
+ "zimbra-1.3: Zimbra Public License v1.3",
446
+ "zimbra-1.4: Zimbra Public License v1.4",
447
+ "zlib: zlib License",
448
+ "zlib-acknowledgement: zlib/libpng License with Acknowledgement",
449
+ "zpl-1.1: Zope Public License 1.1",
450
+ "zpl-2.0: Zope Public License 2.0",
451
+ "zpl-2.1: Zope Public License 2.1"
452
+ ]
resources/pii_categories.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "generic": [
3
+ "names",
4
+ "physical addresses",
5
+ "email addresses",
6
+ "website account name or handle",
7
+ "dates (birth, death, etc.)",
8
+ "full-face photographs and comparable images",
9
+ "URLs",
10
+ "biometric identifiers (fingerprints, voice, etc.)"
11
+ ],
12
+ "sensitive": [
13
+ "racial or ethnic origin",
14
+ "political opinions",
15
+ "religious or philosophical beliefs",
16
+ "trade-union membership",
17
+ "genetic data",
18
+ "health-related data",
19
+ "data concerning a person's sex life or sexual orientation"
20
+ ],
21
+ "numbers": [
22
+ "telephone numbers",
23
+ "fax numbers",
24
+ "vehicle identifiers and serial numbers",
25
+ "device identifiers and serial numbers",
26
+ "social security numbers",
27
+ "IP addresses",
28
+ "medical record numbers",
29
+ "health plan beneficiary numbers",
30
+ "account numbers",
31
+ "uniquely identifying numbers",
32
+ "certificate/license numbers"
33
+ ]
34
+ }
resources/primary_source_taxonomy.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "website": [
3
+ "wiki",
4
+ "content repository, archive, or collection",
5
+ "forum",
6
+ "news or magazine website",
7
+ "official website",
8
+ "social media",
9
+ "blog",
10
+ "other"
11
+ ],
12
+ "collection": [
13
+ "books/book publisher",
14
+ "scientific articles/journal",
15
+ "news articles",
16
+ "radio",
17
+ "clips",
18
+ "movies and documentaries",
19
+ "podcasts",
20
+ "other"
21
+ ],
22
+ "other": []
23
+ }
resources/programming_languages.json ADDED
The diff for this file is too large to render. See raw diff