From ef053a41d498026286303f63ba57494504751476 Mon Sep 17 00:00:00 2001 From: howew Date: Tue, 7 Jul 2026 14:49:00 -0400 Subject: [PATCH 1/3] #218 - Beale/Rural Urban Continuum Codes for 2023 - https://github.com/imsweb/algorithms/issues/218 --- .../com/imsweb/algorithms/Algorithms.java | 2 + .../algorithms/internal/CountryData.java | 1 + .../algorithms/internal/CountyData.java | 9 + .../ruralurban/RuralUrbanAlgorithm.java | 18 +- .../ruralurban/RuralUrbanDataProvider.java | 15 +- .../ruralurban/RuralUrbanOutputDto.java | 9 + .../ruralurban/RuralUrbanUtils.java | 12 +- src/main/resources/ruralurban/readme.txt | 6 +- .../ruralurban/rural-urban-continuum-2023.csv | 3233 +++++++++++++++++ .../com/imsweb/algorithms/AlgorithmsTest.java | 1 + 10 files changed, 3286 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/ruralurban/rural-urban-continuum-2023.csv diff --git a/src/main/java/com/imsweb/algorithms/Algorithms.java b/src/main/java/com/imsweb/algorithms/Algorithms.java index ab9ca77..38687f6 100644 --- a/src/main/java/com/imsweb/algorithms/Algorithms.java +++ b/src/main/java/com/imsweb/algorithms/Algorithms.java @@ -136,6 +136,7 @@ public final class Algorithms { public static final String FIELD_RURAL_CONT_1993 = "ruralurbanContinuum1993"; public static final String FIELD_RURAL_CONT_2003 = "ruralurbanContinuum2003"; public static final String FIELD_RURAL_CONT_2013 = "ruralurbanContinuum2013"; + public static final String FIELD_RURAL_CONT_2023 = "ruralurbanContinuum2023"; public static final String FIELD_SURV_VS_RECODE = "vitalStatusRecode"; public static final String FIELD_SURV_DX_DATE_RECODE = "survDateDxRecode"; public static final String FIELD_SURV_DATE_ACTIVE_FUP = "survDateActiveFollowup"; @@ -302,6 +303,7 @@ public static void initialize() { addField(AlgorithmField.of(FIELD_RURAL_CONT_1993, 3300, 2, "RuralUrban Continuum 1993", "Rur Urb Cont 93", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_RURAL_CONT_2003, 3310, 2, "RuralUrban Continuum 2003", "Rur Urb Cont 03", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_RURAL_CONT_2013, 3312, 2, "RuralUrban Continuum 2013", "Rur Urb Cont 13", DATA_LEVEL_TUMOR)); + addField(AlgorithmField.of(FIELD_RURAL_CONT_2023, 9470, 2, "RuralUrban Continuum 2023", "Rur Urb Cont 23", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_SURV_VS_RECODE, 1762, 1, "Vital Status Recode", "VS Rec", DATA_LEVEL_PATIENT)); addField(AlgorithmField.of(FIELD_SURV_DX_DATE_RECODE, 1788, 8, "Surv-Date DX Recode", "Surv DX", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_SURV_DATE_ACTIVE_FUP, 1782, 8, "Surv-Date Active Followup", "Surv Dt", DATA_LEVEL_TUMOR)); diff --git a/src/main/java/com/imsweb/algorithms/internal/CountryData.java b/src/main/java/com/imsweb/algorithms/internal/CountryData.java index 5c93548..eaf28f3 100644 --- a/src/main/java/com/imsweb/algorithms/internal/CountryData.java +++ b/src/main/java/com/imsweb/algorithms/internal/CountryData.java @@ -420,6 +420,7 @@ public void initializeContinuumData(String requestedState, Map _censusData = new HashMap<>(); @@ -81,6 +82,14 @@ public void setUrbanContinuum2013(String urbanContinuum2013) { _urbanContinuum2013 = urbanContinuum2013; } + public String getUrbanContinuum2023() { + return _urbanContinuum2023; + } + + public void setUrbanContinuum2023(String urbanContinuum2023) { + _urbanContinuum2023 = urbanContinuum2023; + } + /** * Returns the census data for a given census tract code, null if not found. */ diff --git a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java index 99329b7..8a5a42e 100644 --- a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java +++ b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java @@ -16,20 +16,7 @@ import com.imsweb.algorithms.StateCountyTractInputDto; import com.imsweb.algorithms.internal.Utils; -import static com.imsweb.algorithms.Algorithms.FIELD_CENSUS_2000; -import static com.imsweb.algorithms.Algorithms.FIELD_CENSUS_2010; -import static com.imsweb.algorithms.Algorithms.FIELD_CENSUS_2020; -import static com.imsweb.algorithms.Algorithms.FIELD_COUNTY_AT_DX_ANALYSIS; -import static com.imsweb.algorithms.Algorithms.FIELD_RUCA_2000; -import static com.imsweb.algorithms.Algorithms.FIELD_RUCA_2010; -import static com.imsweb.algorithms.Algorithms.FIELD_RUCA_2020; -import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_1993; -import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_2003; -import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_2013; -import static com.imsweb.algorithms.Algorithms.FIELD_STATE_DX; -import static com.imsweb.algorithms.Algorithms.FIELD_URIC_2000; -import static com.imsweb.algorithms.Algorithms.FIELD_URIC_2010; -import static com.imsweb.algorithms.Algorithms.FIELD_URIC_2020; +import static com.imsweb.algorithms.Algorithms.*; import static com.imsweb.algorithms.ruralurban.RuralUrbanUtils.CONTINUUM_UNK_96; import static com.imsweb.algorithms.ruralurban.RuralUrbanUtils.CONTINUUM_UNK_97; import static com.imsweb.algorithms.ruralurban.RuralUrbanUtils.CONTINUUM_UNK_98; @@ -72,9 +59,11 @@ public RuralUrbanAlgorithm() { _outputFields.add(Algorithms.getField(FIELD_RURAL_CONT_1993)); _outputFields.add(Algorithms.getField(FIELD_RURAL_CONT_2003)); _outputFields.add(Algorithms.getField(FIELD_RURAL_CONT_2013)); + _outputFields.add(Algorithms.getField(FIELD_RURAL_CONT_2023)); _unknownValues.put(FIELD_RURAL_CONT_1993, Arrays.asList(CONTINUUM_UNK_96, CONTINUUM_UNK_97, CONTINUUM_UNK_98, CONTINUUM_UNK_99)); _unknownValues.put(FIELD_RURAL_CONT_2003, Arrays.asList(CONTINUUM_UNK_96, CONTINUUM_UNK_97, CONTINUUM_UNK_98, CONTINUUM_UNK_99)); _unknownValues.put(FIELD_RURAL_CONT_2013, Arrays.asList(CONTINUUM_UNK_96, CONTINUUM_UNK_97, CONTINUUM_UNK_98, CONTINUUM_UNK_99)); + _unknownValues.put(FIELD_RURAL_CONT_2023, Arrays.asList(CONTINUUM_UNK_96, CONTINUUM_UNK_97, CONTINUUM_UNK_98, CONTINUUM_UNK_99)); } @Override @@ -102,6 +91,7 @@ public AlgorithmOutput execute(AlgorithmInput input) { outputTumor.put(FIELD_RURAL_CONT_1993, continuumOutputDto.getRuralUrbanContinuum1993()); outputTumor.put(FIELD_RURAL_CONT_2003, continuumOutputDto.getRuralUrbanContinuum2003()); outputTumor.put(FIELD_RURAL_CONT_2013, continuumOutputDto.getRuralUrbanContinuum2013()); + outputTumor.put(FIELD_RURAL_CONT_2023, continuumOutputDto.getRuralUrbanContinuum2023()); outputTumors.add(outputTumor); } diff --git a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanDataProvider.java b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanDataProvider.java index fb6e9da..7ed7d7b 100644 --- a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanDataProvider.java +++ b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanDataProvider.java @@ -130,8 +130,11 @@ public String getRuralUrbanContinuum(String bealeCategory, String state, String case RuralUrbanUtils.BEALE_CATEGORY_2013: result = countyData.getUrbanContinuum2013(); break; + case RuralUrbanUtils.BEALE_CATEGORY_2023: + result = countyData.getUrbanContinuum2023(); + break; default: - throw new IllegalStateException("Invalid beale category: " + bealeCategory); + throw new IllegalStateException("Unknown bealeCategory: " + bealeCategory); } return result == null ? RURAL_URBAN_CONTINUUM_UNKNOWN : result; @@ -170,6 +173,16 @@ private Map> loadRuralUrbanContinuumData() { dto.setUrbanContinuum2013(StringUtils.leftPad(val, 2, '0')); }); + // load 2023 data + Utils.processInternalFile("ruralurban/rural-urban-continuum-2023.csv", line -> { + String state = line.getField(0); + String county = line.getField(1); + String val = line.getField(2); + + CountyData dto = result.computeIfAbsent(state, k -> new HashMap<>()).computeIfAbsent(county, k -> new CountyData()); + dto.setUrbanContinuum2023(StringUtils.leftPad(val, 2, '0')); + }); + return result; } } \ No newline at end of file diff --git a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanOutputDto.java b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanOutputDto.java index 877019f..46df2b0 100644 --- a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanOutputDto.java +++ b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanOutputDto.java @@ -16,6 +16,7 @@ public class RuralUrbanOutputDto { private String _ruralUrbanContinuum1993; private String _ruralUrbanContinuum2003; private String _ruralUrbanContinuum2013; + private String _ruralUrbanContinuum2023; public String getUrbanRuralIndicatorCode2000() { return _urbanRuralIndicatorCode2000; @@ -45,6 +46,10 @@ public String getRuralUrbanContinuum2013() { return _ruralUrbanContinuum2013; } + public String getRuralUrbanContinuum2023() { + return _ruralUrbanContinuum2023; + } + public void setUrbanRuralIndicatorCode2000(String urbanRuralIndicatorCode2000) { _urbanRuralIndicatorCode2000 = urbanRuralIndicatorCode2000; } @@ -89,4 +94,8 @@ public void setRuralUrbanContinuum2013(String ruralUrbanContinuum2013) { _ruralUrbanContinuum2013 = ruralUrbanContinuum2013; } + public void setRuralUrbanContinuum2023(String ruralUrbanContinuum2023) { + _ruralUrbanContinuum2023 = ruralUrbanContinuum2023; + } + } diff --git a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtils.java b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtils.java index d1909b0..e7caef9 100644 --- a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtils.java +++ b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtils.java @@ -34,6 +34,7 @@ public final class RuralUrbanUtils { public static final String BEALE_CATEGORY_1993 = "1993"; public static final String BEALE_CATEGORY_2003 = "2003"; public static final String BEALE_CATEGORY_2013 = "2013"; + public static final String BEALE_CATEGORY_2023 = "2023"; public static final String TRACT_CATEGORY_2000 = "2000"; public static final String TRACT_CATEGORY_2010 = "2010"; @@ -135,7 +136,6 @@ else if (input.countyIsNotReported()) * * All those properties are defined as constants in this class. *

