# 
#  File generated from:
#   c:/stem/org.eclipse.stem.geography/resources/data/geo/country/SWE/SWE_1_MAP.xml
#
#  Generated by: class org.eclipse.stem.internal.data.utility.NeighborUtility
# 
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CommonBorderGeographicRelationshipPropertyFileSpecification
TITLE = Common Border relationship within country SWE
VALID = start=2006-01-01;
ISOKEY_0 = SWE
ISOKEY_0_LEVEL = 1
ISOKEY_1 = SWE
ISOKEY_1_LEVEL = 1
0=SE-AB,SE-C,1.0
1=SE-AB,SE-D,1.0
2=SE-AC,SE-BD,1.0
3=SE-AC,SE-Y,1.0
4=SE-AC,SE-Z,1.0
5=SE-BH,SE-L,1.0
6=SE-BH,SE-N,1.0
7=SE-C,SE-U,1.0
8=SE-C,SE-X,1.0
9=SE-D,SE-ST,1.0
10=SE-D,SE-T,1.0
11=SE-D,SE-U,1.0
12=SE-F,SE-G,175.73210538771963
13=SE-F,SE-H,73.49531762386249
14=SE-F,SE-L,1.0
15=SE-F,SE-N,57.13803030517926
16=SE-F,SE-SK,24.244738682043124
17=SE-F,SE-ST,106.85422581840967
18=SE-G,SE-H,118.47325746077631
19=SE-G,SE-K,69.29547939517192
20=SE-G,SE-N,1.0
21=SE-G,SE-RI,74.98556382402066
22=SE-H,SE-K,61.55023144419882
23=SE-H,SE-ST,1.0
24=SE-K,SE-RI,1.0
25=SE-KP,SE-S,177.74028246082324
26=SE-KP,SE-T,79.72246754823077
27=SE-KP,SE-U,117.74398528838347
28=SE-KP,SE-X,259.5704932952653
29=SE-KP,SE-Z,181.25274948181232
30=SE-L,SE-N,101.18124895060505
31=SE-L,SE-S,107.41005589864584
32=SE-L,SE-SK,136.34649209735815
33=SE-MO,SE-RI,177.62649807437208
34=SE-N,SE-RI,52.5056353285948
35=SE-S,SE-SK,11.160245603615682
36=SE-S,SE-T,127.23917471386157
37=SE-SK,SE-T,1.0
38=SE-ST,SE-T,85.24706438722461
39=SE-T,SE-U,96.09546209286074
40=SE-U,SE-X,36.540345804514445
41=SE-X,SE-Y,1.0
42=SE-X,SE-Z,1.0
43=SE-Y,SE-Z,1.0