- * The returned urban rural commuting area will have the following values depending on the year (1993, 2003, or 2013): * The returned urban rural commuting area will have the following values depending on the census tract (2000, or 2010): *
    *
  • 1 = Urban commuting area - RUCA codes 1.0, 1.1, 2.0, 2.1, 3.0, 4.1, 5.1, 7.1, 8.1, and 10.1
  • @@ -198,7 +198,7 @@ else if (input.countyIsNotReported()) } /** - * Calculates the rural urban continuum (ruralUrbanContinuum1993, ruralUrbanContinuum2003, ruralUrbanContinuum2013) input DTO. + * Calculates the rural urban continuum (ruralUrbanContinuum1993, ruralUrbanContinuum2003, ruralUrbanContinuum2013, ruralUrbanContinuum2023) for the provided input DTO. *

    * The provided input dto has the following parameters used in the calculation: *
      @@ -207,7 +207,7 @@ else if (input.countyIsNotReported()) *
    * All those properties are defined as constants in this class. *

    - * The returned urban rural continuum will have the following values depending on the year (1993, 2003, or 2013): + * The returned urban rural continuum will have the following values depending on the year (1993, 2003, 2013, or 2023): *
      *
    • 00 = Central counties of metro areas of 1 million population or more (1993 only)
    • *
    • 01 = Counties of metro areas of 1 million population or more
    • @@ -237,21 +237,25 @@ public static RuralUrbanOutputDto computeRuralUrbanContinuum(StateCountyTractInp result.setRuralUrbanContinuum1993("96"); result.setRuralUrbanContinuum2003("96"); result.setRuralUrbanContinuum2013("96"); + result.setRuralUrbanContinuum2023("96"); } else if (input.hasUnknownStateOrCounty()) { result.setRuralUrbanContinuum1993("99"); result.setRuralUrbanContinuum2003("99"); result.setRuralUrbanContinuum2013("99"); + result.setRuralUrbanContinuum2023("99"); } else if (input.countyIsNotReported()) { result.setRuralUrbanContinuum1993("97"); result.setRuralUrbanContinuum2003("97"); result.setRuralUrbanContinuum2013("97"); + result.setRuralUrbanContinuum2023("97"); } else { result.setRuralUrbanContinuum1993(_PROVIDER.getRuralUrbanContinuum(BEALE_CATEGORY_1993, input.getAddressAtDxState(), input.getCountyAtDxAnalysis())); result.setRuralUrbanContinuum2003(_PROVIDER.getRuralUrbanContinuum(BEALE_CATEGORY_2003, input.getAddressAtDxState(), input.getCountyAtDxAnalysis())); result.setRuralUrbanContinuum2013(_PROVIDER.getRuralUrbanContinuum(BEALE_CATEGORY_2013, input.getAddressAtDxState(), input.getCountyAtDxAnalysis())); + result.setRuralUrbanContinuum2023(_PROVIDER.getRuralUrbanContinuum(BEALE_CATEGORY_2023, input.getAddressAtDxState(), input.getCountyAtDxAnalysis())); } if (result.getRuralUrbanContinuum1993() == null) @@ -260,6 +264,8 @@ else if (input.countyIsNotReported()) { result.setRuralUrbanContinuum2003(RURAL_URBAN_CONTINUUM_UNKNOWN); if (result.getRuralUrbanContinuum2013() == null) result.setRuralUrbanContinuum2013(RURAL_URBAN_CONTINUUM_UNKNOWN); + if (result.getRuralUrbanContinuum2023() == null) + result.setRuralUrbanContinuum2023(RURAL_URBAN_CONTINUUM_UNKNOWN); return result; } diff --git a/src/main/resources/ruralurban/readme.txt b/src/main/resources/ruralurban/readme.txt index d74325f..510bf04 100644 --- a/src/main/resources/ruralurban/readme.txt +++ b/src/main/resources/ruralurban/readme.txt @@ -1,6 +1,8 @@ -The data for the "NAACCR Rural Urban Program" was provided by NAACCR. +The data for the "NAACCR Rural Urban Program" was obtained from the USDA website. -No more information is available. +https://www.ers.usda.gov/data-products/rural-urban-continuum-codes + +Virgin Islands (present in the UDSA data in 2013 and 2023) was excluded. Line 548 in rural-urban-continuum-1993.csv was changed from 9 to 5 diff --git a/src/main/resources/ruralurban/rural-urban-continuum-2023.csv b/src/main/resources/ruralurban/rural-urban-continuum-2023.csv new file mode 100644 index 0000000..90e02ed --- /dev/null +++ b/src/main/resources/ruralurban/rural-urban-continuum-2023.csv @@ -0,0 +1,3233 @@ +State,County,RuralUrbanContinuum2023 +AL,001,2 +AL,003,3 +AL,005,6 +AL,007,1 +AL,009,1 +AL,011,8 +AL,013,6 +AL,015,3 +AL,017,6 +AL,019,8 +AL,021,1 +AL,023,9 +AL,025,9 +AL,027,9 +AL,029,8 +AL,031,4 +AL,033,3 +AL,035,9 +AL,037,8 +AL,039,6 +AL,041,8 +AL,043,4 +AL,045,4 +AL,047,4 +AL,049,6 +AL,051,2 +AL,053,6 +AL,055,3 +AL,057,8 +AL,059,6 +AL,061,3 +AL,063,2 +AL,065,2 +AL,067,3 +AL,069,3 +AL,071,6 +AL,073,1 +AL,075,8 +AL,077,3 +AL,079,3 +AL,081,3 +AL,083,2 +AL,085,2 +AL,087,3 +AL,089,2 +AL,091,6 +AL,093,9 +AL,095,4 +AL,097,2 +AL,099,8 +AL,101,2 +AL,103,3 +AL,105,8 +AL,107,2 +AL,109,6 +AL,111,8 +AL,113,2 +AL,115,1 +AL,117,1 +AL,119,8 +AL,121,4 +AL,123,6 +AL,125,2 +AL,127,1 +AL,129,8 +AL,131,9 +AL,133,8 +AK,013,9 +AK,016,9 +AK,020,2 +AK,050,7 +AK,060,9 +AK,063,9 +AK,066,9 +AK,068,9 +AK,070,9 +AK,090,3 +AK,100,9 +AK,105,9 +AK,110,5 +AK,122,7 +AK,130,7 +AK,150,7 +AK,158,9 +AK,164,9 +AK,170,2 +AK,180,9 +AK,185,9 +AK,188,9 +AK,195,9 +AK,198,9 +AK,220,7 +AK,230,9 +AK,240,9 +AK,275,9 +AK,282,9 +AK,290,8 +AZ,001,8 +AZ,003,3 +AZ,005,3 +AZ,007,4 +AZ,009,7 +AZ,011,9 +AZ,012,6 +AZ,013,1 +AZ,015,3 +AZ,017,4 +AZ,019,1 +AZ,021,1 +AZ,023,6 +AZ,025,3 +AZ,027,3 +AR,001,6 +AR,003,7 +AR,005,7 +AR,007,2 +AR,009,7 +AR,011,7 +AR,013,9 +AR,015,6 +AR,017,9 +AR,019,7 +AR,021,9 +AR,023,6 +AR,025,8 +AR,027,7 +AR,029,6 +AR,031,3 +AR,033,3 +AR,035,1 +AR,037,6 +AR,039,8 +AR,041,9 +AR,043,7 +AR,045,2 +AR,047,8 +AR,049,9 +AR,051,3 +AR,053,2 +AR,055,4 +AR,057,6 +AR,059,6 +AR,061,8 +AR,063,7 +AR,065,9 +AR,067,6 +AR,069,4 +AR,071,7 +AR,073,8 +AR,075,6 +AR,077,8 +AR,079,9 +AR,081,3 +AR,083,8 +AR,085,2 +AR,087,2 +AR,089,9 +AR,091,3 +AR,093,4 +AR,095,9 +AR,097,8 +AR,099,9 +AR,101,9 +AR,103,7 +AR,105,2 +AR,107,7 +AR,109,9 +AR,111,3 +AR,113,7 +AR,115,5 +AR,117,8 +AR,119,2 +AR,121,7 +AR,123,6 +AR,125,2 +AR,127,8 +AR,129,9 +AR,131,3 +AR,133,6 +AR,135,9 +AR,137,9 +AR,139,7 +AR,141,8 +AR,143,2 +AR,145,4 +AR,147,9 +AR,149,9 +CA,001,1 +CA,003,8 +CA,005,6 +CA,007,3 +CA,009,6 +CA,011,6 +CA,013,1 +CA,015,7 +CA,017,1 +CA,019,1 +CA,021,6 +CA,023,5 +CA,025,3 +CA,027,6 +CA,029,2 +CA,031,3 +CA,033,4 +CA,035,7 +CA,037,1 +CA,039,1 +CA,041,1 +CA,043,8 +CA,045,4 +CA,047,2 +CA,049,8 +CA,051,7 +CA,053,2 +CA,055,3 +CA,057,4 +CA,059,1 +CA,061,1 +CA,063,9 +CA,065,1 +CA,067,1 +CA,069,1 +CA,071,1 +CA,073,1 +CA,075,1 +CA,077,2 +CA,079,2 +CA,081,1 +CA,083,2 +CA,085,1 +CA,087,2 +CA,089,3 +CA,091,8 +CA,093,7 +CA,095,2 +CA,097,2 +CA,099,2 +CA,101,3 +CA,103,4 +CA,105,8 +CA,107,2 +CA,109,4 +CA,111,2 +CA,113,1 +CA,115,3 +CO,001,1 +CO,003,7 +CO,005,1 +CO,007,7 +CO,009,9 +CO,011,9 +CO,013,2 +CO,014,1 +CO,015,6 +CO,017,9 +CO,019,1 +CO,021,9 +CO,023,9 +CO,025,8 +CO,027,8 +CO,029,6 +CO,031,1 +CO,033,9 +CO,035,1 +CO,037,5 +CO,039,1 +CO,041,2 +CO,043,4 +CO,045,5 +CO,047,1 +CO,049,9 +CO,051,7 +CO,053,9 +CO,055,8 +CO,057,9 +CO,059,1 +CO,061,9 +CO,063,9 +CO,065,9 +CO,067,6 +CO,069,2 +CO,071,7 +CO,073,8 +CO,075,6 +CO,077,3 +CO,079,9 +CO,081,7 +CO,083,6 +CO,085,5 +CO,087,6 +CO,089,6 +CO,091,9 +CO,093,1 +CO,095,9 +CO,097,7 +CO,099,7 +CO,101,3 +CO,103,9 +CO,105,9 +CO,107,7 +CO,109,9 +CO,111,9 +CO,113,9 +CO,115,9 +CO,117,5 +CO,119,2 +CO,121,9 +CO,123,2 +CO,125,9 +CT,110,1 +CT,120,2 +CT,130,1 +CT,140,2 +CT,150,4 +CT,160,4 +CT,170,2 +CT,180,2 +CT,190,2 +DE,001,3 +DE,003,1 +DE,005,4 +DC,001,1 +FL,001,2 +FL,003,1 +FL,005,3 +FL,007,6 +FL,009,2 +FL,011,1 +FL,013,8 +FL,015,3 +FL,017,3 +FL,019,1 +FL,021,2 +FL,023,4 +FL,027,6 +FL,029,8 +FL,031,1 +FL,033,2 +FL,035,2 +FL,037,8 +FL,039,2 +FL,041,2 +FL,043,8 +FL,045,8 +FL,047,8 +FL,049,6 +FL,051,4 +FL,053,1 +FL,055,3 +FL,057,1 +FL,059,8 +FL,061,3 +FL,063,6 +FL,065,2 +FL,067,9 +FL,069,1 +FL,071,2 +FL,073,2 +FL,075,2 +FL,077,8 +FL,079,8 +FL,081,2 +FL,083,2 +FL,085,2 +FL,086,1 +FL,087,4 +FL,089,1 +FL,091,2 +FL,093,4 +FL,095,1 +FL,097,1 +FL,099,1 +FL,101,1 +FL,103,1 +FL,105,2 +FL,107,4 +FL,109,1 +FL,111,2 +FL,113,2 +FL,115,2 +FL,117,1 +FL,119,3 +FL,121,6 +FL,123,6 +FL,125,8 +FL,127,2 +FL,129,2 +FL,131,2 +FL,133,3 +GA,001,7 +GA,003,9 +GA,005,9 +GA,007,8 +GA,009,4 +GA,011,8 +GA,013,1 +GA,015,1 +GA,017,7 +GA,019,8 +GA,021,3 +GA,023,6 +GA,025,3 +GA,027,3 +GA,029,2 +GA,031,4 +GA,033,2 +GA,035,1 +GA,037,8 +GA,039,4 +GA,043,9 +GA,045,1 +GA,047,2 +GA,049,8 +GA,051,2 +GA,053,2 +GA,055,6 +GA,057,1 +GA,059,3 +GA,061,9 +GA,063,1 +GA,065,8 +GA,067,1 +GA,069,7 +GA,071,6 +GA,073,2 +GA,075,6 +GA,077,1 +GA,079,3 +GA,081,6 +GA,083,2 +GA,085,1 +GA,087,6 +GA,089,1 +GA,091,7 +GA,093,8 +GA,095,3 +GA,097,1 +GA,099,8 +GA,101,3 +GA,103,2 +GA,105,6 +GA,107,7 +GA,109,8 +GA,111,8 +GA,113,1 +GA,115,3 +GA,117,1 +GA,119,8 +GA,121,1 +GA,123,6 +GA,125,9 +GA,127,3 +GA,129,4 +GA,131,6 +GA,133,8 +GA,135,1 +GA,137,6 +GA,139,3 +GA,141,9 +GA,143,1 +GA,145,2 +GA,147,6 +GA,149,1 +GA,151,1 +GA,153,3 +GA,155,9 +GA,157,4 +GA,159,1 +GA,161,9 +GA,163,8 +GA,165,9 +GA,167,9 +GA,169,3 +GA,171,6 +GA,173,3 +GA,175,4 +GA,177,3 +GA,179,3 +GA,181,2 +GA,183,3 +GA,185,3 +GA,187,1 +GA,189,2 +GA,191,3 +GA,193,8 +GA,195,3 +GA,197,2 +GA,199,1 +GA,201,9 +GA,205,6 +GA,207,3 +GA,209,9 +GA,211,1 +GA,213,3 +GA,215,2 +GA,217,1 +GA,219,3 +GA,221,3 +GA,223,1 +GA,225,3 +GA,227,1 +GA,229,8 +GA,231,1 +GA,233,4 +GA,235,8 +GA,237,8 +GA,239,8 +GA,241,9 +GA,243,8 +GA,245,2 +GA,247,1 +GA,249,8 +GA,251,8 +GA,253,8 +GA,255,1 +GA,257,7 +GA,259,2 +GA,261,6 +GA,263,2 +GA,265,8 +GA,267,8 +GA,269,8 +GA,271,9 +GA,273,3 +GA,275,4 +GA,277,5 +GA,279,7 +GA,281,9 +GA,283,9 +GA,285,4 +GA,287,9 +GA,289,3 +GA,291,8 +GA,293,6 +GA,295,2 +GA,297,1 +GA,299,5 +GA,301,8 +GA,303,7 +GA,305,6 +GA,307,8 +GA,309,9 +GA,311,8 +GA,313,3 +GA,315,9 +GA,317,8 +GA,319,8 +GA,321,3 +HI,001,5 +HI,003,1 +HI,005,3 +HI,007,5 +HI,009,3 +ID,001,2 +ID,003,9 +ID,005,3 +ID,007,9 +ID,009,8 +ID,011,6 +ID,013,7 +ID,015,2 +ID,017,6 +ID,019,3 +ID,021,9 +ID,023,3 +ID,025,9 +ID,027,2 +ID,029,8 +ID,031,6 +ID,033,8 +ID,035,8 +ID,037,8 +ID,039,6 +ID,041,3 +ID,043,8 +ID,045,2 +ID,047,8 +ID,049,8 +ID,051,3 +ID,053,3 +ID,055,3 +ID,057,4 +ID,059,9 +ID,061,8 +ID,063,8 +ID,065,4 +ID,067,7 +ID,069,3 +ID,071,8 +ID,073,2 +ID,075,6 +ID,077,8 +ID,079,8 +ID,081,9 +ID,083,3 +ID,085,9 +ID,087,6 +IL,001,5 +IL,003,3 +IL,005,1 +IL,007,2 +IL,009,9 +IL,011,7 +IL,013,1 +IL,015,9 +IL,017,6 +IL,019,3 +IL,021,6 +IL,023,8 +IL,025,9 +IL,027,1 +IL,029,5 +IL,031,1 +IL,033,6 +IL,035,9 +IL,037,1 +IL,039,6 +IL,041,8 +IL,043,1 +IL,045,6 +IL,047,9 +IL,049,7 +IL,051,6 +IL,053,3 +IL,055,7 +IL,057,6 +IL,059,8 +IL,061,8 +IL,063,1 +IL,065,9 +IL,067,9 +IL,069,9 +IL,071,9 +IL,073,2 +IL,075,8 +IL,077,5 +IL,079,9 +IL,081,7 +IL,083,1 +IL,085,8 +IL,087,8 +IL,089,1 +IL,091,3 +IL,093,1 +IL,095,4 +IL,097,1 +IL,099,4 +IL,101,9 +IL,103,6 +IL,105,6 +IL,107,6 +IL,109,7 +IL,111,1 +IL,113,3 +IL,115,3 +IL,117,1 +IL,119,1 +IL,121,7 +IL,123,2 +IL,125,8 +IL,127,3 +IL,129,3 +IL,131,2 +IL,133,1 +IL,135,6 +IL,137,4 +IL,139,8 +IL,141,6 +IL,143,2 +IL,145,7 +IL,147,3 +IL,149,9 +IL,151,8 +IL,153,8 +IL,155,8 +IL,157,6 +IL,159,7 +IL,161,2 +IL,163,1 +IL,165,7 +IL,167,3 +IL,169,9 +IL,171,9 +IL,173,8 +IL,175,2 +IL,177,4 +IL,179,2 +IL,181,6 +IL,183,4 +IL,185,7 +IL,187,6 +IL,189,8 +IL,191,9 +IL,193,6 +IL,195,4 +IL,197,1 +IL,199,5 +IL,201,2 +IL,203,2 +IN,001,6 +IN,003,2 +IN,005,3 +IN,007,3 +IN,009,6 +IN,011,1 +IN,013,1 +IN,015,3 +IN,017,4 +IN,019,1 +IN,021,3 +IN,023,6 +IN,025,8 +IN,027,7 +IN,029,1 +IN,031,6 +IN,033,4 +IN,035,3 +IN,037,5 +IN,039,3 +IN,041,6 +IN,043,1 +IN,045,8 +IN,047,1 +IN,049,7 +IN,051,6 +IN,053,4 +IN,055,6 +IN,057,1 +IN,059,1 +IN,061,1 +IN,063,1 +IN,065,6 +IN,067,3 +IN,069,6 +IN,071,4 +IN,073,1 +IN,075,6 +IN,077,6 +IN,079,6 +IN,081,1 +IN,083,7 +IN,085,4 +IN,087,8 +IN,089,1 +IN,091,3 +IN,093,6 +IN,095,1 +IN,097,1 +IN,099,6 +IN,101,9 +IN,103,6 +IN,105,3 +IN,107,6 +IN,109,1 +IN,111,1 +IN,113,6 +IN,115,1 +IN,117,8 +IN,119,3 +IN,121,8 +IN,123,7 +IN,125,8 +IN,127,1 +IN,129,2 +IN,131,8 +IN,133,6 +IN,135,6 +IN,137,6 +IN,139,6 +IN,141,2 +IN,143,6 +IN,145,1 +IN,147,8 +IN,149,8 +IN,151,7 +IN,153,3 +IN,155,8 +IN,157,3 +IN,159,1 +IN,161,8 +IN,163,2 +IN,165,3 +IN,167,3 +IN,169,6 +IN,171,3 +IN,173,2 +IN,175,1 +IN,177,5 +IN,179,2 +IN,181,6 +IN,183,2 +IA,001,8 +IA,003,9 +IA,005,8 +IA,007,7 +IA,009,9 +IA,011,2 +IA,013,3 +IA,015,3 +IA,017,3 +IA,019,6 +IA,021,7 +IA,023,8 +IA,025,9 +IA,027,7 +IA,029,6 +IA,031,8 +IA,033,5 +IA,035,9 +IA,037,8 +IA,039,6 +IA,041,7 +IA,043,8 +IA,045,4 +IA,047,7 +IA,049,2 +IA,051,9 +IA,053,9 +IA,055,8 +IA,057,5 +IA,059,7 +IA,061,3 +IA,063,7 +IA,065,6 +IA,067,7 +IA,069,9 +IA,071,8 +IA,073,8 +IA,075,3 +IA,077,2 +IA,079,6 +IA,081,9 +IA,083,6 +IA,085,2 +IA,087,6 +IA,089,8 +IA,091,7 +IA,093,8 +IA,095,8 +IA,097,6 +IA,099,2 +IA,101,7 +IA,103,3 +IA,105,2 +IA,107,8 +IA,109,7 +IA,111,7 +IA,113,2 +IA,115,8 +IA,117,8 +IA,119,8 +IA,121,2 +IA,123,7 +IA,125,6 +IA,127,4 +IA,129,2 +IA,131,9 +IA,133,8 +IA,135,9 +IA,137,6 +IA,139,4 +IA,141,7 +IA,143,9 +IA,145,6 +IA,147,9 +IA,149,6 +IA,151,9 +IA,153,2 +IA,155,2 +IA,157,6 +IA,159,9 +IA,161,9 +IA,163,2 +IA,165,8 +IA,167,6 +IA,169,3 +IA,171,6 +IA,173,9 +IA,175,6 +IA,177,9 +IA,179,5 +IA,181,2 +IA,183,3 +IA,185,9 +IA,187,5 +IA,189,9 +IA,191,7 +IA,193,3 +IA,195,9 +IA,197,9 +KS,001,7 +KS,003,8 +KS,005,6 +KS,007,9 +KS,009,7 +KS,011,6 +KS,013,8 +KS,015,2 +KS,017,8 +KS,019,9 +KS,021,3 +KS,023,9 +KS,025,9 +KS,027,8 +KS,029,7 +KS,031,8 +KS,033,9 +KS,035,4 +KS,037,4 +KS,039,9 +KS,041,6 +KS,043,3 +KS,045,3 +KS,047,9 +KS,049,8 +KS,051,5 +KS,053,9 +KS,055,5 +KS,057,5 +KS,059,6 +KS,061,3 +KS,063,9 +KS,065,9 +KS,067,7 +KS,069,9 +KS,071,9 +KS,073,8 +KS,075,9 +KS,077,8 +KS,079,2 +KS,081,9 +KS,083,9 +KS,085,3 +KS,087,3 +KS,089,9 +KS,091,1 +KS,093,9 +KS,095,8 +KS,097,9 +KS,099,7 +KS,101,9 +KS,103,1 +KS,105,9 +KS,107,1 +KS,109,9 +KS,111,4 +KS,113,7 +KS,115,8 +KS,117,8 +KS,119,9 +KS,121,1 +KS,123,9 +KS,125,7 +KS,127,8 +KS,129,9 +KS,131,9 +KS,133,7 +KS,135,9 +KS,137,9 +KS,139,3 +KS,141,9 +KS,143,9 +KS,145,9 +KS,147,9 +KS,149,3 +KS,151,7 +KS,153,9 +KS,155,4 +KS,157,9 +KS,159,9 +KS,161,3 +KS,163,9 +KS,165,9 +KS,167,9 +KS,169,5 +KS,171,9 +KS,173,2 +KS,175,7 +KS,177,3 +KS,179,9 +KS,181,9 +KS,183,9 +KS,185,9 +KS,187,9 +KS,189,9 +KS,191,2 +KS,193,7 +KS,195,9 +KS,197,3 +KS,199,9 +KS,201,9 +KS,203,9 +KS,205,9 +KS,207,9 +KS,209,1 +KY,001,7 +KY,003,3 +KY,005,6 +KY,007,3 +KY,009,6 +KY,011,8 +KY,013,7 +KY,015,1 +KY,017,2 +KY,019,2 +KY,021,7 +KY,023,1 +KY,025,9 +KY,027,8 +KY,029,1 +KY,031,3 +KY,033,7 +KY,035,7 +KY,037,1 +KY,039,3 +KY,041,6 +KY,043,2 +KY,045,9 +KY,047,2 +KY,049,2 +KY,051,9 +KY,053,9 +KY,055,8 +KY,057,9 +KY,059,3 +KY,061,3 +KY,063,8 +KY,065,8 +KY,067,2 +KY,069,9 +KY,071,7 +KY,073,4 +KY,075,9 +KY,077,1 +KY,079,8 +KY,081,1 +KY,083,6 +KY,085,6 +KY,087,8 +KY,089,2 +KY,091,8 +KY,093,3 +KY,095,7 +KY,097,6 +KY,099,8 +KY,101,4 +KY,103,1 +KY,105,8 +KY,107,5 +KY,109,9 +KY,111,1 +KY,113,2 +KY,115,7 +KY,117,1 +KY,119,9 +KY,121,7 +KY,123,3 +KY,125,5 +KY,127,2 +KY,129,9 +KY,131,9 +KY,133,9 +KY,135,8 +KY,137,9 +KY,139,3 +KY,141,6 +KY,143,8 +KY,145,3 +KY,147,9 +KY,149,3 +KY,151,4 +KY,153,9 +KY,155,6 +KY,157,8 +KY,159,8 +KY,161,6 +KY,163,1 +KY,165,9 +KY,167,6 +KY,169,9 +KY,171,8 +KY,173,6 +KY,175,9 +KY,177,6 +KY,179,1 +KY,181,8 +KY,183,6 +KY,185,1 +KY,187,8 +KY,189,9 +KY,191,1 +KY,193,7 +KY,195,7 +KY,197,8 +KY,199,5 +KY,201,8 +KY,203,9 +KY,205,6 +KY,207,9 +KY,209,2 +KY,211,1 +KY,213,6 +KY,215,1 +KY,217,7 +KY,219,8 +KY,221,2 +KY,223,8 +KY,225,8 +KY,227,3 +KY,229,8 +KY,231,7 +KY,233,9 +KY,235,7 +KY,237,9 +KY,239,2 +LA,001,2 +LA,003,6 +LA,005,2 +LA,007,2 +LA,009,6 +LA,011,6 +LA,013,8 +LA,015,2 +LA,017,2 +LA,019,2 +LA,021,8 +LA,023,2 +LA,025,9 +LA,027,9 +LA,029,6 +LA,031,2 +LA,033,2 +LA,035,8 +LA,037,2 +LA,039,6 +LA,041,6 +LA,043,3 +LA,045,4 +LA,047,2 +LA,049,6 +LA,051,1 +LA,053,2 +LA,055,2 +LA,057,3 +LA,059,8 +LA,061,4 +LA,063,2 +LA,065,6 +LA,067,3 +LA,069,6 +LA,071,1 +LA,073,3 +LA,075,1 +LA,077,2 +LA,079,3 +LA,081,8 +LA,083,3 +LA,085,8 +LA,087,1 +LA,089,1 +LA,091,2 +LA,093,1 +LA,095,1 +LA,097,4 +LA,099,2 +LA,101,4 +LA,103,2 +LA,105,3 +LA,107,9 +LA,109,3 +LA,111,3 +LA,113,2 +LA,115,4 +LA,117,6 +LA,119,6 +LA,121,2 +LA,123,8 +LA,125,2 +LA,127,8 +ME,001,3 +ME,003,7 +ME,005,2 +ME,007,8 +ME,009,8 +ME,011,4 +ME,013,7 +ME,015,8 +ME,017,6 +ME,019,3 +ME,021,8 +ME,023,2 +ME,025,6 +ME,027,8 +ME,029,9 +ME,031,2 +MD,001,4 +MD,003,1 +MD,005,1 +MD,009,3 +MD,011,6 +MD,013,1 +MD,015,1 +MD,017,1 +MD,019,6 +MD,021,1 +MD,023,8 +MD,025,1 +MD,027,1 +MD,029,6 +MD,031,1 +MD,033,1 +MD,035,1 +MD,037,3 +MD,039,3 +MD,041,6 +MD,043,2 +MD,045,3 +MD,047,4 +MD,510,1 +MA,001,3 +MA,003,3 +MA,005,1 +MA,007,7 +MA,009,1 +MA,011,4 +MA,013,2 +MA,015,3 +MA,017,1 +MA,019,7 +MA,021,1 +MA,023,1 +MA,025,1 +MA,027,2 +MI,001,9 +MI,003,9 +MI,005,4 +MI,007,7 +MI,009,8 +MI,011,8 +MI,013,9 +MI,015,1 +MI,017,3 +MI,019,3 +MI,021,3 +MI,023,6 +MI,025,3 +MI,027,2 +MI,029,7 +MI,031,7 +MI,033,7 +MI,035,8 +MI,037,2 +MI,039,9 +MI,041,5 +MI,043,7 +MI,045,2 +MI,047,7 +MI,049,2 +MI,051,8 +MI,053,7 +MI,055,3 +MI,057,6 +MI,059,6 +MI,061,5 +MI,063,9 +MI,065,2 +MI,067,1 +MI,069,7 +MI,071,9 +MI,073,4 +MI,075,3 +MI,077,2 +MI,079,3 +MI,081,1 +MI,083,9 +MI,085,9 +MI,087,1 +MI,089,3 +MI,091,4 +MI,093,1 +MI,095,9 +MI,097,9 +MI,099,1 +MI,101,6 +MI,103,5 +MI,105,7 +MI,107,6 +MI,109,7 +MI,111,3 +MI,113,8 +MI,115,3 +MI,117,1 +MI,119,9 +MI,121,3 +MI,123,6 +MI,125,1 +MI,127,8 +MI,129,9 +MI,131,9 +MI,133,9 +MI,135,9 +MI,137,7 +MI,139,1 +MI,141,9 +MI,143,7 +MI,145,3 +MI,147,1 +MI,149,4 +MI,151,8 +MI,153,9 +MI,155,4 +MI,157,6 +MI,159,6 +MI,161,2 +MI,163,1 +MI,165,6 +MN,001,8 +MN,003,1 +MN,005,6 +MN,007,7 +MN,009,3 +MN,011,9 +MN,013,3 +MN,015,6 +MN,017,2 +MN,019,1 +MN,021,9 +MN,023,7 +MN,025,1 +MN,027,3 +MN,029,8 +MN,031,9 +MN,033,9 +MN,035,4 +MN,037,1 +MN,039,3 +MN,041,6 +MN,043,8 +MN,045,3 +MN,047,7 +MN,049,6 +MN,051,9 +MN,053,1 +MN,055,3 +MN,057,9 +MN,059,1 +MN,061,6 +MN,063,9 +MN,065,8 +MN,067,4 +MN,069,9 +MN,071,7 +MN,073,9 +MN,075,8 +MN,077,9 +MN,079,1 +MN,081,9 +MN,083,7 +MN,085,4 +MN,087,8 +MN,089,8 +MN,091,6 +MN,093,6 +MN,095,1 +MN,097,6 +MN,099,4 +MN,101,9 +MN,103,3 +MN,105,7 +MN,107,8 +MN,109,3 +MN,111,6 +MN,113,6 +MN,115,8 +MN,117,8 +MN,119,3 +MN,121,8 +MN,123,1 +MN,125,8 +MN,127,9 +MN,129,9 +MN,131,4 +MN,133,2 +MN,135,9 +MN,137,2 +MN,139,1 +MN,141,1 +MN,143,8 +MN,145,3 +MN,147,5 +MN,149,7 +MN,151,9 +MN,153,8 +MN,155,9 +MN,157,3 +MN,159,9 +MN,161,6 +MN,163,1 +MN,165,8 +MN,167,8 +MN,169,4 +MN,171,1 +MN,173,9 +MS,001,7 +MS,003,7 +MS,005,8 +MS,007,6 +MS,009,1 +MS,011,7 +MS,013,9 +MS,015,8 +MS,017,9 +MS,019,9 +MS,021,8 +MS,023,9 +MS,025,7 +MS,027,6 +MS,029,2 +MS,031,8 +MS,033,1 +MS,035,3 +MS,037,9 +MS,039,8 +MS,041,8 +MS,043,7 +MS,045,2 +MS,047,2 +MS,049,2 +MS,051,2 +MS,053,8 +MS,055,9 +MS,057,9 +MS,059,2 +MS,061,8 +MS,063,9 +MS,065,8 +MS,067,4 +MS,069,9 +MS,071,4 +MS,073,3 +MS,075,5 +MS,077,8 +MS,079,8 +MS,081,5 +MS,083,6 +MS,085,6 +MS,087,5 +MS,089,2 +MS,091,6 +MS,093,1 +MS,095,7 +MS,097,9 +MS,099,7 +MS,101,8 +MS,103,9 +MS,105,5 +MS,107,6 +MS,109,6 +MS,111,3 +MS,113,6 +MS,115,9 +MS,117,7 +MS,119,8 +MS,121,2 +MS,123,2 +MS,125,8 +MS,127,2 +MS,129,8 +MS,131,2 +MS,133,7 +MS,135,9 +MS,137,1 +MS,139,8 +MS,141,8 +MS,143,1 +MS,145,7 +MS,147,9 +MS,149,4 +MS,151,5 +MS,153,9 +MS,155,9 +MS,157,8 +MS,159,9 +MS,161,9 +MS,163,2 +MO,001,7 +MO,003,3 +MO,005,9 +MO,007,6 +MO,009,6 +MO,011,8 +MO,013,1 +MO,015,9 +MO,017,3 +MO,019,3 +MO,021,3 +MO,023,5 +MO,025,1 +MO,027,3 +MO,029,7 +MO,031,3 +MO,033,8 +MO,035,9 +MO,037,1 +MO,039,8 +MO,041,8 +MO,043,2 +MO,045,9 +MO,047,1 +MO,049,1 +MO,051,3 +MO,053,3 +MO,055,8 +MO,057,8 +MO,059,2 +MO,061,8 +MO,063,3 +MO,065,9 +MO,067,8 +MO,069,7 +MO,071,1 +MO,073,8 +MO,075,8 +MO,077,2 +MO,079,7 +MO,081,9 +MO,083,6 +MO,085,8 +MO,087,8 +MO,089,3 +MO,091,7 +MO,093,9 +MO,095,1 +MO,097,3 +MO,099,1 +MO,101,4 +MO,103,9 +MO,105,6 +MO,107,1 +MO,109,6 +MO,111,9 +MO,113,1 +MO,115,9 +MO,117,7 +MO,119,8 +MO,121,7 +MO,123,9 +MO,125,8 +MO,127,7 +MO,129,9 +MO,131,6 +MO,133,8 +MO,135,3 +MO,137,9 +MO,139,8 +MO,141,8 +MO,143,9 +MO,145,3 +MO,147,6 +MO,149,9 +MO,151,3 +MO,153,9 +MO,155,7 +MO,157,6 +MO,159,5 +MO,161,5 +MO,163,8 +MO,165,1 +MO,167,2 +MO,169,5 +MO,171,9 +MO,173,9 +MO,175,6 +MO,177,1 +MO,179,9 +MO,181,9 +MO,183,1 +MO,185,8 +MO,186,8 +MO,187,4 +MO,189,1 +MO,195,7 +MO,197,9 +MO,199,9 +MO,201,4 +MO,203,9 +MO,205,9 +MO,207,6 +MO,209,6 +MO,211,9 +MO,213,4 +MO,215,9 +MO,217,6 +MO,219,1 +MO,221,8 +MO,223,9 +MO,225,2 +MO,227,9 +MO,229,8 +MO,510,1 +MT,001,9 +MT,003,8 +MT,005,9 +MT,007,3 +MT,009,3 +MT,011,9 +MT,013,3 +MT,015,8 +MT,017,7 +MT,019,9 +MT,021,7 +MT,023,7 +MT,025,9 +MT,027,7 +MT,029,5 +MT,031,3 +MT,033,9 +MT,035,9 +MT,037,8 +MT,039,8 +MT,041,7 +MT,043,3 +MT,045,8 +MT,047,6 +MT,049,3 +MT,051,9 +MT,053,9 +MT,055,9 +MT,057,8 +MT,059,8 +MT,061,3 +MT,063,3 +MT,065,8 +MT,067,6 +MT,069,9 +MT,071,9 +MT,073,9 +MT,075,9 +MT,077,8 +MT,079,9 +MT,081,6 +MT,083,7 +MT,085,9 +MT,087,8 +MT,089,8 +MT,091,9 +MT,093,5 +MT,095,3 +MT,097,8 +MT,099,8 +MT,101,9 +MT,103,8 +MT,105,9 +MT,107,9 +MT,109,9 +MT,111,3 +NE,001,4 +NE,003,9 +NE,005,9 +NE,007,8 +NE,009,9 +NE,011,9 +NE,013,7 +NE,015,9 +NE,017,9 +NE,019,4 +NE,021,8 +NE,023,8 +NE,025,2 +NE,027,9 +NE,029,9 +NE,031,9 +NE,033,7 +NE,035,9 +NE,037,7 +NE,039,9 +NE,041,9 +NE,043,3 +NE,045,9 +NE,047,7 +NE,049,9 +NE,051,8 +NE,053,4 +NE,055,2 +NE,057,9 +NE,059,8 +NE,061,9 +NE,063,9 +NE,065,9 +NE,067,6 +NE,069,9 +NE,071,9 +NE,073,9 +NE,075,9 +NE,077,8 +NE,079,3 +NE,081,8 +NE,083,9 +NE,085,9 +NE,087,9 +NE,089,9 +NE,091,9 +NE,093,3 +NE,095,9 +NE,097,8 +NE,099,9 +NE,101,9 +NE,103,9 +NE,105,8 +NE,107,9 +NE,109,2 +NE,111,5 +NE,113,9 +NE,115,9 +NE,117,9 +NE,119,5 +NE,121,3 +NE,123,9 +NE,125,8 +NE,127,9 +NE,129,9 +NE,131,6 +NE,133,9 +NE,135,9 +NE,137,7 +NE,139,9 +NE,141,5 +NE,143,8 +NE,145,7 +NE,147,9 +NE,149,9 +NE,151,6 +NE,153,2 +NE,155,2 +NE,157,5 +NE,159,2 +NE,161,9 +NE,163,8 +NE,165,9 +NE,167,9 +NE,169,9 +NE,171,9 +NE,173,8 +NE,175,9 +NE,177,2 +NE,179,7 +NE,181,9 +NE,183,9 +NE,185,6 +NV,001,6 +NV,003,1 +NV,005,4 +NV,007,5 +NV,009,9 +NV,011,9 +NV,013,7 +NV,015,9 +NV,017,8 +NV,019,2 +NV,021,8 +NV,023,4 +NV,027,8 +NV,029,2 +NV,031,2 +NV,033,9 +NV,510,3 +NH,001,4 +NH,003,6 +NH,005,4 +NH,007,7 +NH,009,5 +NH,011,2 +NH,013,4 +NH,015,1 +NH,017,1 +NH,019,7 +NJ,001,2 +NJ,003,1 +NJ,005,1 +NJ,007,1 +NJ,009,2 +NJ,011,3 +NJ,013,1 +NJ,015,1 +NJ,017,1 +NJ,019,1 +NJ,021,2 +NJ,023,1 +NJ,025,1 +NJ,027,1 +NJ,029,1 +NJ,031,1 +NJ,033,1 +NJ,035,1 +NJ,037,1 +NJ,039,1 +NJ,041,2 +NM,001,2 +NM,003,9 +NM,005,5 +NM,006,6 +NM,007,7 +NM,009,5 +NM,011,9 +NM,013,3 +NM,015,5 +NM,017,7 +NM,019,9 +NM,021,9 +NM,023,9 +NM,025,5 +NM,027,7 +NM,028,6 +NM,029,6 +NM,031,5 +NM,033,8 +NM,035,4 +NM,037,7 +NM,039,6 +NM,041,7 +NM,043,2 +NM,045,3 +NM,047,6 +NM,049,3 +NM,051,6 +NM,053,6 +NM,055,7 +NM,057,2 +NM,059,9 +NM,061,2 +NY,001,2 +NY,003,7 +NY,005,1 +NY,007,3 +NY,009,4 +NY,011,4 +NY,013,4 +NY,015,3 +NY,017,6 +NY,019,4 +NY,021,6 +NY,023,4 +NY,025,8 +NY,027,2 +NY,029,1 +NY,031,6 +NY,033,7 +NY,035,4 +NY,037,4 +NY,039,6 +NY,041,8 +NY,043,2 +NY,045,3 +NY,047,1 +NY,049,8 +NY,051,1 +NY,053,2 +NY,055,1 +NY,057,4 +NY,059,1 +NY,061,1 +NY,063,1 +NY,065,2 +NY,067,2 +NY,069,1 +NY,071,2 +NY,073,1 +NY,075,2 +NY,077,7 +NY,079,1 +NY,081,1 +NY,083,2 +NY,085,1 +NY,087,1 +NY,089,4 +NY,091,2 +NY,093,2 +NY,095,2 +NY,097,8 +NY,099,6 +NY,101,4 +NY,103,1 +NY,105,6 +NY,107,3 +NY,109,3 +NY,111,3 +NY,113,3 +NY,115,3 +NY,117,1 +NY,119,1 +NY,121,8 +NY,123,6 +NC,001,3 +NC,003,2 +NC,005,9 +NC,007,1 +NC,009,9 +NC,011,9 +NC,013,6 +NC,015,9 +NC,017,8 +NC,019,2 +NC,021,2 +NC,023,2 +NC,025,1 +NC,027,2 +NC,029,1 +NC,031,4 +NC,033,8 +NC,035,2 +NC,037,2 +NC,039,9 +NC,041,8 +NC,043,9 +NC,045,4 +NC,047,6 +NC,049,4 +NC,051,2 +NC,053,1 +NC,055,4 +NC,057,2 +NC,059,2 +NC,061,8 +NC,063,2 +NC,065,3 +NC,067,2 +NC,069,1 +NC,071,1 +NC,073,1 +NC,075,9 +NC,077,6 +NC,079,8 +NC,081,2 +NC,083,4 +NC,085,4 +NC,087,4 +NC,089,2 +NC,091,8 +NC,093,2 +NC,095,9 +NC,097,1 +NC,099,7 +NC,101,1 +NC,103,8 +NC,105,4 +NC,107,4 +NC,109,1 +NC,111,6 +NC,113,7 +NC,115,2 +NC,117,6 +NC,119,1 +NC,121,8 +NC,123,8 +NC,125,3 +NC,127,3 +NC,129,2 +NC,131,9 +NC,133,3 +NC,135,2 +NC,137,9 +NC,139,4 +NC,141,2 +NC,143,8 +NC,145,2 +NC,147,3 +NC,149,8 +NC,151,2 +NC,153,4 +NC,155,4 +NC,157,2 +NC,159,1 +NC,161,4 +NC,163,6 +NC,165,6 +NC,167,6 +NC,169,2 +NC,171,6 +NC,173,9 +NC,175,6 +NC,177,9 +NC,179,1 +NC,181,6 +NC,183,1 +NC,185,8 +NC,187,9 +NC,189,5 +NC,191,3 +NC,193,6 +NC,195,4 +NC,197,2 +NC,199,8 +ND,001,9 +ND,003,6 +ND,005,9 +ND,007,9 +ND,009,8 +ND,011,9 +ND,013,8 +ND,015,3 +ND,017,3 +ND,019,9 +ND,021,9 +ND,023,9 +ND,025,9 +ND,027,9 +ND,029,8 +ND,031,9 +ND,033,9 +ND,035,3 +ND,037,8 +ND,039,9 +ND,041,9 +ND,043,8 +ND,045,9 +ND,047,9 +ND,049,3 +ND,051,9 +ND,053,7 +ND,055,8 +ND,057,8 +ND,059,3 +ND,061,8 +ND,063,8 +ND,065,3 +ND,067,9 +ND,069,9 +ND,071,7 +ND,073,8 +ND,075,3 +ND,077,6 +ND,079,9 +ND,081,9 +ND,083,8 +ND,085,9 +ND,087,9 +ND,089,5 +ND,091,8 +ND,093,7 +ND,095,9 +ND,097,8 +ND,099,8 +ND,101,3 +ND,103,9 +ND,105,5 +OH,001,8 +OH,003,3 +OH,005,6 +OH,007,1 +OH,009,4 +OH,011,4 +OH,013,3 +OH,015,1 +OH,017,1 +OH,019,2 +OH,021,6 +OH,023,3 +OH,025,1 +OH,027,6 +OH,029,4 +OH,031,7 +OH,033,4 +OH,035,1 +OH,037,6 +OH,039,6 +OH,041,1 +OH,043,3 +OH,045,1 +OH,047,6 +OH,049,1 +OH,051,2 +OH,053,6 +OH,055,1 +OH,057,2 +OH,059,6 +OH,061,1 +OH,063,4 +OH,065,6 +OH,067,8 +OH,069,6 +OH,071,6 +OH,073,1 +OH,075,9 +OH,077,4 +OH,079,7 +OH,081,3 +OH,083,6 +OH,085,1 +OH,087,2 +OH,089,1 +OH,091,4 +OH,093,1 +OH,095,2 +OH,097,1 +OH,099,2 +OH,101,4 +OH,103,1 +OH,105,8 +OH,107,7 +OH,109,2 +OH,111,8 +OH,113,2 +OH,115,8 +OH,117,1 +OH,119,4 +OH,121,9 +OH,123,3 +OH,125,8 +OH,127,1 +OH,129,1 +OH,131,9 +OH,133,2 +OH,135,6 +OH,137,6 +OH,139,3 +OH,141,4 +OH,143,4 +OH,145,4 +OH,147,4 +OH,149,4 +OH,151,2 +OH,153,2 +OH,155,2 +OH,157,4 +OH,159,1 +OH,161,6 +OH,163,8 +OH,165,1 +OH,167,4 +OH,169,4 +OH,171,7 +OH,173,2 +OH,175,7 +OK,001,8 +OK,003,8 +OK,005,9 +OK,007,9 +OK,009,7 +OK,011,8 +OK,013,6 +OK,015,6 +OK,017,1 +OK,019,5 +OK,021,6 +OK,023,9 +OK,025,9 +OK,027,1 +OK,029,9 +OK,031,3 +OK,033,3 +OK,035,6 +OK,037,1 +OK,039,5 +OK,041,6 +OK,043,9 +OK,045,9 +OK,047,3 +OK,049,6 +OK,051,1 +OK,053,8 +OK,055,9 +OK,057,9 +OK,059,9 +OK,061,8 +OK,063,9 +OK,065,7 +OK,067,8 +OK,069,9 +OK,071,4 +OK,073,8 +OK,075,8 +OK,077,9 +OK,079,6 +OK,081,1 +OK,083,1 +OK,085,9 +OK,087,1 +OK,089,7 +OK,091,8 +OK,093,8 +OK,095,9 +OK,097,6 +OK,099,9 +OK,101,4 +OK,103,8 +OK,105,8 +OK,107,8 +OK,109,1 +OK,111,1 +OK,113,1 +OK,115,6 +OK,117,1 +OK,119,4 +OK,121,7 +OK,123,7 +OK,125,4 +OK,127,9 +OK,129,9 +OK,131,1 +OK,133,7 +OK,135,3 +OK,137,4 +OK,139,7 +OK,141,8 +OK,143,1 +OK,145,1 +OK,147,4 +OK,149,9 +OK,151,7 +OK,153,7 +OR,001,7 +OR,003,3 +OR,005,1 +OR,007,4 +OR,009,1 +OR,011,5 +OR,013,3 +OR,015,7 +OR,017,3 +OR,019,4 +OR,021,9 +OR,023,9 +OR,025,9 +OR,027,6 +OR,029,3 +OR,031,3 +OR,033,3 +OR,035,5 +OR,037,9 +OR,039,2 +OR,041,5 +OR,043,3 +OR,045,6 +OR,047,2 +OR,049,8 +OR,051,1 +OR,053,2 +OR,055,9 +OR,057,7 +OR,059,4 +OR,061,7 +OR,063,9 +OR,065,7 +OR,067,1 +OR,069,9 +OR,071,1 +PA,001,3 +PA,003,1 +PA,005,1 +PA,007,1 +PA,009,8 +PA,011,2 +PA,013,3 +PA,015,6 +PA,017,1 +PA,019,1 +PA,021,3 +PA,023,9 +PA,025,2 +PA,027,3 +PA,029,1 +PA,031,6 +PA,033,4 +PA,035,6 +PA,037,4 +PA,039,4 +PA,041,2 +PA,043,2 +PA,045,1 +PA,047,7 +PA,049,2 +PA,051,1 +PA,053,9 +PA,055,3 +PA,057,8 +PA,059,6 +PA,061,6 +PA,063,4 +PA,065,7 +PA,067,8 +PA,069,2 +PA,071,2 +PA,073,1 +PA,075,3 +PA,077,2 +PA,079,2 +PA,081,3 +PA,083,7 +PA,085,4 +PA,087,4 +PA,089,4 +PA,091,1 +PA,093,6 +PA,095,2 +PA,097,4 +PA,099,2 +PA,101,1 +PA,103,6 +PA,105,9 +PA,107,4 +PA,109,7 +PA,111,6 +PA,113,8 +PA,115,8 +PA,117,8 +PA,119,6 +PA,121,4 +PA,123,6 +PA,125,1 +PA,127,6 +PA,129,1 +PA,131,2 +PA,133,2 +RI,001,1 +RI,003,1 +RI,005,1 +RI,007,1 +RI,009,1 +SC,001,6 +SC,003,2 +SC,005,8 +SC,007,2 +SC,009,9 +SC,011,8 +SC,013,3 +SC,015,2 +SC,017,2 +SC,019,2 +SC,021,6 +SC,023,1 +SC,025,6 +SC,027,8 +SC,029,6 +SC,031,3 +SC,033,6 +SC,035,2 +SC,037,2 +SC,039,2 +SC,041,3 +SC,043,4 +SC,045,2 +SC,047,4 +SC,049,8 +SC,051,2 +SC,053,3 +SC,055,2 +SC,057,1 +SC,059,2 +SC,061,8 +SC,063,2 +SC,065,8 +SC,067,6 +SC,069,6 +SC,071,6 +SC,073,4 +SC,075,4 +SC,077,2 +SC,079,2 +SC,081,2 +SC,083,2 +SC,085,3 +SC,087,2 +SC,089,6 +SC,091,1 +SD,003,9 +SD,005,7 +SD,007,9 +SD,009,9 +SD,011,5 +SD,013,5 +SD,015,9 +SD,017,9 +SD,019,7 +SD,021,9 +SD,023,9 +SD,025,9 +SD,027,6 +SD,029,5 +SD,031,9 +SD,033,3 +SD,035,7 +SD,037,9 +SD,039,9 +SD,041,9 +SD,043,9 +SD,045,9 +SD,047,9 +SD,049,9 +SD,051,9 +SD,053,9 +SD,055,9 +SD,057,9 +SD,059,9 +SD,061,8 +SD,063,9 +SD,065,7 +SD,067,8 +SD,069,9 +SD,071,9 +SD,073,9 +SD,075,9 +SD,077,9 +SD,079,6 +SD,081,6 +SD,083,2 +SD,085,9 +SD,087,2 +SD,089,9 +SD,091,9 +SD,093,3 +SD,095,9 +SD,097,8 +SD,099,2 +SD,101,8 +SD,102,9 +SD,103,3 +SD,105,9 +SD,107,9 +SD,109,9 +SD,111,9 +SD,115,9 +SD,117,9 +SD,119,9 +SD,121,9 +SD,123,9 +SD,125,2 +SD,127,3 +SD,129,9 +SD,135,7 +SD,137,9 +TN,001,2 +TN,003,4 +TN,005,9 +TN,007,8 +TN,009,2 +TN,011,3 +TN,013,2 +TN,015,1 +TN,017,6 +TN,019,3 +TN,021,1 +TN,023,3 +TN,025,6 +TN,027,8 +TN,029,6 +TN,031,4 +TN,033,3 +TN,035,4 +TN,037,1 +TN,039,9 +TN,041,8 +TN,043,1 +TN,045,6 +TN,047,1 +TN,049,8 +TN,051,7 +TN,053,3 +TN,055,6 +TN,057,2 +TN,059,4 +TN,061,8 +TN,063,3 +TN,065,2 +TN,067,8 +TN,069,6 +TN,071,6 +TN,073,2 +TN,075,6 +TN,077,6 +TN,079,7 +TN,081,1 +TN,083,8 +TN,085,8 +TN,087,8 +TN,089,3 +TN,091,8 +TN,093,2 +TN,095,9 +TN,097,6 +TN,099,6 +TN,101,8 +TN,103,6 +TN,105,2 +TN,107,4 +TN,109,8 +TN,111,1 +TN,113,3 +TN,115,2 +TN,117,6 +TN,119,1 +TN,121,8 +TN,123,6 +TN,125,2 +TN,127,9 +TN,129,2 +TN,131,7 +TN,133,9 +TN,135,9 +TN,137,9 +TN,139,3 +TN,141,4 +TN,143,6 +TN,145,2 +TN,147,1 +TN,149,1 +TN,151,8 +TN,153,2 +TN,155,4 +TN,157,1 +TN,159,1 +TN,161,2 +TN,163,2 +TN,165,1 +TN,167,1 +TN,169,1 +TN,171,3 +TN,173,2 +TN,175,9 +TN,177,6 +TN,179,3 +TN,181,8 +TN,183,6 +TN,185,7 +TN,187,1 +TN,189,1 +TX,001,7 +TX,003,6 +TX,005,5 +TX,007,2 +TX,009,3 +TX,011,2 +TX,013,1 +TX,015,1 +TX,017,6 +TX,019,1 +TX,021,1 +TX,023,9 +TX,025,6 +TX,027,2 +TX,029,1 +TX,031,8 +TX,033,9 +TX,035,2 +TX,037,3 +TX,039,1 +TX,041,2 +TX,043,7 +TX,045,8 +TX,047,9 +TX,049,5 +TX,051,2 +TX,053,6 +TX,055,1 +TX,057,6 +TX,059,3 +TX,061,2 +TX,063,8 +TX,065,2 +TX,067,6 +TX,069,9 +TX,071,1 +TX,073,6 +TX,075,9 +TX,077,3 +TX,079,2 +TX,081,8 +TX,083,8 +TX,085,1 +TX,087,9 +TX,089,8 +TX,091,1 +TX,093,9 +TX,095,8 +TX,097,6 +TX,099,2 +TX,101,9 +TX,103,8 +TX,105,8 +TX,107,2 +TX,109,9 +TX,111,7 +TX,113,1 +TX,115,6 +TX,117,6 +TX,119,8 +TX,121,1 +TX,123,6 +TX,125,8 +TX,127,7 +TX,129,8 +TX,131,9 +TX,133,8 +TX,135,3 +TX,137,9 +TX,139,1 +TX,141,2 +TX,143,5 +TX,145,2 +TX,147,6 +TX,149,6 +TX,151,8 +TX,153,8 +TX,155,9 +TX,157,1 +TX,159,9 +TX,161,9 +TX,163,6 +TX,165,6 +TX,167,1 +TX,169,2 +TX,171,7 +TX,173,8 +TX,175,3 +TX,177,6 +TX,179,6 +TX,181,3 +TX,183,2 +TX,185,6 +TX,187,1 +TX,189,4 +TX,191,9 +TX,193,8 +TX,195,9 +TX,197,9 +TX,199,2 +TX,201,1 +TX,203,2 +TX,205,9 +TX,207,8 +TX,209,1 +TX,211,9 +TX,213,4 +TX,215,2 +TX,217,6 +TX,219,2 +TX,221,4 +TX,223,6 +TX,225,7 +TX,227,4 +TX,229,2 +TX,231,1 +TX,233,6 +TX,235,3 +TX,237,8 +TX,239,6 +TX,241,6 +TX,243,9 +TX,245,2 +TX,247,8 +TX,249,6 +TX,251,1 +TX,253,3 +TX,255,8 +TX,257,1 +TX,259,1 +TX,261,9 +TX,263,9 +TX,265,4 +TX,267,9 +TX,269,9 +TX,271,9 +TX,273,4 +TX,275,9 +TX,277,5 +TX,279,6 +TX,281,2 +TX,283,8 +TX,285,8 +TX,287,8 +TX,289,8 +TX,291,1 +TX,293,6 +TX,295,9 +TX,297,8 +TX,299,7 +TX,301,9 +TX,303,2 +TX,305,2 +TX,307,9 +TX,309,2 +TX,311,8 +TX,313,8 +TX,315,8 +TX,317,3 +TX,319,9 +TX,321,6 +TX,323,3 +TX,325,1 +TX,327,9 +TX,329,3 +TX,331,6 +TX,333,9 +TX,335,7 +TX,337,6 +TX,339,1 +TX,341,7 +TX,343,8 +TX,345,8 +TX,347,5 +TX,349,4 +TX,351,8 +TX,353,6 +TX,355,2 +TX,357,7 +TX,359,2 +TX,361,2 +TX,363,6 +TX,365,6 +TX,367,1 +TX,369,9 +TX,371,7 +TX,373,6 +TX,375,2 +TX,377,9 +TX,379,8 +TX,381,2 +TX,383,8 +TX,385,9 +TX,387,8 +TX,389,7 +TX,391,8 +TX,393,9 +TX,395,2 +TX,397,1 +TX,399,8 +TX,401,2 +TX,403,9 +TX,405,9 +TX,407,1 +TX,409,2 +TX,411,9 +TX,413,8 +TX,415,7 +TX,417,8 +TX,419,7 +TX,421,9 +TX,423,3 +TX,425,8 +TX,427,4 +TX,429,7 +TX,431,8 +TX,433,9 +TX,435,9 +TX,437,8 +TX,439,1 +TX,441,3 +TX,443,9 +TX,445,6 +TX,447,9 +TX,449,7 +TX,451,3 +TX,453,1 +TX,455,8 +TX,457,8 +TX,459,2 +TX,461,8 +TX,463,6 +TX,465,5 +TX,467,8 +TX,469,3 +TX,471,4 +TX,473,1 +TX,475,6 +TX,477,6 +TX,479,2 +TX,481,4 +TX,483,9 +TX,485,3 +TX,487,6 +TX,489,6 +TX,491,1 +TX,493,1 +TX,495,6 +TX,497,1 +TX,499,6 +TX,501,9 +TX,503,7 +TX,505,6 +TX,507,7 +UT,001,9 +UT,003,4 +UT,005,3 +UT,007,7 +UT,009,9 +UT,011,2 +UT,013,7 +UT,015,9 +UT,017,9 +UT,019,7 +UT,021,4 +UT,023,2 +UT,025,8 +UT,027,9 +UT,029,2 +UT,031,9 +UT,033,8 +UT,035,1 +UT,037,9 +UT,039,6 +UT,041,7 +UT,043,4 +UT,045,1 +UT,047,7 +UT,049,2 +UT,051,4 +UT,053,3 +UT,055,9 +UT,057,2 +VT,001,6 +VT,003,6 +VT,005,9 +VT,007,3 +VT,009,9 +VT,011,3 +VT,013,3 +VT,015,8 +VT,017,9 +VT,019,9 +VT,021,7 +VT,023,4 +VT,025,7 +VT,027,7 +VA,001,9 +VA,003,3 +VA,005,6 +VA,007,1 +VA,009,2 +VA,011,2 +VA,013,1 +VA,015,3 +VA,017,9 +VA,019,2 +VA,021,8 +VA,023,2 +VA,025,8 +VA,027,9 +VA,029,8 +VA,031,2 +VA,033,8 +VA,035,6 +VA,036,1 +VA,037,8 +VA,041,1 +VA,043,1 +VA,045,2 +VA,047,1 +VA,049,8 +VA,051,9 +VA,053,1 +VA,057,8 +VA,059,1 +VA,061,1 +VA,063,3 +VA,065,3 +VA,067,2 +VA,069,3 +VA,071,3 +VA,073,1 +VA,075,1 +VA,077,9 +VA,079,3 +VA,081,6 +VA,083,6 +VA,085,1 +VA,087,1 +VA,089,4 +VA,091,8 +VA,093,1 +VA,095,1 +VA,097,1 +VA,099,8 +VA,101,1 +VA,103,9 +VA,105,8 +VA,107,1 +VA,109,8 +VA,111,9 +VA,113,8 +VA,115,1 +VA,117,7 +VA,119,8 +VA,121,3 +VA,125,3 +VA,127,1 +VA,131,8 +VA,133,9 +VA,135,8 +VA,137,6 +VA,139,8 +VA,141,8 +VA,143,4 +VA,145,1 +VA,147,6 +VA,149,1 +VA,153,1 +VA,155,3 +VA,157,1 +VA,159,9 +VA,161,2 +VA,163,6 +VA,165,3 +VA,167,8 +VA,169,2 +VA,171,6 +VA,173,7 +VA,175,6 +VA,177,1 +VA,179,1 +VA,181,1 +VA,183,1 +VA,185,7 +VA,187,1 +VA,191,2 +VA,193,8 +VA,195,7 +VA,197,6 +VA,199,1 +VA,510,1 +VA,520,2 +VA,530,6 +VA,540,3 +VA,550,1 +VA,570,1 +VA,580,6 +VA,590,4 +VA,595,6 +VA,600,1 +VA,610,1 +VA,620,6 +VA,630,1 +VA,640,6 +VA,650,1 +VA,660,3 +VA,670,1 +VA,678,6 +VA,680,2 +VA,683,1 +VA,685,1 +VA,690,4 +VA,700,1 +VA,710,1 +VA,720,7 +VA,730,1 +VA,735,1 +VA,740,1 +VA,750,3 +VA,760,1 +VA,770,2 +VA,775,2 +VA,790,3 +VA,800,1 +VA,810,1 +VA,820,3 +VA,830,1 +VA,840,3 +WA,001,6 +WA,003,3 +WA,005,2 +WA,007,3 +WA,009,5 +WA,011,1 +WA,013,8 +WA,015,3 +WA,017,3 +WA,019,8 +WA,021,2 +WA,023,8 +WA,025,5 +WA,027,4 +WA,029,4 +WA,031,6 +WA,033,1 +WA,035,2 +WA,037,4 +WA,039,9 +WA,041,4 +WA,043,8 +WA,045,4 +WA,047,6 +WA,049,7 +WA,051,8 +WA,053,1 +WA,055,9 +WA,057,3 +WA,059,1 +WA,061,1 +WA,063,2 +WA,065,2 +WA,067,2 +WA,069,8 +WA,071,3 +WA,073,3 +WA,075,4 +WA,077,2 +WV,001,9 +WV,003,2 +WV,005,3 +WV,007,8 +WV,009,3 +WV,011,2 +WV,013,8 +WV,015,3 +WV,017,9 +WV,019,3 +WV,021,9 +WV,023,9 +WV,025,6 +WV,027,3 +WV,029,3 +WV,031,8 +WV,033,5 +WV,035,8 +WV,037,1 +WV,039,3 +WV,041,9 +WV,043,8 +WV,045,6 +WV,047,9 +WV,049,4 +WV,051,3 +WV,053,6 +WV,055,4 +WV,057,7 +WV,059,8 +WV,061,3 +WV,063,8 +WV,065,2 +WV,067,8 +WV,069,3 +WV,071,8 +WV,073,8 +WV,075,9 +WV,077,3 +WV,079,2 +WV,081,3 +WV,083,7 +WV,085,8 +WV,087,8 +WV,089,8 +WV,091,6 +WV,093,9 +WV,095,9 +WV,097,7 +WV,099,2 +WV,101,9 +WV,103,7 +WV,105,3 +WV,107,3 +WV,109,8 +WI,001,8 +WI,003,7 +WI,005,6 +WI,007,8 +WI,009,2 +WI,011,8 +WI,013,8 +WI,015,3 +WI,017,3 +WI,019,8 +WI,021,2 +WI,023,6 +WI,025,2 +WI,027,4 +WI,029,6 +WI,031,2 +WI,033,6 +WI,035,3 +WI,037,9 +WI,039,3 +WI,041,9 +WI,043,6 +WI,045,2 +WI,047,6 +WI,049,2 +WI,051,9 +WI,053,8 +WI,055,4 +WI,057,8 +WI,059,3 +WI,061,2 +WI,063,3 +WI,065,8 +WI,067,6 +WI,069,6 +WI,071,4 +WI,073,3 +WI,075,6 +WI,077,8 +WI,078,9 +WI,079,1 +WI,081,4 +WI,083,2 +WI,085,7 +WI,087,3 +WI,089,1 +WI,091,8 +WI,093,1 +WI,095,8 +WI,097,4 +WI,099,9 +WI,101,3 +WI,103,8 +WI,105,3 +WI,107,8 +WI,109,1 +WI,111,4 +WI,113,9 +WI,115,6 +WI,117,3 +WI,119,8 +WI,121,8 +WI,123,3 +WI,125,9 +WI,127,4 +WI,129,8 +WI,131,1 +WI,133,1 +WI,135,6 +WI,137,8 +WI,139,3 +WI,141,4 +WY,001,4 +WY,003,9 +WY,005,5 +WY,007,7 +WY,009,6 +WY,011,9 +WY,013,7 +WY,015,7 +WY,017,9 +WY,019,9 +WY,021,3 +WY,023,9 +WY,025,3 +WY,027,9 +WY,029,7 +WY,031,8 +WY,033,7 +WY,035,9 +WY,037,5 +WY,039,7 +WY,041,7 +WY,043,9 +WY,045,9 +AS,010,7 +AS,020,9 +AS,030, +AS,040, +AS,050,5 +GU,010,5 +MP,085,9 +MP,100,9 +MP,110,5 +MP,120,9 +PR,001,6 +PR,003,2 +PR,005,2 +PR,007,1 +PR,009,1 +PR,011,2 +PR,013,3 +PR,015,3 +PR,017,1 +PR,019,1 +PR,021,1 +PR,023,3 +PR,025,1 +PR,027,3 +PR,029,1 +PR,031,1 +PR,033,1 +PR,035,1 +PR,037,1 +PR,039,1 +PR,041,1 +PR,043,4 +PR,045,1 +PR,047,1 +PR,049,9 +PR,051,1 +PR,053,1 +PR,054,1 +PR,055,6 +PR,057,3 +PR,059,2 +PR,061,1 +PR,063,1 +PR,065,3 +PR,067,3 +PR,069,1 +PR,071,2 +PR,073,6 +PR,075,2 +PR,077,1 +PR,079,3 +PR,081,4 +PR,083,8 +PR,085,1 +PR,087,1 +PR,089,1 +PR,091,1 +PR,093,8 +PR,095,1 +PR,097,3 +PR,099,2 +PR,101,1 +PR,103,1 +PR,105,1 +PR,107,1 +PR,109,3 +PR,111,2 +PR,113,2 +PR,115,3 +PR,117,2 +PR,119,1 +PR,121,3 +PR,123,4 +PR,125,3 +PR,127,1 +PR,129,1 +PR,131,2 +PR,133,6 +PR,135,1 +PR,137,1 +PR,139,1 +PR,141,6 +PR,143,1 +PR,145,1 +PR,147,6 +PR,149,2 +PR,151,1 +PR,153,2 \ No newline at end of file diff --git a/src/test/java/com/imsweb/algorithms/AlgorithmsTest.java b/src/test/java/com/imsweb/algorithms/AlgorithmsTest.java index 82ddc00..e1f40bf 100644 --- a/src/test/java/com/imsweb/algorithms/AlgorithmsTest.java +++ b/src/test/java/com/imsweb/algorithms/AlgorithmsTest.java @@ -173,6 +173,7 @@ public void testDefaultAlgorithms() { Assert.assertEquals("02", Utils.extractTumors(alg.execute(input).getPatient()).getFirst().get(Algorithms.FIELD_RURAL_CONT_1993)); Assert.assertEquals("02", Utils.extractTumors(alg.execute(input).getPatient()).getFirst().get(Algorithms.FIELD_RURAL_CONT_2003)); Assert.assertEquals("02", Utils.extractTumors(alg.execute(input).getPatient()).getFirst().get(Algorithms.FIELD_RURAL_CONT_2013)); + Assert.assertEquals("02", Utils.extractTumors(alg.execute(input).getPatient()).getFirst().get(Algorithms.FIELD_RURAL_CONT_2023)); // SEER Site Recode alg = Algorithms.getAlgorithm(Algorithms.ALG_SEER_SITE_RECODE); From 2fb5c67ae5eaf5eeb3346cd00d61bc110724b620 Mon Sep 17 00:00:00 2001 From: howew Date: Tue, 7 Jul 2026 14:58:09 -0400 Subject: [PATCH 2/3] #218 - Beale/Rural Urban Continuum Codes for 2023 - https://github.com/imsweb/algorithms/issues/218 --- .../ruralurban/RuralUrbanAlgorithm.java | 16 +++++++++++++++- .../ruralurban/RuralUrbanUtilsTest.java | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java index 8a5a42e..fadb58c 100644 --- a/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java +++ b/src/main/java/com/imsweb/algorithms/ruralurban/RuralUrbanAlgorithm.java @@ -16,7 +16,21 @@ import com.imsweb.algorithms.StateCountyTractInputDto; import com.imsweb.algorithms.internal.Utils; -import static com.imsweb.algorithms.Algorithms.*; +import static com.imsweb.algorithms.Algorithms.FIELD_CENSUS_2000; +import static com.imsweb.algorithms.Algorithms.FIELD_CENSUS_2010; +import static com.imsweb.algorithms.Algorithms.FIELD_CENSUS_2020; +import static com.imsweb.algorithms.Algorithms.FIELD_COUNTY_AT_DX_ANALYSIS; +import static com.imsweb.algorithms.Algorithms.FIELD_RUCA_2000; +import static com.imsweb.algorithms.Algorithms.FIELD_RUCA_2010; +import static com.imsweb.algorithms.Algorithms.FIELD_RUCA_2020; +import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_1993; +import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_2003; +import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_2013; +import static com.imsweb.algorithms.Algorithms.FIELD_RURAL_CONT_2023; +import static com.imsweb.algorithms.Algorithms.FIELD_STATE_DX; +import static com.imsweb.algorithms.Algorithms.FIELD_URIC_2000; +import static com.imsweb.algorithms.Algorithms.FIELD_URIC_2010; +import static com.imsweb.algorithms.Algorithms.FIELD_URIC_2020; import static com.imsweb.algorithms.ruralurban.RuralUrbanUtils.CONTINUUM_UNK_96; import static com.imsweb.algorithms.ruralurban.RuralUrbanUtils.CONTINUUM_UNK_97; import static com.imsweb.algorithms.ruralurban.RuralUrbanUtils.CONTINUUM_UNK_98; diff --git a/src/test/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtilsTest.java b/src/test/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtilsTest.java index 6c56a6a..fdb600a 100644 --- a/src/test/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtilsTest.java +++ b/src/test/java/com/imsweb/algorithms/ruralurban/RuralUrbanUtilsTest.java @@ -46,26 +46,31 @@ public void testCompute() { Assert.assertEquals("96", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals("96", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals("96", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals("96", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); } else if (state == null || state.isEmpty() || state.equals("ZZ") || county == null || county.isEmpty() || county.equals("999")) { Assert.assertEquals("99", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals("99", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals("99", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals("99", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); } else if (county.equals("000")) { Assert.assertEquals("97", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals("97", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals("97", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals("97", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); } else if (state.equals("MP") || county.equals("777")) { Assert.assertEquals("98", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals("98", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals("98", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals("98", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); } else { Assert.assertEquals("02", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals("04", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals("03", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals("03", computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); } for (String tract : tracts) { @@ -136,10 +141,12 @@ else if (state.equals("MP") || county.equals("777") || tract.equals("123456")) { String result1993 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993(); String result2003 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003(); String result2013 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013(); + String result2023 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023(); rec.put(_PROP_STATE_DX, "WA"); Assert.assertEquals(result1993, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals(result2003, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals(result2013, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals(result2023, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); // test recoding of Los Angeles to California rec.put(_PROP_STATE_DX, "LO"); @@ -147,10 +154,12 @@ else if (state.equals("MP") || county.equals("777") || tract.equals("123456")) { result1993 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993(); result2003 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003(); result2013 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013(); + result2023 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023(); rec.put(_PROP_STATE_DX, "CA"); Assert.assertEquals(result1993, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals(result2003, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals(result2013, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals(result2023, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); // test recoding of Greater Bay to California rec.put(_PROP_STATE_DX, "GB"); @@ -158,10 +167,12 @@ else if (state.equals("MP") || county.equals("777") || tract.equals("123456")) { result1993 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993(); result2003 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003(); result2013 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013(); + result2023 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023(); rec.put(_PROP_STATE_DX, "CA"); Assert.assertEquals(result1993, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals(result2003, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals(result2013, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals(result2023, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); // test recoding of Atlanta to Georgia rec.put(_PROP_STATE_DX, "AT"); @@ -169,10 +180,12 @@ else if (state.equals("MP") || county.equals("777") || tract.equals("123456")) { result1993 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993(); result2003 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003(); result2013 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013(); + result2023 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023(); rec.put(_PROP_STATE_DX, "GA"); Assert.assertEquals(result1993, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals(result2003, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals(result2013, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals(result2023, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); // test recoding of Detroit to Michigan rec.put(_PROP_STATE_DX, "DT"); @@ -180,10 +193,12 @@ else if (state.equals("MP") || county.equals("777") || tract.equals("123456")) { result1993 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993(); result2003 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003(); result2013 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013(); + result2023 = computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023(); rec.put(_PROP_STATE_DX, "MI"); Assert.assertEquals(result1993, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum1993()); Assert.assertEquals(result2003, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2003()); Assert.assertEquals(result2013, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2013()); + Assert.assertEquals(result2023, computeRuralUrbanContinuum(rec).getRuralUrbanContinuum2023()); ////////////////////////////////////////////////////////////////////////////////////////////// // TEST KALAWAO, HAWAII - 2003 From 22cf0387310fd9541ae775a46918cb4a6b1dd809 Mon Sep 17 00:00:00 2001 From: howew Date: Tue, 7 Jul 2026 15:06:38 -0400 Subject: [PATCH 3/3] #218 - Beale/Rural Urban Continuum Codes for 2023 - https://github.com/imsweb/algorithms/issues/218 --- src/main/java/com/imsweb/algorithms/Algorithms.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/imsweb/algorithms/Algorithms.java b/src/main/java/com/imsweb/algorithms/Algorithms.java index 38687f6..14dec2f 100644 --- a/src/main/java/com/imsweb/algorithms/Algorithms.java +++ b/src/main/java/com/imsweb/algorithms/Algorithms.java @@ -303,7 +303,6 @@ public static void initialize() { addField(AlgorithmField.of(FIELD_RURAL_CONT_1993, 3300, 2, "RuralUrban Continuum 1993", "Rur Urb Cont 93", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_RURAL_CONT_2003, 3310, 2, "RuralUrban Continuum 2003", "Rur Urb Cont 03", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_RURAL_CONT_2013, 3312, 2, "RuralUrban Continuum 2013", "Rur Urb Cont 13", DATA_LEVEL_TUMOR)); - addField(AlgorithmField.of(FIELD_RURAL_CONT_2023, 9470, 2, "RuralUrban Continuum 2023", "Rur Urb Cont 23", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_SURV_VS_RECODE, 1762, 1, "Vital Status Recode", "VS Rec", DATA_LEVEL_PATIENT)); addField(AlgorithmField.of(FIELD_SURV_DX_DATE_RECODE, 1788, 8, "Surv-Date DX Recode", "Surv DX", DATA_LEVEL_TUMOR)); addField(AlgorithmField.of(FIELD_SURV_DATE_ACTIVE_FUP, 1782, 8, "Surv-Date Active Followup", "Surv Dt", DATA_LEVEL_TUMOR)); @@ -360,6 +359,7 @@ public static void initialize() { addField(AlgorithmField.of(FIELD_ICCC_EXT, 9422, 3, "Int Class of Childhood Cancer (ICCC) Extended Code", "ICCC Ext", DATA_LEVEL_TUMOR, false)); addField(AlgorithmField.of(FIELD_IARC_MP_INDICATOR, 9400, 1, "IARC Multiple Primary Indicator", "IARC MP", DATA_LEVEL_TUMOR, false)); addField(AlgorithmField.of(FIELD_COUNTY_AT_DX_ANALYSIS_FLAG, 9440, 4, "County at DX Analysis Flag", "DX Anlys Cty Fg", DATA_LEVEL_TUMOR, false)); + addField(AlgorithmField.of(FIELD_RURAL_CONT_2023, 9470, 2, "RuralUrban Continuum 2023", "Rur Urb Cont 23", DATA_LEVEL_TUMOR, false)); addField(AlgorithmField.of(FIELD_IHS_PRCDA_2017, 9970, 1, "IHS PRCDA 2017", "IHS PRCDA 2017", DATA_LEVEL_TUMOR, false)); addField(AlgorithmField.of(FIELD_ACS_YOST_QUINTILE_US, 9610, 1, "Yost Quintile (Across States)", "Yost US", DATA_LEVEL_TUMOR, false)); addField(AlgorithmField.of(FIELD_ACS_YOST_QUINTILE_STATE, 9611, 1, "Yost Quintile (State Specific)", "Yost State", DATA_LEVEL_TUMOR, false));